mirror of
https://github.com/chenhg5/cc-connect.git
synced 2026-07-03 12:28:10 +08:00
* feat(observe): add --observe CLI flag and engine config Add observe fields to the Engine struct and a SetObserveConfig setter to enable terminal session observation in a later task. Define --observe and --observe-channel CLI flags (wiring deferred). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(observe): add ObserverTarget interface, implement for Slack Define ObserverTarget optional interface in core/ for platforms that can receive terminal observation messages. Implement SendObservation on Slack platform using PostMessageContext with link unfurl disabled. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(observe): implement JSONL session file watcher and parser Adds sessionObserver to core/observer.go which tails ~/.claude/projects/{projectKey}/*.jsonl files, parses user/assistant events, filters out sdk-cli sessions (cc-connect's own), and forwards new messages to ObserverTarget. Includes full test coverage. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(observe): wire observer into engine startup and shutdown Add findObserverTarget to locate the first ObserverTarget platform, startObserver to launch the JSONL watcher goroutine when configured, wired into Engine.Start() and cancelled in Engine.Stop(). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(observe): wire --observe and --observe-channel flags in CLI Removes the TODO suppressor and connects the --observe/--observe-channel CLI flags to engine.SetObserveConfig(), resolving the Claude Code project directory from the configured work_dir via the new resolveClaudeProjectDir helper. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(observe): add config.toml support for observe settings Add ObserveConfig struct to ProjectConfig so users can configure terminal session observation via [projects.observe] in config.toml, with CLI flags (--observe, --observe-channel) taking precedence over config file values. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(observe): rune-safe truncation, robust offset tracking, interface assertion - Use file size for offset tracking instead of line-length calculation to avoid drift from \r\n line endings or partial final lines - Truncate messages at valid rune boundaries to prevent garbled UTF-8 - Add compile-time ObserverTarget interface assertion for Slack Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Leigh Stillard <leigh@stillard.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>