fix: align compaction cuts and native usage accounting
This commit is contained in:
+5
-2
@@ -30,7 +30,6 @@ npm run desktop:dist # local signed/notarized macOS arm64 build (LH_NOTARY key
|
||||
npx tsx --env-file=.env.local scripts/import-notes.ts <dir> # bulk-import notes → graph
|
||||
npx tsx --env-file=.env.local scripts/backfill-graph.ts # wipe + re-extract every chat
|
||||
npx tsx --env-file=.env.local scripts/replay-layout.ts # re-derive layout from the ledgers
|
||||
npx tsx scripts/sync-pricing.ts # regenerate core/prices.ts tables
|
||||
```
|
||||
|
||||
For Windows/Linux packages and the three-OS CI/release flow, see [`desktop-release.md`](desktop-release.md). Native renderer binaries are traced per platform, so release builds run on the target OS, not as cross-builds from macOS.
|
||||
@@ -144,7 +143,7 @@ src/
|
||||
electron/ desktop launcher + security guard (spawns the standalone
|
||||
server; 1 IPC channel; LH_DATA_DIR + BYOK env)
|
||||
scripts/ build-server.mjs (packaging guards), import-notes,
|
||||
backfill-graph, replay-layout, sync-pricing
|
||||
backfill-graph, replay-layout
|
||||
data/ chats/ · graph/ (nodes/chains/sessions/coverage
|
||||
ledgers + positions/sources/render-settings maps) ·
|
||||
jobs/ · settings.json — runtime state, git-ignored
|
||||
@@ -152,6 +151,10 @@ data/ chats/ · graph/ (nodes/chains/sessions/coverage
|
||||
|
||||
## Key mechanisms
|
||||
|
||||
See [compaction and accounting](compaction-accounting.md) for the local Pi cutoff port,
|
||||
measurement-only context meter, and server-side current-catalog pricing. There is no
|
||||
pricing-generation step: Pi AI's catalog and public calculator are the authority.
|
||||
|
||||
**Client-side question tools.** `quiz` and `ask_user_question` have no server `execute`: the tool call streams to the browser, the learner answers in the dock, the client grades via `question-core` and returns the verdict with `addToolOutput` — which fires the SDK continuation so the teacher resumes mid-turn. Options are shuffled deterministically (seeded by toolCallId) so server and client renders match. A pending quiz persisted in the chat record is exactly what makes **resume mid-question free**.
|
||||
|
||||
**The formal plan tree (author-once).** The teacher authors the session's dependency tree with one schema-validated tool — `plan_init`, whose mermaid-subset input is parsed deterministically (line-numbered errors) and validated as a DAG. The tree persists in the chat record; progress is never mutated — `current`/`visited`/upcoming are **derived** from tagged quiz calls in the transcript, and the panel renders that derivation.
|
||||
|
||||
Reference in New Issue
Block a user