Repository navigation
Rebuild the warm lint registry after an update that threw - #58
Merged
Merged
Conversation
The lint worker applies the sandbox's changes to its registry file by file and records the new sandbox only when all of them went through. When one threw, the earlier ones stayed in the registry while the record did not move: a file changed back to what the record held compared equal and was never updated again, so its old findings answered every later lint. A failed update now drops the registry and the record, and the next lint parses afresh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Te3BRpRpxNhZAYnrQL6Gdt
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.
The warm lint worker (
lib/lint-worker.mjs) applies the sandbox's changes to its@abaplint/coreregistry file by file and records the new sandbox only when all of them went through. When one threw (anaddFilerefusing a duplicate, aremoveFileof an object the registry no longer has), the earlier changes stayed in the registry while the record did not move: a file changed back to what the record held compared equal and was never updated again, so its old findings answered every laterdeploy_app/verify_applint - silently, on the warm path. That call itself fell back to the CLI, so only the following lints were wrong.A failed update now drops the registry and the record (the next lint parses afresh, the failed one still runs the CLI).
test/lint-worker.test.mjs: the fake core'saddFilethrows onTHROW; a new test updates one file, has the next add throw, changes the file back and checks no stale finding is reported (fails without the fix).CHANGELOG.md: a line in the untagged 1.0.0 section, next to round 4's fixes.This was the round-4 "lint-worker drift on throw" item. A security review of the tool inputs (read_example/read_app/deploy_app/remove_app path gates, the mirror's
safeRelPath, the symbolic-link containment, spawned commands, the MCP app view's HTML escaping) found nothing else to change.Local:
npm run checkgreen (568 tests).🤖 Generated with Claude Code
https://claude.ai/code/session_01Te3BRpRpxNhZAYnrQL6Gdt
Generated by Claude Code