mirror of
https://github.com/niels-emmer/myace.git
synced 2026-09-14 07:36:39 +02:00
[GH-ISSUE #91] Backport remaining adapters to the CLI's local fallback #81
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
github-mirrors/myace#81
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @niels-emmer on GitHub (Aug 13, 2026).
Original GitHub issue: https://github.com/niels-emmer/myace/issues/91
`myace pull` can render a compiled profile locally without hitting the server, using per-adapter copies in `cli/myace_cli/adapters/`. Per `docs/extending.md`: "the CLI currently only mirrors the original three — `claude_code`, `opencode`, `cursor` — so this step is aspirational for the other nine until someone backports them."
Backend has 12 adapters (`backend/app/adapters/`); the CLI only has fallbacks for 3, meaning `myace pull` for any of the other 9 targets (windsurf, cline, aider, cody, amazon-q, continue, copilot-cli, codex-cli, and whichever adapter lands from #<pi.dev issue>) requires the server to be reachable — no offline fallback.
Task: port the remaining 9 backend adapters' `translate()` logic into `cli/myace_cli/adapters/`, keeping output identical to the backend version (there's no automated parity check today — worth keeping in mind, maybe worth adding as a follow-up). Can be tackled one adapter at a time / split across multiple PRs.
@niels-emmer commented on GitHub (Aug 14, 2026):
Marking as backlog/future work: the CLI-side adapter fallback path (
cli/myace_cli/adapters/) isn't currently wired intomyace pullat all —sync.pyalways hits/api/v1/profiles/compileon the server regardless of target. Porting the remaining 8 adapters would mean maintaining 11 hand-syncedtranslate()copies (no parity check exists yet) for a fallback path nothing calls today. Given MyACE's self-hosted, always-on-server deployment model, the offline case is narrow (CI/airgapped runs, server outages). Worth revisiting if/whenmyace pullactually gains a local-fallback code path, and ideally after an automated parity check exists to catch drift.@niels-emmer commented on GitHub (Aug 14, 2026):
Marvin (AI) on behalf of Niels:
Checked current state of
cli/myace_cli/adapters/vsbackend/app/adapters/anddocs/extending.mdagainstmain.Agree with the backlog call in the comment above, and can confirm the reasoning against current code:
cli/myace_cli/sync.py'spull_profile()unconditionally calls the backend's/profiles/compileendpoint — no try/except, no fallback branch, and nothing inmain.py/sync.pyimportsmyace_cli.adaptersat all. The package is real and (for the 3 targets it covers) correctly maintained, but genuinely dead code today.docs/extending.mdalready states this plainly as of #96 ("a local-rendering fallback that hasn't been wired up yet... adding a CLI copy for a new adapter is optional"), so the docs and the issue's premise are now aligned — no remaining doc drift on this point.What's actually changed since this issue was filed (#95, #96 both merged):
cody.pywas retired in #95 (product discontinued), so the real remaining gap is 8 un-ported adapters (aider,amazon-q,cline,codex-cli,continue,copilot-cli,goose,windsurf), not 9.claude_code.py,cursor.pyhad the same bugs #95 fixed on the backend side) and added test coverage that didn't exist before (test_claude_code_adapter.py,test_cursor_adapter.py). So the 3 adapters the CLI does mirror are now correct and tested — the gap is purely the 8 that were never ported, not lingering drift on the existing 3.Triage: the backport itself still isn't worth doing — 8 more hand-synced
translate()copies for a code pathmyace pullnever calls, with no automated parity check to catch drift (exactly the kind of drift #96 just had to fix by hand). Two things would make this worth revisiting, per the issue body's own framing: (1)myace pullactually gains a local-fallback branch that callsmyace_cli.adapters, and (2) an automated parity check (e.g. a test that runs bothtranslate()implementations against the same fixture artifacts and diffs the output) exists before more hand-synced copies are added. Suggest closing this as backlog / not-planned for now, or re-scoping the title to the actual blocking prerequisite ("wire local-fallback path into myace pull") rather than leaving it phrased as a ready-to-pick-up adapter-porting task.Comment-only, no code changes.
@niels-emmer commented on GitHub (Aug 17, 2026):
Closing as not-planned per the triage above (both the owner's comment and the AI-agent triage comment reached the same conclusion): `cli/myace_cli/adapters/` isn't wired into `myace pull` today — `sync.py` always calls the backend's `/profiles/compile` endpoint directly, so porting more adapters into it means hand-maintaining copies for a code path nothing exercises, with no automated parity check to catch drift.
Revisit if/when both prerequisites land: (1) `myace pull` gains an actual local-fallback branch that calls `myace_cli.adapters`, and (2) an automated parity check exists (e.g. a test running both `translate()` implementations against the same fixture artifacts and diffing output) to catch drift before more hand-synced copies are added.