docs: VS Code extension feasibility and JSON admin API plan #36

Merged
pti merged 4 commits from docs/vscode-plugin-api into main 2026-08-26 23:32:09 +02:00
Owner

Two design notes plus index rows. design/vscode-plugin.md: feasibility of a VS Code extension for operator request review - verdict feasible once the JSON admin API exists, extension lives in a separate repository, contract owned here, TUI stays in-tree and file-direct. design/webui/admin-json-api.md: the implementation plan for /api/v1 that PR 35 implements, including the v1 scope decision deferring requestlog.Watch and SSE in favor of polling, and the review-driven contract details - typed requestlog.ErrNotFound, JSON catch-all for unknown /api/ paths, deliberate env/env_files omission from the rules endpoint. Generated with Claude Code.

Two design notes plus index rows. design/vscode-plugin.md: feasibility of a VS Code extension for operator request review - verdict feasible once the JSON admin API exists, extension lives in a separate repository, contract owned here, TUI stays in-tree and file-direct. design/webui/admin-json-api.md: the implementation plan for /api/v1 that PR 35 implements, including the v1 scope decision deferring requestlog.Watch and SSE in favor of polling, and the review-driven contract details - typed requestlog.ErrNotFound, JSON catch-all for unknown /api/ paths, deliberate env/env_files omission from the rules endpoint. Generated with Claude Code.
Feasibility note: extension is routine editor plumbing once wraptool
grows a versioned JSON surface (/api/v1 + SSE) next to the HTML review
UI. Extension lives in a separate repository; the contract stays here.
TUI (webui-accessibility-reachability.md §5) remains in-tree and
file-direct, not an API consumer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011GjxKV7SYeStUbfFBFe34E
Work packages for the API that vscode-plugin.md requires, shaped by a
duplication audit: the approve flow already lives twice (webui + CLI),
so WP1 extracts internal/adminops before any handler is added; WP2 adds
requestlog.Watch (fsnotify tail) shared by SSE and the future TUI; WP3-5
are thin JSON veneers, API-aware auth, and CLI --json. Rules mutation
stays HTML-only.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011GjxKV7SYeStUbfFBFe34E
Polling covers human-approval latency and the extension needs the
polling path anyway; the fsnotify tail is the plan's riskiest chunk and
its other consumer (the TUI) does not exist yet. Build it with the TUI
or when polling measurably annoys.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011GjxKV7SYeStUbfFBFe34E
docs(design): align API plan with review outcomes
Some checks failed
Lint / lint (pull_request) Failing after 36m10s
237025da60
Drop the unused ApproveResult.Request field, note Snippet is always
populated, record the accepted UpdateStatus flash-prefix deviation, and
pin the contract details review demanded: typed requestlog.ErrNotFound
for 404 classification, a JSON catch-all for unknown /api/ paths, and
the deliberate env/env_files omission from /api/v1/rules.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011GjxKV7SYeStUbfFBFe34E
pti merged commit e0ed402c9c into main 2026-08-26 23:32:09 +02:00
Sign in to join this conversation.
No reviewers
No labels
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
pti/wraptool!36
No description provided.