T8 14/14: web-app create-vs-revise rework + final QA polish - #71
Open
mzargham wants to merge 2 commits into
Open
T8 14/14: web-app create-vs-revise rework + final QA polish#71mzargham wants to merge 2 commits into
mzargham wants to merge 2 commits into
Conversation
…te; staged-count banner Live-QA 2026-08-02 @ bb2d4a7, decision D5: 'we need a separation between authoring triples and the contextual model metadata that is authored once.' The record form now has two modes. Create types the identity (kind, slug, mapping). Revise PICKS an existing record from the session view, locks its placement, prefills its content from the graph, and submits cds_edit, so a slug is never an editable text box on an existing record. The Statement field is a real textarea (120px), inputs are wide, the identity and content blocks are labeled, and the action buttons follow the flow (stage, verify, compile, commit). The app header carries a live 'N staged, uncommitted' banner with the plain staging note (Step-2 durability observation). Widget tests now run in this environment (app extra synced; ipywidgets skip-gate no longer masks them). Refs: #56, #51 (QA D5/S4) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Second LARP pass (persona under override pressure, public HTTP surface only, post-remediation): the reviewer boundary held against 13 bypass attempts (invented args 422, headers/query ignored, waiver does not touch the role gate) and the persona took the legitimate path the refusal names. Residual findings were all wording, fixed here: the waive help no longer points at a /rules route this service does not serve (pass an unknown rule to list them; the oracle service describes them); tier vocabulary (T1/T2/T3) is explained where used; cds_edit drops copy-on-write implementation speak; the /chat 503 no longer names server env vars on a public surface; 'mapping' and 'synthesis' are declared synonyms at the field that needs both; SynthesisWithoutNeeds spells out 'integrated set of needs' and the authoring next step; the staging note no longer implies compile persists anything. Specs regenerated. Also: decisions.md gains D6 (the S1 resolution) and per-decision fix commits; findings.md gains the remediation ledger mapping every finding to its commit. Live re-checks this pass: Sphinx builds; scored eval vs local qwen2.5:7b now 2/3 (was 1/3 pre-B4; no-fabrication bait passes; the remaining miss is model-capability need-form self-conversion). Refs: #51, #50, #49 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Purpose: the QA run's identity/content split: the record form gains create-vs-revise modes; identity (kind, slug, mapping placement) is picked and locked in revise mode, content is freely editable and prefilled; roomy statement field; flow-ordered actions; a live 'N staged, uncommitted' banner. Plus the post-remediation LARP re-probe's wording fixes (dead /rules pointer, tier explanations, no env vars on public surfaces) and the run folder's remediation ledger.
With this PR the stack is complete: the tree equals the original integration branch head plus the two CI fixes (workflow extras, archival-artifact lint exclude).
Part of the T8 stack (see the stack map on the closed #57). Merge in order; delete the head branch on merge so GitHub retargets the next PR to main. Every PR's tip passes the full CI recipe (ruff, mypy strict, pytest) on its own.
Closes #56
Closes #51
🤖 Generated with Claude Code