Date: 2026-05-14
Branch: feat/llm-cli-sources
Remote push: not performed
| Preset | Status | Notes |
|---|---|---|
S1a aider |
PASS | Added AiderSource, watches ~/.aider/sessions/*.jsonl, falls back to .aider.chat.history.md, maps tool calls/user/assistant states. |
S1b gemini_cli |
PARTIAL | Added GeminiCliSource with best-effort JSONL parser and TODO marker for upstream path/schema confirmation. |
S1c opencode |
PARTIAL | Added OpenCodeSource with best-effort parts/tool detection and TODO marker for upstream schema confirmation. |
S1d continue_cli |
PARTIAL | Added ContinueCliSource, reads whole ~/.continue/sessions/*.json; TODO marker for schema confirmation. |
S1e cline |
PARTIAL | Added ClineSource with CLI + VS Code task paths; TODO marker for upstream CLI/task schema confirmation. |
All five source modules are under 200 lines.
- S2 PASS: added
bridge/openpets_bridge/discovery.pyanddiscover_installed_sources(). - S2 PASS:
openpets-bridge discover-sourcesprints id/installed/watch path/activity rows. - S2 PASS:
config shownow includes adiscoveryobject per source. - S3 PASS: added
add_source_preset()andremove_source(); builtin removal raisesValueError. - S3 PASS: default TOML contains commented-out preset examples for all five new CLIs.
- S4 PASS: added
config add-source-preset <preset_id>andconfig remove-source <preset_id>.
- S5 PASS:
Bridge ▸ Manage CLI sources…postsOpenPetsPreferencesSourcesTab. - S5 PASS: tray toggle now add-then-enables presets that are visible from defaults but not yet written to config.
- S6 PASS: added Preferences
Sourcestab with checkbox, label/icon, Installed/Not detected status, and Reveal in Finder for detected paths. - S6 PASS: Preferences listens through the menu controller notification path and opens directly to Sources.
- PASS: added discovery tests, config helper tests, CLI verb tests, config show discovery test, and smoke tests for all five source modules.
- Result:
31 passed.
swift build -c release --product openpets-menubar -Xlinker -rpath -Xlinker '@loader_path/../Frameworks' 2>&1 | tail -15
swift: warning: confstr() failed with code 5: couldn't get path of DARWIN_USER_TEMP_DIR; using /tmp instead
warning: /Users/maciej/Library/org.swift.swiftpm/configuration is not accessible or not writable, disabling user-level cache features.
warning: /Users/maciej/Library/org.swift.swiftpm/security is not accessible or not writable, disabling user-level cache features.
warning: /Users/maciej/Library/Caches/org.swift.swiftpm is not accessible or not writable, disabling user-level cache features.
error: 'openpets-fork': Invalid manifest ...
<unknown>:0: error: error opening '/Users/maciej/.cache/clang/ModuleCache/Swift-5SCGS38H536W.swiftmodule' for output: /Users/maciej/.cache/clang/ModuleCache: Operation not permitted
<unknown>:0: error: unable to load standard library for target 'arm64-apple-macosx14.0'
error: 'openpets-fork': Invalid manifest ...
<unknown>:0: error: error opening '/Users/maciej/.cache/clang/ModuleCache/Swift-5SCGS38H536W.swiftmodule' for output: /Users/maciej/.cache/clang/ModuleCache: Operation not permitted
<unknown>:0: error: unable to load standard library for target 'arm64-apple-macosx14.0'
error: ExitCode(rawValue: 1)
[0/1] Planning build
Status: BLOCKED by sandbox permission before project compilation.
swift: warning: confstr() failed with code 5: couldn't get path of DARWIN_USER_TEMP_DIR; using /tmp instead
warning: /Users/maciej/Library/org.swift.swiftpm/configuration is not accessible or not writable, disabling user-level cache features.
warning: /Users/maciej/Library/org.swift.swiftpm/security is not accessible or not writable, disabling user-level cache features.
warning: /Users/maciej/Library/Caches/org.swift.swiftpm is not accessible or not writable, disabling user-level cache features.
error: 'openpets-fork': Invalid manifest ...
<unknown>:0: error: error opening '/Users/maciej/.cache/clang/ModuleCache/Swift-5SCGS38H536W.swiftmodule' for output: /Users/maciej/.cache/clang/ModuleCache: Operation not permitted
<unknown>:0: error: unable to load standard library for target 'arm64-apple-macosx14.0'
error: 'openpets-fork': Invalid manifest ...
<unknown>:0: error: error opening '/Users/maciej/.cache/clang/ModuleCache/Swift-5SCGS38H536W.swiftmodule' for output: /Users/maciej/.cache/clang/ModuleCache: Operation not permitted
<unknown>:0: error: unable to load standard library for target 'arm64-apple-macosx14.0'
error: ExitCode(rawValue: 1)
[0/1] Planning build
Status: BLOCKED by sandbox permission before project compilation.
Additional review evidence: subagent ran swift build --disable-sandbox -c release --product openpets successfully. openpets-menubar compiled and linked under --disable-sandbox, then failed at dSYM generation with Operation not permitted.
............................... [100%]
31 passed in 0.11s
## feat/llm-cli-sources
M FORK_NOTE.md
M Sources/OpenPetsMenuBar/OpenPetsBridgeSubmenu.swift
M Sources/OpenPetsMenuBar/OpenPetsMenuBar.swift
M Sources/OpenPetsMenuBar/OpenPetsPreferencesWindow.swift
M bridge/CHANGELOG.md
M bridge/openpets_bridge/__init__.py
M bridge/openpets_bridge/cli.py
M bridge/openpets_bridge/config.py
M bridge/openpets_bridge/sources/__init__.py
M bridge/pyproject.toml
M bridge/tests/test_config.py
?? CODEX_RUN_REPORT_LLM_CLI.md
?? CODEX_TASK_SPEC_LLM_CLI.md
?? bridge/openpets_bridge/discovery.py
?? bridge/openpets_bridge/sources/aider.py
?? bridge/openpets_bridge/sources/cline.py
?? bridge/openpets_bridge/sources/continue_cli.py
?? bridge/openpets_bridge/sources/gemini_cli.py
?? bridge/openpets_bridge/sources/llm_cli_common.py
?? bridge/openpets_bridge/sources/opencode.py
?? bridge/tests/test_cli_sources.py
?? bridge/tests/test_discovery.py
?? bridge/tests/test_sources_llm_cli.py
Status: empty because no commits were created on feat/llm-cli-sources; changes are working-tree edits only.
bridge/openpets_bridge/sources/aider.py: confirm Aider upstream JSONL session schema.bridge/openpets_bridge/sources/gemini_cli.py: confirm Gemini CLI canonical path and schema.bridge/openpets_bridge/sources/opencode.py: confirm OpenCode persisted turn schema.bridge/openpets_bridge/sources/continue_cli.py: confirm Continue CLI/agent history schema.bridge/openpets_bridge/sources/cline.py: confirm Cline CLI task schema and VS Code storage path.
feat(bridge): add opt-in LLM CLI source presets