@jefuriiij/synthra 0.8.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,52 @@ For older versions, see [GitHub Releases](https://github.com/jefuriiij/synthra/r
7
7
 
8
8
  ---
9
9
 
10
+ ## [0.10.0] — 2026-06-20
11
+
12
+ ### Added
13
+
14
+ - **Terminal-bypass visibility (observe-only).** The Moat blocks `Grep`/`Glob`,
15
+ but the agent can still explore the codebase through the shell — `rg foo src/`,
16
+ `cat src/x.ts`, `find …` — and every such call is a read the graph could have
17
+ served in ~50 tokens. Synthra now watches `Bash` too: it classifies these
18
+ exploration commands and records each one — with whether the graph could have
19
+ answered it — to `bash_log.jsonl`, surfaced on the dashboard's Moat card as
20
+ "N terminal hunts · M the graph could answer." It is **observe-only — it never
21
+ blocks a Bash command** — so you can measure the leak before deciding whether
22
+ to close it. Conservative by design (it ignores `npm`/`git`/builds, stdin
23
+ filters like `… | grep`, and any command with a redirect). Disable with
24
+ `SYN_NO_BASH_OBSERVE`.
25
+
26
+ ---
27
+
28
+ ## [0.9.0] — 2026-06-20
29
+
30
+ ### Added
31
+
32
+ - **The graph auto-reindexes edited files mid-session — it never goes stale.**
33
+ Previously the in-memory graph was a snapshot from the last `syn .`: edit a
34
+ file and `graph_read` / `blast_radius` / the dependency footer would keep
35
+ serving the *old* signature, body, and line ranges until the next manual scan.
36
+ Now the running server watches for source changes and, ~1s after edits settle,
37
+ re-runs the incremental scan and hot-swaps the graph in place — so reads always
38
+ reflect what's on disk. The rescan is incremental (only the changed file hits
39
+ tree-sitter; everything else reuses the content-hash parse cache) and debounced
40
+ so a burst of saves coalesces into one rebuild. Tune with
41
+ `SYN_REINDEX_DEBOUNCE_MS` (default `1000`); disable with `SYN_NO_AUTOREINDEX`.
42
+
43
+ ### Fixed
44
+
45
+ - **In-session rescans (auto-reindex and branch-switch) no longer rewrite your
46
+ `CLAUDE.md` / `.gitignore`.** A rescan now skips the bootstrap step — it only
47
+ rebuilds the graph. This also closes a feedback loop the new auto-reindex would
48
+ otherwise hit (rewriting the watched `CLAUDE.md` on every rescan would retrigger
49
+ the watcher endlessly).
50
+ - **`CLAUDE.md` no longer accumulates a blank line on every `syn .`.** The policy
51
+ block patcher is now idempotent — re-running with nothing to change is a true
52
+ no-op instead of appending an empty line above the managed block each time.
53
+
54
+ ---
55
+
10
56
  ## [0.8.1] — 2026-06-16
11
57
 
12
58
  ### Changed