Skip to content

Commit d52e12d

Browse files
committed
chore(ci): update workflow SHA references to latest
1 parent aac08b2 commit d52e12d

File tree

8 files changed

+1357
-932
lines changed

8 files changed

+1357
-932
lines changed

.claude/commands/quality-loop.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,31 @@ Run the quality-scan skill and fix all issues found. Repeat until zero issues re
1616
- Do not skip architectural fixes
1717
- Run tests after fixes to verify nothing broke
1818
- Track iteration count and report progress
19+
20+
## Outstanding Architectural Issue (Requires Design Review)
21+
22+
### Checkpoint Cache Invalidation (High Severity)
23+
24+
**Issue**: Source package changes don't invalidate checkpoints properly.
25+
26+
**Root Cause**: Cache keys are computed AFTER `prepareExternalSources()` syncs source packages to additions/. Since cache keys hash files in additions/ (which are now synced), they match the checkpoint even though source packages changed.
27+
28+
**Scenario**:
29+
1. Developer modifies `packages/binject/src/socketsecurity/binject/file.c`
30+
2. Runs `pnpm --filter node-smol-builder clean && pnpm build`
31+
3. `prepareExternalSources()` syncs binject → additions/source-patched/src/socketsecurity/binject/
32+
4. Cache key computed from additions/ files matches old checkpoint
33+
5. Build restores stale checkpoint, skips recompilation
34+
6. **Result**: Binary contains old binject code
35+
36+
**Impact**: Silent build incorrectness when modifying source packages
37+
38+
**Proposed Solutions** (require architectural review):
39+
- Option 1: Include source package mtimes in cache key metadata
40+
- Option 2: Make `prepareExternalSources()` idempotent, always re-sync
41+
42+
**Files Affected**:
43+
- packages/node-smol-builder/scripts/common/shared/build.mjs (collectBuildSourceFiles)
44+
- packages/node-smol-builder/scripts/common/shared/checkpoints.mjs (cache key generation)
45+
46+
**Status**: Documented for architectural review and future implementation

0 commit comments

Comments
 (0)