@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 +46 -0
- package/dist/cli/index.js +350 -75
- package/dist/cli/index.js.map +1 -1
- package/dist/dashboard/index.js +31 -7
- package/dist/dashboard/index.js.map +1 -1
- package/dist/server/index.js +314 -65
- package/dist/server/index.js.map +1 -1
- package/package.json +1 -1
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
|