life sync / POST /v1/sync is documented with an admin scope but has no handler #85
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?
Context
Found during the release audit on main@6d74288 (the audit that closed the six follow-up issues). life sync is the only remaining documented-but-unimplemented surface: an automated pass over docs/technical/cli-api.md's route table (26 routes) found every other documented route has a real handler.
Current state, all three places disagreeing in a consistent-looking way:
It fell between three planned issues that each mention /v1/sync only in passing — #2 (scaffold), #7 (discovery), #35 (scope table, which is where the orphaned scope entry came from). No issue has ever owned the implementation, so the 501 is invisible in the tracker.
The semantics are already specified and are not trivial:
Decision required first
This issue is a fork, and the choice must be recorded here before any code is written. It is a product decision, not an implementation detail:
Recommendation: (b) now, (a) as its own slice later — shipping with an advertised admin route that answers 501 is worse than not advertising it, and the honest form of "not yet" is a spec that does not promise it. But if sync is on the critical path for the first release, (a) is the real fix.
Acceptance criteria
Whichever branch is chosen, spec, CLI and skill must agree in one commit — that disagreement is what made this invisible for the whole project.
If (b) descope:
If (a) implement:
Blocked by
None. Related: #2, #7, #35 (which mention the route without owning it), #45 (the pagination/snapshot machinery a paged sync would reuse), #6 (recovery scanner).
to life sync / POST /v1/sync is documented with an admin scope but has no handlerlife sync/ POST /v1/sync is documented with an admin scope but has no handlerClosing as superseded — the decision inside this issue is made, and the work now has a single owner.
This issue was deliberately written as a fork: (a) implement POST /v1/sync, or (b) descope it so the spec, the scope table, the CLI and the skill all agree the surface does not exist. The coordinator initially chose (b) and started a worker; the user reversed that call, so (a) is the chosen branch and the descope work was cancelled before it produced a commit or a PR.
The gap this issue tracked — a route advertised in docs/technical/cli-api.md with an admin scope entry in src/api/auth.rs but no handler, answering 501 — is therefore closed by implementing it, tracked as #88. Nothing is lost by closing: #88 is open and names the same surface, and the evidence gathered here (the three places that disagreed, and the fact it fell between #2, #7 and #35) is preserved for whoever picks it up. Reopen if the implementation is ever abandoned.