Commit Graph

44 Commits

Author SHA1 Message Date
insleker 22f2ad9c9d fix: unregister gosmee webhooks on forced shutdown (#47) 2026-04-11 18:08:45 +08:00
insleker 0e9bd11d5c feat: improve emoji reaction to no-reply comment in issues 2026-04-11 17:28:16 +08:00
insleker da3b15fdd7 feat: improve debug logging 2026-04-11 16:38:58 +08:00
insleker c55643337c refactor: remove shell-dependent test seams from CLI integration paths
The Windows process launcher no longer needs Bash/PowerShell mediation, and the event-source tests now exercise CLI boundaries through an injectable executor instead of generated scripts. This keeps production behavior on real external commands while letting tests model long-running process streams and kill semantics in Dart.

Constraint: Tests must not mock CLIs by writing generated Dart or shell scripts and executing them.
Rejected: Use generated Dart script fixtures | still depends on subprocess execution for mocks.
Rejected: Use only mocktail mocks for process handles | stream, kill, and exit behavior are clearer as a small stateful fake.
Confidence: high
Scope-risk: moderate
Directive: Keep long-running CLI test behavior behind ExternalCommandExecutor rather than reintroducing script fixtures.
Tested: dart analyze; dart run tool\\validate_gherkin_test_format.dart; dart test
Not-tested: Real gh/gosmee webhook forwarding against live services
2026-04-11 15:36:39 +08:00
insleker 041225b2aa fix: `tea` CLI call hang in windows by replaced it with direct http API called 2026-04-11 05:35:47 +08:00
insleker b14bbe5d0a feat: react to no-reply decisions for issue comments (#43) 2026-04-10 16:06:43 +08:00
insleker 0fb68c886b chore: cleanup deprecated `IssueAssistantEventSourceDocument` 2026-04-10 15:37:02 +08:00
insleker 34330d9b7a fix: stop forcing mention replies (#41)
Stop overriding responder no_reply decisions for mention-triggered comments so automation mentions do not loop indefinitely. Update the default prompt to encourage mention handling without forcing replies and add regression coverage for no_reply mention flows.
2026-04-10 15:37:02 +08:00
insleker cf93e054c3 fix: detect Gitea API error objects before list-casting 2026-04-10 13:12:12 +08:00
insleker 1790de1f08 feat: add glab/gosmee GitLab channel support (#37) 2026-04-10 11:12:14 +08:00
insleker 19af0bbd1b refactor: improve repo structure 2026-04-10 10:45:48 +08:00
insleker 2bdf75d2ad chore: remove tracking to `lib\src\database.g.dart` 2026-04-10 09:57:21 +08:00
insleker da256d068c fix: infer tracker provider from event source (#38) 2026-04-10 09:55:16 +08:00
insleker d18bbaed88 feat: add GitLab tracker and SCM support (#35)
Add glab-backed GitLab issue polling, login lookup, and comment posting so GitLab projects can be handled alongside GitHub, Gitea, and OpenProject. Also wire GitLab through SCM selection, config defaults, docs, and examples so issue #35 can be configured end to end.
2026-04-10 02:25:06 +08:00
insleker 58b7d333cb feat: add OpenProject issue tracker support for #32 2026-04-10 01:30:37 +08:00
insleker c10b55db20 feat: add project scm configuration (#30) 2026-04-09 16:05:42 +08:00
insleker b121a2544b chore: support windows OS 2026-04-09 11:26:35 +08:00
insleker 1b0daff98a feat: load dotenv runtime config for #27
Load .env files beside the selected config so env interpolation, subprocesses, and logger verbosity work without exporting every variable manually.
2026-04-09 01:40:28 +08:00
insleker dd6cdde8a5 chore: stop tracking 2026-04-09 00:28:07 +08:00
insleker 5992ca1810 fix: send GitHub webhook active flag as boolean (#25)
GitHub rejects webhook creation when gh api serializes active as a string. Use a typed field so gh sends a real boolean, and lock the gh/gosmee integration test harness to catch regressions.
2026-04-09 00:08:02 +08:00
existedinnettw 4df29b1508
Merge pull request #24 from existedinnettw/feat/21
Refactor polling config for channel event sources
2026-04-08 22:33:39 +08:00
insleker 5d0fbcc7f9 feat: refactor channel reconciliation config for #21 2026-04-08 22:27:16 +08:00
insleker 9ae02a6f4b feat: switch logging to logger for #22
Replace the plain logging backend with a color-capable logger adapter so CLI output is easier to scan, and add richer gosmee/webhook-forward diagnostics so tracker and forwarding failures can be debugged from logs.
2026-04-08 21:59:47 +08:00
insleker 737c62c6d9 refactor: move issue event sources into a subfolder for #19
Group issue event source implementations under lib/src/issue_event_source so the transport-specific files are easier to navigate and extend.
2026-04-08 20:35:03 +08:00
insleker 0d538b962e feat: add gh gosmee event source for #19
Add a GitHub gosmee transport so long-running sessions can use temporary webhooks without the single-forward limitation of gh webhook forward.
2026-04-08 19:45:19 +08:00
insleker 61b1bdca63 feat: implement tea/gosmee issue source for #15 2026-04-08 18:31:36 +08:00
existedinnettw 089b7bffc1
fix: log gh webhook-forward stderr as errors (#17)
* fix: log webhook-forward stderr as errors (#16)

* refactor: split issue assistant tests into focused files (#16)
2026-04-08 17:35:58 +08:00
existedinnettw eb066aa914
feat: add github/webhook-forward issue source (#13)
* feat: add github webhook-forward event source for #12

Add a channel-based GitHub issue source so long-running sessions can react to issue and issue_comment webhooks without polling. Keep --once on polling so backlog reconciliation still works and cover the new config/runtime path with tests.
2026-04-08 14:42:08 +08:00
existedinnettw 536c0a9450
refactor: extract polling issue event source (#11)
* refactor: extract polling issue event source (#10)

Decouple tracker event discovery from issue processing so channel-based sources can plug into the runtime later without rewriting reply handling.
2026-04-08 12:51:24 +08:00
insleker c02fb0e62a fix: keep polling after network failures (#8) 2026-04-06 16:58:07 +08:00
insleker a474ed243d refactor: clarify tracker client naming (#6)
Rename the provider-aware tracker client and scope since cutoffs per provider so review-driven cleanup improves readability and avoids extra tracker fetches.
2026-04-06 10:44:32 +08:00
insleker cf1d8ec782 feat: add Gitea issue tracker support (#6)
Support projects hosted on Gitea via tea so the poller can fetch issues, read threads, and post replies across both supported trackers.
2026-04-06 09:22:30 +08:00
insleker dd56ab4554 fix(issue-assistant): poll only open issues 2026-04-05 18:30:20 +08:00
insleker c1c6f4fba5 feat: add desktop notifier 2026-04-05 16:31:33 +08:00
insleker c9fd672a04 feat: add Discord issue assistant notifications 2026-04-05 15:56:47 +08:00
insleker 200992d67b feat: enable aggregate adjacent github polling 2026-04-05 13:58:44 +08:00
insleker 8fe0d1017f feat: add `init-config` option to gen initial config file
refactor: use `json_serializable` to achieve config file deserialization
2026-04-05 02:28:11 +08:00
insleker 5d3b4ff2c1 refactor: git and GitHub integration by add corresponding handle libs 2026-04-05 00:51:37 +08:00
insleker eab1a3ffe8 feat: update issue assistant configuration to support max concurrent issues and reduce poll interval 2026-04-05 00:33:42 +08:00
insleker 8469ed00e0 feat: add prefix, postfix to distinguish human and bot comment 2026-04-05 00:00:41 +08:00
insleker 558db6991c fix: issue responder context and mention replies 2026-04-04 23:05:12 +08:00
insleker 42b89719fd feat: Add minimal GitHub repo configuration and issue assistant setup
fix: Export workspace manager in code work spawner
feat: Enhance CLI responder to handle JSONL events
feat: Implement job status enumeration in database
feat: Add logging capabilities to IssueAssistantApp
2026-04-04 22:12:03 +08:00
insleker aa8d122ab9 feat: add Gherkin test validation and enforce doc-comment format 2026-04-04 20:17:05 +08:00
insleker da87c670ae feat: 1st commit 2026-04-04 18:52:01 +08:00