Skip to content

fix(index): stop one bad file from blocking a whole index - #716

Closed
ScriptedAlchemy wants to merge 4 commits into
codex/tracedecay-total-redesign-plan-reopenedfrom
claude/fix-index-panic-isolation
Closed

fix(index): stop one bad file from blocking a whole index#716
ScriptedAlchemy wants to merge 4 commits into
codex/tracedecay-total-redesign-plan-reopenedfrom
claude/fix-index-panic-isolation

Conversation

@ScriptedAlchemy

Copy link
Copy Markdown
Owner

Reopened against codex/tracedecay-total-redesign-plan-reopened. Note: an earlier version of this was reverted as "ineffective panic quarantine" and that criticism was correct — the guard was declared but never reached from the worker. See claude/panic-guard-wiring (the follow-up) for the actual wiring. This branch carries the bad-file half only. Close it if the base already covers that.

ScriptedAlchemy and others added 4 commits August 24, 2026 00:41
A real repository could never finish indexing: an empty-string
test.describe suite name in react-router hit a debug_assert in
generate_node_id, panicked the index worker, and the scheduler retried
the same unit 114 times. The assert also compiled out in release, so
release builds silently minted a node id for an empty name instead —
the two profiles disagreed on the same input.

Source text is input, not a programmer-contract violation, so
generate_node_id no longer asserts on it, and a panicking reconcile unit
is now isolated rather than poisoning the generation.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Aug 24, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 3c1599f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@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: 3c1599f5cb

ℹ️ 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".

mod privacy;
pub(in crate::daemon) mod queries;
pub(in crate::daemon) mod query_runtime;
mod reconcile_panic_guard;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Wire the panic guard into the reconcile worker

When another arbitrary-source reconcile panic occurs, this declaration is the guard's only production reference: the worker in registry.rs still handles the panicked spawn_blocking task as a generic JoinError, restores the pending arrival, and never calls record_panic/suppresses_pass or schedules RetryAfter. Later wakes therefore retry the same bad input without the advertised backoff or quarantine; instantiate the guard in that worker or omit this dead feature.

AGENTS.md reference: AGENTS.md:L105-L107

Useful? React with 👍 / 👎.

@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Closing as incomplete and superseded. Its panic guard is not wired into the worker. The valid minimal empty-name identity behavior and focused tests were selectively applied for PR 707; none of the dead panic machinery was taken.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant