@jefuriiij/synthra 0.1.22 → 0.1.24
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 +76 -0
- package/dist/cli/index.js +312 -87
- package/dist/cli/index.js.map +1 -1
- package/dist/dashboard/index.js +61 -8
- package/dist/dashboard/index.js.map +1 -1
- package/dist/server/index.js +57 -15
- package/dist/server/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,82 @@ For older versions, see [GitHub Releases](https://github.com/jefuriiij/synthra/r
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [0.1.24] — 2026-06-06
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`syn doctor [path]` — setup and environment health check (issue #9).** New
|
|
15
|
+
read-only CLI subcommand that runs a one-shot checklist and exits. Checks: Node
|
|
16
|
+
version, `jq` availability (bash Stop/Prime hooks silently no-op without it),
|
|
17
|
+
`claude` CLI on PATH, graph freshness (symbol count, schema version, scan age),
|
|
18
|
+
`.mcp.json` project-scope registration (required for Synthra tools to appear in
|
|
19
|
+
the Claude Code IDE), CLAUDE.md policy-block version, and hook installation
|
|
20
|
+
status. Warnings surface with the exact `syn .` command needed to resolve them.
|
|
21
|
+
The command mutates nothing — safe to run at any time.
|
|
22
|
+
|
|
23
|
+
- **Graph-tool usage metric on the dashboard (issue #2).** The MCP server now
|
|
24
|
+
appends a record to `.synthra-graph/tool_log.jsonl` on every Synthra tool call
|
|
25
|
+
(`graph_continue`, `graph_read`, `graph_register_edit`, etc.). `delta.ts`
|
|
26
|
+
aggregates per-tool call counts into `ProjectStats.tool_calls` (per-project) and
|
|
27
|
+
`global.tool_calls` (cross-project totals). The dashboard shows a new "Graph
|
|
28
|
+
tools used" card in the right column with per-tool counts. This is a positive
|
|
29
|
+
signal complementing the Moat's blocked-Grep count: it captures Synthra pivots
|
|
30
|
+
that happen before a Grep fires, which the block counter misses entirely.
|
|
31
|
+
|
|
32
|
+
- **Session-aware routing — `graph_continue` seeds retrieval with the session's
|
|
33
|
+
touched files (issue #14).** Files the human recently saved (last 15 min) and
|
|
34
|
+
files the AI registered via `graph_register_edit` now get a ranking boost in
|
|
35
|
+
`graph_continue` results, so the returned context tracks what you're actually
|
|
36
|
+
working on. Mirrors the `/pack` route, which already seeded retrieval this way.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## [0.1.23] — 2026-06-06
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
|
|
44
|
+
- **Dashboard token-log dedupe can now be disabled via `SYN_DASHBOARD_DEDUPE=0`.**
|
|
45
|
+
By default, `delta.ts` deduplicates `token_log.jsonl` entries that share the
|
|
46
|
+
same project, usage totals, and second-rounded timestamp — collapsing the
|
|
47
|
+
duplicate writes that a co-installed AI tool's Stop hook may produce. Set
|
|
48
|
+
`SYN_DASHBOARD_DEDUPE=0` (also accepts `off` or `false`) to see every raw
|
|
49
|
+
entry. Useful when debugging multi-tool coexistence or auditing raw log data.
|
|
50
|
+
|
|
51
|
+
- **Graph schema-migration check on load.** A new `SCHEMA_VERSION` constant is
|
|
52
|
+
exported from `src/graph/types.ts` and stamped into `info_graph.json` by
|
|
53
|
+
`buildGraph`. On server start, `http.ts` compares the stored graph's
|
|
54
|
+
`schema_version` to the current constant; if they differ it triggers an
|
|
55
|
+
automatic one-time rescan instead of serving an incompatible graph. No
|
|
56
|
+
behavior change today — all graphs are v1 and schema_version matches — but
|
|
57
|
+
this is the forward-safety mechanism for future schema bumps so existing
|
|
58
|
+
graphs are never silently misread.
|
|
59
|
+
|
|
60
|
+
### Fixed
|
|
61
|
+
|
|
62
|
+
- **JS/TS parser now captures member-assigned functions** (`exports.handler = fn`,
|
|
63
|
+
`module.exports.route = () => {}`, `this.x = () => {}`). Previously these
|
|
64
|
+
CommonJS/member-export patterns were invisible to the query, so modules that
|
|
65
|
+
exclusively use this style extracted zero symbols and degraded to whole-file
|
|
66
|
+
reads via `graph_read`. A member-assignment capture has been added to both
|
|
67
|
+
`JS_QUERY` and `TS_QUERY` in `src/scanner/parsers/typescript.ts`. Note: a
|
|
68
|
+
pure-wiring `server.js` whose only structure is anonymous inline-callback
|
|
69
|
+
arguments (e.g. `io.use(...)` / `socket.on(event, fn)`) is genuinely
|
|
70
|
+
symbol-less — that is correct, and the gate's symbol-hit guard already
|
|
71
|
+
prevents blocking such files.
|
|
72
|
+
|
|
73
|
+
### Changed
|
|
74
|
+
|
|
75
|
+
- **Policy block v4 → v5.** Adds a "large file — pull the symbol, don't
|
|
76
|
+
chunk" nudge to address recurring dogfood friction: on large files Claude
|
|
77
|
+
was reading successive line-range chunks instead of fetching the specific
|
|
78
|
+
symbol via `graph_read("file::symbol")`. The v5 block now explicitly
|
|
79
|
+
instructs: when a file is large, use `graph_read("file/path.ts::SymbolName")`
|
|
80
|
+
to pull the symbol directly rather than reading successive line-range chunks.
|
|
81
|
+
`POLICY_VERSION` bumped `4 → 5`; existing v4 blocks auto-upgrade on the
|
|
82
|
+
next `syn .` run.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
10
86
|
## [0.1.22] — 2026-06-06
|
|
11
87
|
|
|
12
88
|
### Fixed
|