Stranded fixes: issues 411-413 and the Swift grammar upgrade

Merged
AF
5h ago
+2792-152

Accepted agent delivery; branch-keyed search descriptor included.


Summary by cubic

Lands the land/user-fixes branch, fixing three concurrency issues and upgrading the Swift grammar.

  • Callgraph refresh waits for a busy writer lease, wakes from sibling file hints on macOS, and recovers if the writer dies, the worker was stopped during shutdown, or the lease is malformed or unreadable, instead of replaying itself or hanging (issues #411 and #430).
  • aft_inspect reports a contended cache writer as waiting with a retry time instead of a failed input, and retries after 30 seconds (issue #412).
  • OpenCode and Pi idle drains no longer fire without a bridge or pending work, so idle sessions stay quiet; pending work still warns and replays once a bridge appears (issue #413).
  • The Swift grammar is upgraded to tree-sitter-swift 0.7.4, which correctly parses try/await conditions and cast-coalescing expressions like as? ... ??.
  • The status command exposes callgraph_refresh health, and release notes for v0.60.0 are updated.

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; no new actionable defects were found.

Summary

The PR makes call graph refreshes wait for busy writers, adds timed retries for inspect cache contention, quiets unused plugin sessions, and upgrades the Swift grammar.

  • Callgraph refreshes resume when the writer and store are ready.
  • aft_inspect retries cache-writer waits on a short timer.
  • OpenCode and Pi wait for a bridge before idle replay drains.
  • Swift parsing accepts newer try, await, and cast expressions.
  • Release notes and a benchmark descriptor record this branch's changes.

No new actionable issues were found. The full PR diff was reviewed because the previous review commit did not pass the ancestry and matching merge-base checks.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Refresh requested] --> B{Writer opens?}
  B -->|Yes| C[Apply changed paths]
  B -->|No| D[Park paths and retain query guard]
  D --> E[File event or timed check]
  E --> F{Writer available?}
  F -->|No| D
  F -->|Yes| A
  D --> G[Lifecycle ends or shutdown]
  G --> H[Keep paths pending and release guard]

Reviews (4) · Last reviewed commit: "mason: recover parked callgraph refreshe..." · Reviewed by Greptile