[PR #96] [MERGED] Fix CLI adapter drift and offline-fallback documentation claims #96

Closed
opened 2026-08-15 07:30:12 +02:00 by zaph0d · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/niels-emmer/myace/pull/96
Author: @niels-emmer
Created: 8/14/2026
Status: Merged
Merged: 8/14/2026
Merged by: @niels-emmer

Base: mainHead: docs/audit-cli-adapter-parity-and-fallback-claims


📝 Commits (1)

  • 0988379 fix: correct CLI adapter drift and fallback-mechanism doc claims

📊 Changes

9 files changed (+216 additions, -50 deletions)

View changed files

📝 README.md (+4 -2)
📝 cli/myace_cli/adapters/claude_code.py (+32 -11)
📝 cli/myace_cli/adapters/cursor.py (+24 -21)
cli/tests/test_claude_code_adapter.py (+75 -0)
cli/tests/test_cursor_adapter.py (+42 -0)
📝 docs/architecture.md (+12 -6)
📝 docs/extending.md (+12 -7)
📝 docs/invariants.md (+6 -2)
📝 docs/plans/starter-collections-improvements.md (+9 -1)

📄 Description

Summary

A documentation audit following #95 turned up two real discrepancies —
not just stale wording, but a genuine code/docs mismatch:

1. The CLI's own adapter copies had silently drifted. cli/myace_cli/adapters/claude_code.py and cursor.py are meant to be kept in sync with their backend counterparts (per docs/extending.md), but they still had the exact bugs #95 fixed on the backend side — no agent frontmatter, an invented .claude/workflows/ path, wrong Cursor frontmatter fields, numbered .mdc files, and the legacy .cursorrules. Fixed both to match backend/app/adapters/{claude_code,cursor}.py, and added test_claude_code_adapter.py/test_cursor_adapter.py (there wasn't coverage for either before — only test_opencode_adapter.py existed).

2. Four docs claimed a working offline-fallback feature that doesn't exist. README.md, docs/architecture.md, docs/invariants.md, and docs/extending.md all stated that cli/myace_cli/adapters/ is used as a fallback when myace pull can't reach the server. Checking cli/myace_cli/sync.py shows pull_profile() always calls the backend's /profiles/compile endpoint directly, with no try/except or fallback path — and nothing in main.py/sync.py imports myace_cli.adapters at all. The package is real, tested, and (for those 3 targets) correctly maintained, but it's dead code today. Corrected all four doc locations to say so plainly rather than implying a feature that isn't there.

Also fixed docs/plans/starter-collections-improvements.md's ## Status line, which still read "Not started" despite the plan being mostly complete and merged.

Test plan

Ran for real in fresh venvs this time (not just logic-traced):

  • CLI: ruff check . clean, pytest 28/28 passing (including the 2 new test files)
  • Backend: ruff check . clean, pytest 202/202 passing
  • Frontend: tsc -b --noEmit clean, vitest run 19/19 passing

🤖 Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/niels-emmer/myace/pull/96 **Author:** [@niels-emmer](https://github.com/niels-emmer) **Created:** 8/14/2026 **Status:** ✅ Merged **Merged:** 8/14/2026 **Merged by:** [@niels-emmer](https://github.com/niels-emmer) **Base:** `main` ← **Head:** `docs/audit-cli-adapter-parity-and-fallback-claims` --- ### 📝 Commits (1) - [`0988379`](https://github.com/niels-emmer/myace/commit/09883798995dd3b7362e010a6a0cb93cccfc6b70) fix: correct CLI adapter drift and fallback-mechanism doc claims ### 📊 Changes **9 files changed** (+216 additions, -50 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+4 -2) 📝 `cli/myace_cli/adapters/claude_code.py` (+32 -11) 📝 `cli/myace_cli/adapters/cursor.py` (+24 -21) ➕ `cli/tests/test_claude_code_adapter.py` (+75 -0) ➕ `cli/tests/test_cursor_adapter.py` (+42 -0) 📝 `docs/architecture.md` (+12 -6) 📝 `docs/extending.md` (+12 -7) 📝 `docs/invariants.md` (+6 -2) 📝 `docs/plans/starter-collections-improvements.md` (+9 -1) </details> ### 📄 Description ## Summary A documentation audit following #95 turned up two real discrepancies — not just stale wording, but a genuine code/docs mismatch: **1. The CLI's own adapter copies had silently drifted.** `cli/myace_cli/adapters/claude_code.py` and `cursor.py` are meant to be kept in sync with their backend counterparts (per `docs/extending.md`), but they still had the exact bugs #95 fixed on the backend side — no agent frontmatter, an invented `.claude/workflows/` path, wrong Cursor frontmatter fields, numbered `.mdc` files, and the legacy `.cursorrules`. Fixed both to match `backend/app/adapters/{claude_code,cursor}.py`, and added `test_claude_code_adapter.py`/`test_cursor_adapter.py` (there wasn't coverage for either before — only `test_opencode_adapter.py` existed). **2. Four docs claimed a working offline-fallback feature that doesn't exist.** `README.md`, `docs/architecture.md`, `docs/invariants.md`, and `docs/extending.md` all stated that `cli/myace_cli/adapters/` is used as a fallback when `myace pull` can't reach the server. Checking `cli/myace_cli/sync.py` shows `pull_profile()` always calls the backend's `/profiles/compile` endpoint directly, with no try/except or fallback path — and nothing in `main.py`/`sync.py` imports `myace_cli.adapters` at all. The package is real, tested, and (for those 3 targets) correctly maintained, but it's dead code today. Corrected all four doc locations to say so plainly rather than implying a feature that isn't there. Also fixed `docs/plans/starter-collections-improvements.md`'s `## Status` line, which still read "Not started" despite the plan being mostly complete and merged. ## Test plan Ran for real in fresh venvs this time (not just logic-traced): - [x] CLI: `ruff check .` clean, `pytest` 28/28 passing (including the 2 new test files) - [x] Backend: `ruff check .` clean, `pytest` 202/202 passing - [x] Frontend: `tsc -b --noEmit` clean, `vitest run` 19/19 passing 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
zaph0d 2026-08-15 07:30:12 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
github-mirrors/myace#96
No description provided.