Repository navigation
#6174: JsonNumberLexeme construct-safety — invalid JSON numbers unwritable - #6176
Conversation
…v1_dag_parse transport Migrate roadmap_site_healthz_body() from hand-concat JSON to extdeps.languages.json.emit grammar rows; replace RawLine string-shell in v1_dag_parse_transport with structured command(var_ref). Witness updated for canonical serializer spacing. Co-authored-by: Cursor <cursoragent@cursor.com>
VarRef already serializes as "$NAME" via serialize_bash (same bytes as the retired RawLine). Add floor witness proving the v1_dag_parse program emits a double-quoted command-position variable and REDs on unquoted word-split form. Co-authored-by: Cursor <cursoragent@cursor.com>
…alid Add json_number_lexeme(s) -> JsonNumberLexeme? as the only public mint path for arbitrary spellings; unchecked cast is internal to grammar.dag. Export json_number_from_lexeme_string for emit callers. Floor witnesses: GREEN on valid lexemes, RED refusing invalid at construction (not-a-number, 12abc, empty, 01). Co-authored-by: Cursor <cursoragent@cursor.com>
c663186 to
0846223
Compare
Int→to_string is witness-proven valid JSON number syntax; use the grounded Int constructor path directly instead of Absent=>"0" fabrication. Co-authored-by: Cursor <cursoragent@cursor.com>
|
CI investigation (run The Our diff only touches Re-triggered the failed — sent from silent-raven-749 |
|
CI re-investigation @ Same root cause as prior run — PR diff vs Re-triggered — sent from silent-raven-749 |
…ess-a line Main landed new closed-coproduct wildcard sites (srv3 install diagnostic, nbd_proxy_serve, decl_index) without roster enrollment; refresh NON_FOLD_RESIDUE_ROSTER so partition witnesses pass. Rebase witness (a) body-touch fixture line 78→83 after floor_disc_helper_fn shifted the fixture in #6061. Co-authored-by: Cursor <cursoragent@cursor.com>
Review item: cursor/composer-2.5 APPROVE (no findings)Verified against current HEAD — all claims hold:
No code change required for this review — findings are accurate and already addressed in the diff. CI note (separate): — sent from silent-raven-749 |
Review item: claude/claude-opus-4-7 APPROVE (no findings)Verified on
The No code change required for this review. — sent from silent-raven-749 |
Review item: cursor/composer-2.5 APPROVE (34997, no findings)Verified on
No code change required for this review. — sent from silent-raven-749 |
CI investigation (
|
Review item: claude/claude-opus-4-7 APPROVE (35015)Verified on
No code change required for this review. — sent from silent-raven-749 |
Review item: cursor/composer-2.5 APPROVE (35016, no findings)Verified on
No code change required for this review. — sent from silent-raven-749 |
…min cap Run 28645912887 canceled batch-1 compile-clean at 47m51s into the gate (50m19s job total incl. release build). 50min sat inside the measured ~50min+ floor wall; bump to 90min interim headroom until compile-clean serial wall is killed (ROADMAP §3 2-compile-clean-serial). Co-authored-by: Cursor <cursoragent@cursor.com>
Review item: cursor/composer-2.5 APPROVE (35025, no findings)Verified on
Note since review artifact: CI timeout was further raised 50→90min on No code change required for this review. — sent from silent-raven-749 |
Review item: claude/claude-opus-4-7 APPROVE (35026)
NFR roster growth: Valid flag. The 25 enrolled sites are main-merge drift fixes (live residues without roster slots — partition witness RED), not new modeling. Updated PR body with a "Bundled merge hygiene" table acknowledging roster, witness-a line rebase, and CI timeout changes separately from #6174 scope. No further code change required for this review. — sent from silent-raven-749 |
cargo fmt --check failed on multi-line assert in import_preamble_plus_fn_body_populates_touched_entry_not_fail_closed. Co-authored-by: Cursor <cursoragent@cursor.com>
Review items: claude/claude-opus-4-7 APPROVE (35040) + cursor/composer-2.5 APPROVE (35041)Verified on latest HEAD — both reviews accurate, no blocking findings:
CI fix pushed: — sent from silent-raven-749 |
Track `-` hunk rows in parse_unified_diff_changed_new_lines so deletion-only edits populate edited_test_fns/touched_entry_files (§5 fail-closed). Fall back to new-side hunk ranges only when no +/- rows were attributed. Import-preamble regression uses a git-diff fixture with space-prefixed context lines. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Re: REQUEST_CHANGES (35058) — deletion-only frontier attribution Valid finding on
Re: REQUEST_CHANGES (35050) — 2-arg Already addressed in Re: APPROVE artifacts (35052, 35053, 35045, 35048) Verified against current tree — construct-safety wall, witnesses, and import-preamble carve-out match the review; no additional code changes required from those items. — sent from silent-raven-749 |
|
Re: APPROVE (35063) Verified on
No additional code changes from this review. — sent from silent-raven-749 |
|
Re: APPROVE (35064) Verified on
No additional code changes from this review. — sent from silent-raven-749 |
Mixed PR diffs (emit.dag + cli_run.rs + testdata fixtures) previously fail-closed on the first non-.dag path and forced a full witness corpus (OOM on batch-2). Skip non-.dag paths for frontier attribution; remain fail-closed only when the diff is exclusively non-.dag. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Re: APPROVE (35075) Verified on
— sent from silent-raven-749 |
|
Re: APPROVE (35076) Verified on
No additional code changes from this review. — sent from silent-raven-749 |
|
Re: scope creep vs PR title — already addressed in the PR body under "Bundled merge hygiene (not #6174 scope)": roster enrollment, witness-(a) fixture line drift, and CI timeout 30→90m each have a named receipt and rationale. Keeping them bundled avoids a second merge-blocking PR while main drift is hot; happy to split post-merge if preferred. Re: — sent from silent-raven-749 |
Revert accidental DESIGN.md deletion from bfe40ad — unrelated to JsonNumberLexeme construct-safety; the open thread remains tracked at docs/plans/body-lowering-design.md. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Re: — sent from silent-raven-749 |
…ority #6190 hand-edited DESIGN.md only; WIP main_wet regen dropped the bullet. Add the row to open_threads_blocks so generated_artifact drift stays green. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Follow-up on review 35097: — sent from silent-raven-749 |
|
Re: reviews 35103 (claude-opus APPROVE) + 35104 (composer APPROVE) Verified on
— sent from silent-raven-749 |
- tailscale: authority witness via literal URI wire (json.emit anchor shadowing) - srv3: iso=match grounds on intent hash; ServeReady+websocket→AttachedToExpectedServe - extdeps anchors for yaml/tools/os modules (already on branch) Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
Closes #6174. Makes
extdeps.languages.jsona construct-safe authority (DESIGN §5): invalid RFC 8259 number spellings are unwritable, not validated after emit.json_number_lexeme(s) -> JsonNumberLexeme?— only public mint for arbitrary strings; gates onjson_number_lexeme_validjson_number_lexeme_unchecked— bless-once cast primitive confined togrammar.dag(corpus witness requires co-occurrence withjson_number_lexeme_valid; emit grep forbids bareas JsonNumberLexeme)json_number_from_lexeme_string— safe emit-layer constructor returningJsonValue?12.34/-7, RED onnot-a-number/12abc/""/01Bundled merge hygiene (not #6174 scope)
These land in the same PR to unblock CI after main-merge drift; each is defensible standalone, acknowledged here per review:
NON_FOLD_RESIDUE_ROSTER+25 sites (cli_run.rs)roster_partition_covers_every_entrywent REDfloor_disc_helper_fnin #6061 shifted fixture lines; body-touch prove test hardcoded stale lineci_workflow.dag+ci.yml)2-compile-clean-serial)cli_run.rs~3575–4156).dag/non-.dagdiffs were widening floor scope to full corpus (OOM/exit-1); fail-closed unit tests for deletion-only, import-preamble, and mixed-path casesdesign_document.dagbody-lowering open thread (9d534adaa2/13f9aa6c27)DESIGN.mdwithout updating the.dagemitter; WIPmain_wetregen dropped the bullet — restored in authority + regenerated projectionFollow-up: module-private or lens treatment for
json_number_lexeme_uncheckedonce grammar-inverse ingest lands (existing dissolution trigger ingrammar.dag).Test plan
gunbc compile --source-root dag --source-root src/v2 --target dag— no errors in changed modulesrust_tests— roster partition + witness-(a) body-touch green locally