feat(warroom): surface pending action receipts before launch#59
Open
jmagly wants to merge 1 commit into
Open
Conversation
Add an Action Receipts panel to the War Room that fetches GET /api/approvals?status=pending and shows each pending receipt's action, target, and reason with approve/reject controls wired to the existing /api/approvals/:id/approve and /reject endpoints. Receipt state is part of T3MP3ST's authority boundary; hiding pending approvals lets an operator launch with stale or unexpected approval state. The panel distinguishes loopback/local targets from external ones (client-side mirror of isLocalOrPrivateTarget, and it honors a server-provided `localTarget` flag if one is ever added). It polls only while the War Room view is active (same cadence as refreshSystemStatus) and stays hidden when nothing is pending. Self-contained module appended before </body>; no changes to existing markup or scripts.
This was referenced Jul 8, 2026
Contributor
Author
|
Please rebase this branch onto current The pending action receipts idea is reviewable, but the current branch includes unrelated stale-base removals around Gemini/provider config. Those changes are outside this PR’s scope and make the merge impact too broad. Suggested agent repair path:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #34.
What it adds
An Action Receipts panel in the War Room that makes pending approval receipts visible before and during a mission — so an operator never launches with stale or unexpected approval state.
The panel:
GET /api/approvals?status=pending;localvs redexternaltag);POST /api/approvals/:id/approveand/rejectendpoints;refreshSystemStatus) and hides itself when nothing is pending.How it's built
A single self-contained module appended before
</body>— it injects its own styles and mounts into#page-warroom. No existing markup or scripts are modified, which keeps the change low-risk against the large SPA. The local/external detection is a faithful client-side mirror of the server'sisLocalOrPrivateTarget; if the API later annotates approvals with alocalTargetboolean, the panel prefers that authoritative value.Verification
node --checkon the inserted script — clean.::1/[::1]:port,.local, external hosts).npm test— 367 passing, unchanged (this is a UI-only change; nosrc/files touched).Note on scope
This is intentionally UI-only. The approve/reject/list endpoints already exist on
main; only the War Room surface was missing. A monolithic-HTML SPA change has no unit-test surface in this repo, so verification is the syntax + detection-logic checks above rather than a vitest case. Happy to adjust placement/styling to taste.