From 7b0b34692870eaa50f92297f4e3cd1d657f07d67 Mon Sep 17 00:00:00 2001 From: Mikael Hugo Date: Wed, 6 May 2026 14:09:41 +0200 Subject: [PATCH] sf snapshot: uncommitted changes after 152m inactivity --- TODO.md | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/TODO.md b/TODO.md index 151d5d7b4..59f3fa29c 100644 --- a/TODO.md +++ b/TODO.md @@ -5,7 +5,47 @@ runtime memory or an approved backlog. ## Untriaged Notes -- None. +### Feature Gaps & Limitations (2026-05-06) + +#### Critical Path Gaps +- **Monolithic auto-dispatch/auto-prompts files** (61KB, 123KB) — acknowledged in ADR-001 as needing decomposition. Blocks easy navigation and testing of autonomous dispatch logic. +- **Extension-provided models incomplete** — Extensions cannot reliably register custom model variants. Model selection system needs refactoring to expose before_model_select hook properly. +- **No typed environment schema** — SF_* env vars have no runtime validation. Missing config is silent and hard to debug. Need zod/io-ts schema in env.ts. + +#### Backlog Features (BUILD_PLAN.md Tier 1-2) +- **Product-audit phase auto-fire** — Tool callable but PhaseMerge/PhaseComplete dispatch not wired. Manual ports from gsd-2 needed. +- **Extended config-overlay keys** — Missing context_compact_at, context_hard_limit, unit_timeout_by_phase, max_agents_by_phase, turn_input_required, hot_cache_turns, etc. Users cannot tune critical perf/timeout settings. +- **Architecture doc auto-update** — No fast-dispatch at phase-end to detect if ARCHITECTURE.md/CONVENTIONS.md/STACK.md drifted. Auto-propose diffs for user approval. +- **Semantic checkpoint chapters** — No per-turn semantic "chapter" grouping for crash-resume context. Phase transitions inferred but not labeled. Impacts Hindsight recall usefulness. +- **Custom Anthropic SSE parser** — Still using @anthropic-ai/sdk client.messages.stream(). Should port pi-mono custom SSE parser (~200 LOC, 3 commits) to filter unknown-event + handle proxy events (issue #3708). +- **Symlinked package dedup** — Selectors/loaders show duplicates when packages/resources/skills/sessions symlinked (dev, CI). Port from pi-mono PR #3818. +- **Extension API setWorkingVisible()** — ctx.ui.setWorkingVisible() not yet added. Prevents extensions from hiding built-in working-loader; limits TUI customization. + +#### Provider Expansion (BUILD_PLAN.md Tier 0.5 - gsd-2 ports) +- **Cloudflare Workers AI provider** — Not yet in routing list. Ready in pi-mono PR #3851; 1-line port. +- **Azure Cognitive Services base URL** — Azure OpenAI Responses endpoint support not ported from pi-mono PR #3799. +- **Local LLM SSE timeout (5-min cutoff)** — Ollama/LM Studio over 5 min hit UND_ERR_BODY_TIMEOUT. Fix available in pi-mono `d0907b6d8` (1 commit). +- **Bedrock inference profile normalization** — Prompt-caching checks fail on inference profile ARNs. Fix in pi-mono `7c487bb60` (1 commit). + +#### Testing Gaps +- **Coverage thresholds too low** — 40% is acceptable but should be 60%+ for autonomous/critical paths (auto-dispatch, recovery, state machine). Add property-based testing (fast-check) for state transitions. +- **No end-to-end milestone lifecycle tests** — Missing integration tests covering full milestone flow. +- **No fault-injection/chaos tests** — Recovery paths (stuck-loop detection, timeout recovery, runaway guards) lack chaos/fault-injection coverage. + +#### Minor/Polish +- **Biome schema version mismatch** — biome.json v2.4.13 vs CLI v2.4.14. Run `biome migrate`. +- **MCP package completeness unclear** — docs reference mcp-server but completeness unknown. Verify packages/mcp-server/ is production-ready and document status. +- **Headless assistant-text preview deferred** — Notification categorization done; assistantTextBuffer/thinkingBuffer separation incomplete (see headless.ts). + +#### gsd-2 Safety/Correctness Ports (BUILD_PLAN.md Tier 0.5) +- **Bash evidence persistence race** — Close mid-unit re-dispatch race (gsd-2 `da7dd56e7`, PR #5056→#5058). Bash tool calls can lose evidence between dispatch and re-dispatch. +- **Project-controlled surface hardening** — Full fix supersedes partial cherry-pick at `66ff949c1` (gsd-2 `65ca5aa2e`). +- **Web_search injection narrowing** — Only inject web_search when provider accepts it (gsd-2 `4370bedf3`). +- **Symlinked .sf staging self-heal** — Data-loss prevention when staging dir is symlink (gsd-2 `9340f1e9b`, PR #4423). +- **Milestone KNOWLEDGE injection budgeting** — Prevents scope knowledge from blowing context budget (gsd-2 `58d3d4d6c`, PR #4721). +- **MCP-server stdout-buffer deadlock** — Large-output MCP tools could hang (gsd-2 `bb747ec57`). +- **Workflow state machine race protection** — Session transitions during agent_end, idle-wait optimization (gsd-2 commits `71114fccf`, `6d7e4ccb5`, `c162c44bf`, `e3bd04551`). +- **Claude-Code CLI Always-Allow persistence** — Grant persistence for non-Bash tools (gsd-2 `a88baeae9`, PR #5096). ## Processed Notes