Skip to content

fix(console): simplify broken-link resolution - #129

Merged
siracusa5 merged 3 commits into
mainfrom
codex/smart-conflict-resolution
Aug 11, 2026
Merged

fix(console): simplify broken-link resolution#129
siracusa5 merged 3 commits into
mainfrom
codex/smart-conflict-resolution

Conversation

@siracusa5

Copy link
Copy Markdown
Collaborator

Summary

Makes broken-link discrepancies understandable and safely actionable without forcing users through impossible answer-selection controls. The default path is now a candid one-click acknowledgement, while direct repair, evidence, alternate reasons, and priority remain available when needed.

Changes

  • replace broken-link winner/compose controls with a recommended target_missing acknowledgement and direct source-concept repair path
  • preserve expert control through disclosed evidence, metadata, alternate reasons, notes, and priority
  • add durable success receipts, retry-safe failures, focus restoration, active-tab semantics, and accessible structured-diff labels
  • align the Cascade quick resolver with the same one-click broken-link action
  • update the playground guide and discrepancy API documentation
  • add regression coverage for the full resolver and Cascade flow

Test Plan

  • npm test
  • npm --prefix apps/console test — 429 tests
  • npm --prefix apps/console run typecheck
  • npm --prefix apps/console run build
  • npm --prefix apps/site run build — 39 pages
  • Desktop and 390px browser walkthrough; zero final console warnings/errors
  • CI checks pass

Notes

  • Acknowledgement changes no source files and moves the item to Acknowledged.
  • Exact-file deep links and audited undo would require future engine/data-model support; this PR keeps the existing two-click source-concept repair path.

@siracusa5 siracusa5 added the bug Something isn't working label Aug 11, 2026
Signed-off-by: John Siracusa <siracusa5@users.noreply.github.com>
Signed-off-by: John Siracusa <siracusa5@users.noreply.github.com>
Signed-off-by: John Siracusa <siracusa5@users.noreply.github.com>
@siracusa5
siracusa5 force-pushed the codex/smart-conflict-resolution branch from 27c2234 to 8ed8e9a Compare August 11, 2026 20:45
@siracusa5
siracusa5 merged commit 8142c5f into main Aug 11, 2026
9 checks passed
@siracusa5
siracusa5 deleted the codex/smart-conflict-resolution branch August 11, 2026 20:48
siracusa5 added a commit that referenced this pull request Aug 11, 2026
main moved ahead by four PRs while this branch was open. Three of them
interacted with it directly:

#131 added packages/core/tests/sidecar-state.test.mjs to the test chain. The
only conflict was package.json's "test" script — this branch replaced the
chain with scripts/test.mjs, so a mechanical "keep ours" would have silently
dropped that suite from the gate. It is registered now, and the runner grew
assertEverySuiteRegistered(): on a full run it walks packages/core/tests and
scripts/tests and refuses to start if a test file exists that no suite names.
The old chain had the same failure mode and no way to notice it.

#132 removed two stray NUL bytes from service.mjs and main.mjs — the actual
cause of the grep blindness this branch had documented in CONTRIBUTING as a
locale problem. That diagnosis was wrong: a NUL byte makes grep treat a file
as binary regardless of LANG, and both files now grep cleanly with LANG
unset. The section is corrected to name the real cause, and scripts/test.mjs
gained assertNoNulBytes() so a reintroduced NUL fails the gate instead of
quietly hiding a file from every search. #132 fixed the instances; nothing
stopped the next one.

#130/#129 touched console and desktop only and merged clean.

Also aligns packages/core/package.json's node floor with the root's new >=22.

Verified after the merge: npm test 33/33; console typecheck + 453 tests;
desktop 106 tests.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: John Siracusa <siracusa5@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant