@gkoreli/ghx 2.3.2 → 2.4.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.
Files changed (2) hide show
  1. package/README.md +17 -3
  2. package/package.json +7 -7
package/README.md CHANGED
@@ -67,6 +67,7 @@ you can `ls` and `jq`:
67
67
  traces.jsonl # OTel spans: session → turn → each tool call
68
68
  logs.jsonl # GenAI-convention message-content records
69
69
  metrics.jsonl # duration, token, report-size metrics
70
+ tier-decisions.jsonl # escalation policy evaluation per turn (which tier, why)
70
71
  ```
71
72
 
72
73
  Sessions persist, so follow-up questions on the same repo are cheaper and
@@ -188,9 +189,13 @@ ghx sidecar ask --repo hono/hono "How does Hono implement middleware chaining, a
188
189
  Without it: **discovery** — "which repos/libraries do X" — the sidecar sweeps
189
190
  GitHub for candidates and reads into the top ones before claiming anything
190
191
  (see [ADR-0019.1](docs/adr/0019.1-discovery-tier.md)).
191
- - `--session <name>` is optional (defaults to a repo slug like `hono-hono`, or a
192
- question-derived slug for discovery asks printed so you can resume it); use
193
- it to keep parallel investigation threads apart.
192
+ - `--session <name>` is advanced: pin a specific session; normally omit ghx
193
+ routes each question to the right session for you
194
+ ([ADR-0030.1](docs/adr/0030.1-session-routing.md)). With `--repo` the
195
+ repo-slug session (like `hono-hono`) still stands; with neither flag the
196
+ daemon runs a deterministic cascade (explicit → repo mention in the question
197
+ → warm continuation → ledger overlap → new session) and reports the route it
198
+ chose: `session: hono-hono (routed: overlap 0.62, next 0.21)`.
194
199
  - `--json` prints an envelope — `{"report": {...}, "artifacts": {"sessionDir":
195
200
  "...", "traceId": "..."}}` — the validated report plus a pointer to the
196
201
  session's audit trail. Without it you get the answer plus compact verified /
@@ -207,6 +212,7 @@ session automatically and answer faster. A fresh question takes tens of seconds.
207
212
  ghx sidecar sessions list # all sessions
208
213
  ghx sidecar sessions show <session> # details + report history
209
214
  ghx sidecar sessions ledger <session> # the accumulated evidence ledger
215
+ ghx sidecar sessions reroute <s> <turn> <dest> # move a mis-routed turn; both ledgers rebuilt by replay
210
216
  ghx sidecar view [session] # spawn a local trace UI over the session's artifacts
211
217
  ghx sidecar view --list # sessions with turn/report counts
212
218
  ghx sidecar view --port 9000 # viewer UI port (default 8000)
@@ -343,6 +349,14 @@ before any clone; answers fall back to remote Tier-1 evidence — never a
343
349
  silent or faked Tier-2 result. `astgrep` follows grep parity: exit `1` with
344
350
  `[]` means the search ran and found nothing.
345
351
 
352
+ When the sidecar answers a question, escalation is never vibes: every turn
353
+ gets a declarative policy evaluation
354
+ ([ADR-0024.2](docs/adr/0024.2-escalation-policy.md)) over named observables
355
+ (question shape, exhausted searches, low-confidence remote-only reports),
356
+ recorded as a `ghx.tier.decision` span in `traces.jsonl`, a line in the
357
+ session's `tier-decisions.jsonl`, and `tierUsed` provenance on the report —
358
+ so "which tier answered and why" is always recomputable from the artifacts.
359
+
346
360
  ### Codemode
347
361
 
348
362
  Write JS programs that compose multiple operations in one round-trip. All
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gkoreli/ghx",
3
- "version": "2.3.2",
3
+ "version": "2.4.0",
4
4
  "description": "Agent-first GitHub code exploration. GraphQL batching, code maps, codemode TypeScript sandbox, MCP server.",
5
5
  "bin": {
6
6
  "ghx": "npm/bin/ghx"
@@ -28,11 +28,11 @@
28
28
  "node": ">=16"
29
29
  },
30
30
  "optionalDependencies": {
31
- "@gkoreli/ghx-darwin-arm64": "2.3.2",
32
- "@gkoreli/ghx-darwin-x64": "2.3.2",
33
- "@gkoreli/ghx-linux-arm64": "2.3.2",
34
- "@gkoreli/ghx-linux-x64": "2.3.2",
35
- "@gkoreli/ghx-win32-arm64": "2.3.2",
36
- "@gkoreli/ghx-win32-x64": "2.3.2"
31
+ "@gkoreli/ghx-darwin-arm64": "2.4.0",
32
+ "@gkoreli/ghx-darwin-x64": "2.4.0",
33
+ "@gkoreli/ghx-linux-arm64": "2.4.0",
34
+ "@gkoreli/ghx-linux-x64": "2.4.0",
35
+ "@gkoreli/ghx-win32-arm64": "2.4.0",
36
+ "@gkoreli/ghx-win32-x64": "2.4.0"
37
37
  }
38
38
  }