Skip to content

Detect encoded placeholder anchors and unblock Chat continuation - #2845

Merged
Chris0Jeky merged 5 commits into
mainfrom
issue-1949/guard-parser-precision
Sep 9, 2026
Merged

Detect encoded placeholder anchors and unblock Chat continuation#2845
Chris0Jeky merged 5 commits into
mainfrom
issue-1949/guard-parser-precision

Conversation

@Chris0Jeky

@Chris0Jeky Chris0Jeky commented Sep 9, 2026

Copy link
Copy Markdown
Owner

This PR detects entity-encoded placeholder links and includes the separately reviewed Chat repair from #2847 that resolves the browser failure encountered during qualification. Merge commits preserve both source histories.

A handler-free href="javascript:void(0)" previously escaped the static guard. Static href values now use Vue's existing parser for one decoding pass; real destinations, handler exemptions and double-encoded text remain covered by preservation tests.

The SC-005b browser failure exposed an existing Chat delay: after a successful send, a503 reconciliation GET kept continuation disabled through retries. Post-send reconciliation now fails fast through the existing skipRetry option; explicit session selection still retries, sent text stays retained, refresh errors remain visible, and continuation remains explicit.

Refs #1949 and #2004. Neither parent is complete. Two MEDIUM guard-precision follow-ups remain tracked at #1949 (comment).

Current composition:

  • Head3c7513dbfaf1cce8c1baf978be777f1041ddfc56 includes current main6dec7dba9a69230cdb19c5c669f12a5cdcc64317.
  • Six files48 additions8 deletions over main: the original one-file guard plus the five-file Chat repair. No new implementation edits during integration.
  • Guard and Chat source files retain their independently reviewed content. Independent Terra new-base composition review: SHIP, no new HIGH/CRITICAL issue. Reviewer verified exact source blobs and preserved main; no tests run by reviewer.

Source validation (before this combined head):

  • Guard baseline1fail26pass; final27pass; typecheck/build/lint; fullfrontend6255pass3skip.
  • Chat baseline1fail37pass; focused66pass; typecheck/build/lint; fullfrontend6268pass3skip; existingSC005browser2pass29.1s with syntheticMock, no timeout increase.
  • Both source reviews SHIP. Guard Codex findings triaged once and tracked above.
  • The combined current-head required CI34399389111 is in progress and still owed. Superseded run34394886556 failedSC005b; it is not a green qualification.
  • No full local suite was rerun on this server-created composition; fresh hosted CI must exercise it.

Source evidence: .claude/local/milestone-20260909/preserved-1949-entity andpreserved-2004-failfast. No owned worktrees or runtimes remain. OUTSTANDING_TASKS.md unchanged; canonical docs remain with the other coordinator. #2840 is a separate control integration still awaiting maintainer approval.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Independent fresh-context Terra review: SHIP. No causal HIGH/CRITICAL blocker or lower-severity finding in the final one-file diff. The reviewer checked static once-only entity decoding, raw bound expressions, and preservation fixtures; tests were run by the writer.

Final source head35c18f71f003553c51f73d4e780ca9e0fec9cff0. Full frontend6255pass3skip, focused27pass, typecheck/build/scopedESLint/diff hygiene pass. The worktree was removed with plain git worktree remove after nine evidence files were copied and SHA256 verified at .claude/local/milestone-20260909/preserved-1949-entity/.tmp. Generated snapshot content matched the HEAD blob after Git normalization; only index metadata was refreshed. Primary unrelated changes preserved.

Required hosted CI remains pending; this is not a merge or parent-issue completion claim.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 35c18f71f0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread frontend/taskdeck-web/src/tests/guards/deadAnchors.spec.ts
Comment thread frontend/taskdeck-web/src/tests/guards/deadAnchors.spec.ts
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 9, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-09T20:14:33.388944Z 3c7513d New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

New-base composition review at f9c758f: independent Terra SHIP, no direct HIGH/CRITICAL interaction. The guard file is byte-identical to reviewed35c18f, and the delta against current main d01e04d is only that one guard file. Review inspected the new SFCs but ran no tests; fresh required34394886556 remains the qualification gate. Existing two MEDIUM parser follow-ups remain tracked, not silently fixed or dropped.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Hosted failure evidence from PR #2845 required run34394886556 at f9c758f: E2E SC-005b (validation-chat-bootstrap.spec.ts:210) timed out waiting for Continue retained instruction after Link board.194 browser tests passed,1 failed,12 skipped. Chat runtime/test files are byte-identical to main112478; #2845 only edits the static anchor guard. No rerun or flaky classification.

Trace: one message POST200 at19:51:54.622, post-send detailGET503 at54.674, successful bindPOST200 at54.723; failed detail retries at55.737,57.784,19:52:02.661. Failure19:52:03.652 still showed Sending/Continuing disabled. A second independent GET retry chain also appears. There was no unintended message resend.

Bounded source diagnosis: useAutomationChat.ts364-388 keeps sendingMessage true across refreshSelectedSession; getSession uses normal503 retries with jittered1s/2s/4s backoff. ChatMessageList disables continuation while that flag is true. Bind does not invalidate send finally; no generation-skipped cleanup was found. Thus successful send reconciliation delays a now-valid continuation through a retry window close to the8s assertion boundary.

Next smallest repair: fail fast only for the post-send reconciliation GET (existing skipRetry config), preserving normal retries for explicit selection, local retained message state, visible refresh failure and exactly-one explicit continuation. Prove a failed reconciliation releases busy state and continuation sends once. Do not raise test timeouts or weaken the gate as a substitute.

Raw log and synthetic trace preserved locally under .claude/local/milestone-20260909/2845-failed.log and2845-browser-failure/. Source diagnosis reviewed independently by Terra; proposed fix has NOT been implemented or tested.

@Chris0Jeky Chris0Jeky changed the title Detect entity-encoded placeholder anchors Detect encoded placeholder anchors and unblock Chat continuation Sep 9, 2026
@Chris0Jeky

Copy link
Copy Markdown
Owner Author

The repair is now included in #2845 for combined qualification at3c7513dbfaf1cce8c1baf978be777f1041ddfc56 against main6dec7dba9. This source PR's refreshed head is a5a3233. Independent Terra composition review confirms every source file is byte-identical to the reviewed implementation, with no new HIGH/CRITICAL interaction. Combined required34399389111 is in progress; no source merge or delivery is claimed. Local test counts in this source body predate the latest base refresh.

@Chris0Jeky
Chris0Jeky merged commit b6cb08c into main Sep 9, 2026
38 of 39 checks passed
@Chris0Jeky
Chris0Jeky deleted the issue-1949/guard-parser-precision branch September 9, 2026 20:44
@github-project-automation github-project-automation Bot moved this from Review to Done in Taskdeck Execution Sep 9, 2026
@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Delivery verified: merged as b6cb08c. Exact-head required CI 34399389111 passed; hosted E2E job 102634067470 reports 196 passed, 12 skipped (6.9m), including SC005b. Source #2847 was automatically marked merged. Both project entries are Done. Broader #1949/#2004 acceptance remains open; tracked MEDIUM guard residuals are unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant