Skip to content

Latest commit

Β 

History

History
53 lines (44 loc) Β· 3.41 KB

File metadata and controls

53 lines (44 loc) Β· 3.41 KB

Backlog

Things found along the way that we are not dealing with right away. This keeps the ROADMAP focused on planned work and the ADRs focused on decisions, while making sure incidental findings aren't lost.

How to use: when you discover something out of scope for the current task, add a line here instead of expanding the task. Each item: a short title, one line of context, where it was found, and a rough priority (P1 = soon / P2 = eventually / P3 = nice-to-have). Pull items into the ROADMAP when they're ready to be scheduled; delete them when done or obsolete.

Larger deferred concerns already tracked live in the ROADMAP's open-question β†’ slice map and in the ADRs; this file is for the smaller stuff that doesn't have a home there yet.

Cleanups / tech debt

  • Starlette/httpx TestClient deprecation warning β€” tests emit "Using httpx with starlette.testclient is deprecated; install httpx2 instead." Harmless, but noisy. Pin/upgrade once the ecosystem settles. (Slice 1, P3)
  • CI doesn't type-check tests/ β€” mypy -p panopticon covers the package only. Consider adding mypy tests (needs path/namespace config). (Slice 1, P3)
  • advanced_by is declared but not engine-enforced β€” a state's advanced_by (USER/AGENT) is queryable metadata; the engine doesn't yet use it to decide who may trigger a transition, nor is there a per-transition auto-advance flag. Wire it when the agent runtime needs it (around the parity workflow, Slice 4). (Slice 1, P2)
  • No schema migrations β€” the SQLAlchemy adapter creates tables with metadata.create_all; there's no versioning/upgrade path. Add Alembic (or equivalent) before the schema ships anywhere with data to preserve. (Slice 1, P2)

Deferred features (not yet scheduled, or scheduled but flagged here)

  • Runnable task-service entrypoint β€” there's no uvicorn-runnable server + config (host/interface, DB path, artifact root, workflow path). Tests drive create_app in-process. Needed before Slice 2/3 can run for real. (Slice 1, P1)
  • Workflow path-based registration β€” workflows are injected as a dict today; ADR 0004/0006 specify loading from a registered path at startup (ROADMAP Slice 7). (Slice 1, P2)
  • MCP server implementation β€” only the surface contract (taskservice/mcp.py) exists; the running server lands when real containers connect (ROADMAP Slice 2). (Slice 1, P2)
  • Liveness staleness/expiry β€” registrations track last_seen but nothing expires stale ones or detects a lost container (heartbeat timeout/TTL). Needs a small design. (Slice 1, P2)
  • Registrations are in-memory β€” lost on task-service restart; no reconciliation with live containers on reconnect (relates to ADR 0008 failure-handling). (Slice 1, P2)
  • Slug-addressable artifacts β€” once a task has a slug, both tasks/{task_id}/artifacts/{name} and tasks/{slug}/artifacts/{name} should resolve to the same artifact (slug as an alias for the id on the artifact routes). (Slice 1, P3)

Tracked elsewhere (pointers, do not duplicate)

  • Artifact concurrency / drift detection β†’ ADR 0003 / ROADMAP open-questions.
  • At-rest secret protection & remote delivery β†’ ADR 0007 / M5.
  • Runner registration/discovery, inter-process auth, restart reconciliation β†’ ADR 0008 / M5.
  • Image matrix, registry storage, rebuild triggers, layer order β†’ ADR 0005 / M5.