Implement issues #33, #50, #54, #59, #61#64
Merged
greynewell merged 1 commit intomainfrom Apr 8, 2026
Merged
Conversation
## #50 — Incremental updates (P0 + polish) - daemon: swap AnalyzeIncremental → AnalyzeSidecars (broken changedFiles field was causing UUID churn on every single-file update) - daemon: preserve domains on incremental merge (only full generate refreshes domains); add comment explaining why - api/client: delete dead AnalyzeIncremental + postIncrementalZip methods - analyze: use AnalyzeSidecars + GraphFromSidecarIR; write sidecar cache so files.Generate() reuses the result without a second upload - setup/wizard: hook command uses os.Executable() for absolute binary path - daemon: clean sidecar files on Ctrl+C shutdown - files/zip: eliminate global map mutation — per-call zipExclusions struct removes concurrent-write race on package-level maps - files/hook: warn to stderr when daemon is not running - daemon: assign new files to existing domains by directory-prefix matching ## #33 — Caching - cache/fingerprint: AnalysisKey now takes a version param — cache invalidates automatically on CLI upgrade - cache: add PutJSON/GetJSON for generic result types - deadcode: check cache before upload; store result after API call - blastradius: same; skip cache when --diff is supplied ## #59 — Language bar chart before upload - files/zip: add LanguageStats() + PrintLanguageBarChart() - daemon.fullGenerate + files.Generate: print bar chart before API upload ## #54 — Document .graph files for other agents - setup/wizard: rename step "Claude Code hook" → "Agent hook"; mention Cursor/Copilot/Windsurf/Aider; add detectCursor() helper that prints a note when Cursor is installed ## #61 — Watch for new commits - files/watcher: track lastCommitSHA; on HEAD change emit diff files as WatchEvents (handles git commit, pull, checkout, merge, stash pop) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This was referenced Apr 8, 2026
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.
Summary
AnalyzeIncremental→AnalyzeSidecars; the brokenchangedFilesfield was causing UUID churn on every single-file updatePutJSON/GetJSONto cache packageLanguageStats+PrintLanguageBarChartin zip.go)lastCommitSHA; on HEAD change emits diff files asWatchEvents (handlesgit commit,pull,checkout,merge,stash pop)Rebased cleanly on top of #63 (the double-API-call fix); conflict in
daemon.gowas a trivial idempotency key format difference.Test plan
go build ./...— cleango test ./...— all pass (auth failures are pre-existing, unrelated to this PR)supermodel watch→ edit a file → incremental fires, domains preservedsupermodel analyzetwice → second run hits cache with no uploadsupermodel dead-codetwice → second run hits cachegit commitwhilesupermodel watch --fs-watchrunning → watcher emits committed filessupermodel setup→ absolute path written to.claude/settings.json; Cursor note shown if installedCloses #33, #50, #54, #59, #61
🤖 Generated with Claude Code