Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plugins/genie/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ H4 and H6 definitions carry the literal SHA-256 of `scripts/dispatch-runtime.cjs

| ID | Event | Exact behavior | Allowed side effect |
|----|-------|----------------|---------------------|
| H3 | `SessionStart` | Reads `.genie/genie.db` read-only via `node:sqlite` (**minimum Node 22.13** — declared here because all three manifests run the hook as `node …/session-context.cjs`, where `bun:sqlite` does not exist) and resolves the session branch through the shared `resolveWishBranch`: a `wish/<slug>` branch injects exactly that wish's status, base/ready task counts, its task cards, and the plan path; otherwise the session agent's claimed tasks (`GENIE_AGENT_ID`, name fallback); otherwise one compact `repo, branch, active wishes` line — never a listing. An absent/unreadable genie.db, an unsupported .git layout, or a Node without `node:sqlite` degrades to a bounded wish-file scan (≤64 candidates/256 KiB), each cause logged distinguishably on stderr | Read-only filesystem + SQLite access, ≤2 KiB out |
| H3 | `SessionStart` | Reads `.genie/genie.db` read-only via `node:sqlite` (**minimum Node 22.13** — declared here because all three manifests run the hook as `node …/session-context.cjs`, where `bun:sqlite` does not exist) and resolves the session branch through the shared `resolveWishBranch`: a `wish/<slug>` branch injects exactly that wish's status, base/ready task counts, its task cards, and the plan path; otherwise the session agent's claimed tasks (`GENIE_AGENT_ID`, name fallback); otherwise one compact `repo, branch, active wishes` line — never a listing. An absent/unreadable genie.db, an unsupported .git layout, a Node without `node:sqlite`, an Orca lifecycle authority (`orchestration.mode: "orca"` — the local database is never opened), or an unreadable/invalid orchestration config (fails closed the same way) degrades to a bounded wish-file scan (≤64 candidates/256 KiB), each cause logged distinguishably on stderr | Read-only filesystem + SQLite access, ≤2 KiB out |
| H4 | `PreToolUse` | Verifies the definition-bound launcher, then runs branch/git-freeze checks for Bash and audit-context for Write/Edit/apply_patch | Deterministic local repository/Git reads only; no Codex network lookup, freshness/identity handler, Omni, install, update, global sync, or scaffolding |
| H6 | `PermissionRequest` | Verifies the definition-bound launcher, applies the configured tool matcher, and invokes Omni once only when approvals are explicitly enabled | Bounded/redacted approval-queue state; timeout, interruption, malformed output, binding drift, and transport failure deny |

Expand Down
Loading
Loading