Skip to content

Rebuild the warm lint registry after an update that threw - #58

Merged
oblomov-dev merged 1 commit into
mainfrom
claude/beautiful-turing-wxr303
Oct 11, 2026
Merged

oblomov-dev merged 1 commit into
mainfrom
claude/beautiful-turing-wxr303

Conversation

@oblomov-dev

Copy link
Copy Markdown
Member

The warm lint worker (lib/lint-worker.mjs) applies the sandbox's changes to its @abaplint/core registry file by file and records the new sandbox only when all of them went through. When one threw (an addFile refusing a duplicate, a removeFile of 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 later deploy_app / verify_app lint - 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's addFile throws on THROW; 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 check green (568 tests).

🤖 Generated with Claude Code

https://claude.ai/code/session_01Te3BRpRpxNhZAYnrQL6Gdt


Generated by Claude Code

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
@oblomov-dev
oblomov-dev merged commit d8c38ff into main Oct 11, 2026
3 checks passed
@oblomov-dev
oblomov-dev deleted the claude/beautiful-turing-wxr303 branch October 11, 2026 22:22
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.

2 participants