History is archived fleet-side, so the read surface has no remaining job. - api/routers/suggestions.py: whole prefix 410s with a pointer to intake and to the archive; the router drops from 176 lines to a stub - mcp_server: the 6 suggestion tools removed outright rather than stubbed -- a retired tool that still appears in the tool list costs every agent session context on every call, which is the opposite of retiring it - write_idempotency: 5 /suggestions rules dropped - dashboard: suggestions.md deleted, nav entry removed, reference.md and wsjf-triage.md updated; docs/suggestions.md rewritten as archive pointer - tests: two tests pinned the old read-live behaviour and now pin the retirement contract instead Tables stay: they are retire/archive in SHR-INV-0001 and are captured by the final dump at T06. Untouched, and worth knowing during cutover: ui-feedback.md / todo.md 'suggestions' are Shift+click dashboard feedback backed by technical_debt, a different entity that shares the word. E3 (dashboard-meta) is that page; its owner is state-hub-until-cutover so it retires at the T06 window, not now. Full suite 612 passed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
45 lines
1.8 KiB
Python
45 lines
1.8 KiB
Python
"""Retired: the suggestion backlog.
|
|
|
|
Slice E1 of the State Hub retirement (`STATE-WP-0079-T05`). The capability was
|
|
superseded by the **intake** work-record entity; mutations were retired
|
|
2026-07-21 under `CUST-WP-0061-T06`, and the reads were kept live only so the
|
|
historical record stayed reachable.
|
|
|
|
That history is now archived at
|
|
`the-custodian/docs/archived-suggestion-backlog.md` — all 10 suggestions, 10
|
|
notes and 5 relevance bumps, every one closed as `declined` during the intake
|
|
migration and none promoted. With a durable record outside this repo, the read
|
|
surface has no remaining job, so the whole router answers 410.
|
|
|
|
The `suggestions`, `suggestion_notes` and `suggestion_relevance_bumps` tables
|
|
are deliberately left in place: they are `retire`/`archive` in `SHR-INV-0001`
|
|
and are captured by the final dump at `STATE-WP-0079-T06`. Dropping them here
|
|
would remove data ahead of the dump for no gain.
|
|
"""
|
|
|
|
from fastapi import APIRouter, HTTPException
|
|
|
|
router = APIRouter(prefix="/suggestions", tags=["suggestions"])
|
|
|
|
_DETAIL = (
|
|
"suggestions are retired (STATE-WP-0079-T05, slice E1). "
|
|
"Use POST /intakes/ for new discovery work. The historical backlog is "
|
|
"archived at the-custodian/docs/archived-suggestion-backlog.md — see also "
|
|
"the-custodian/intake-legacy-suggestions-migration.md and "
|
|
"canon/standards/work-record-types_v0.1.md."
|
|
)
|
|
|
|
|
|
def _retired() -> HTTPException:
|
|
return HTTPException(status_code=410, detail=_DETAIL)
|
|
|
|
|
|
@router.api_route(
|
|
"/{path:path}",
|
|
methods=["GET", "POST", "PATCH", "PUT", "DELETE"],
|
|
include_in_schema=False,
|
|
)
|
|
@router.api_route("/", methods=["GET", "POST", "PATCH", "PUT", "DELETE"])
|
|
async def suggestions_retired(path: str = "") -> None:
|
|
"""Every suggestion route is retired; see module docstring."""
|
|
raise _retired()
|