Skip to content

Commit 22bad29

Browse files
author
public-coder-agent
committed
Document next Claude Haku runtime slices
1 parent 3b1eed4 commit 22bad29

3 files changed

Lines changed: 210 additions & 297 deletions

File tree

haku/PLAN.md

Lines changed: 10 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -87,68 +87,24 @@ Sketch to design out later (a real mechanism-design + security effort, not built
8787
token/RBAC model, how "less-restricted browsing" stays contained, and where the line
8888
sits between "draft for review" and "act."
8989

90-
## Haku Console risky-tool broker
90+
## Future: broaden conversational Haku
9191

92-
Haku Console is the MCP/HTTP policy and approval boundary: calls that pass reviewed auto-approval
93-
policy execute immediately, while all others become operator approval requests. The invariant stays
94-
the same: exact call reviewed, trusted console approval, console-owned audit/result state, and
95-
credentials scoped or proxied rather than trusted to Haku's restraint.
92+
The concrete milestone—one conversation-scoped sandbox waking from a durable `haku-state` checkout—is
93+
tracked in [`plans/claude_sandbox_haku_runtime.md`](plans/claude_sandbox_haku_runtime.md).
9694

97-
## Future: a conversational interface with Haku (operator, 2026-07-06)
95+
After that path is reliable, possible extensions are named conversations and handoff/fork, scheduled
96+
or event-driven wakes, and alternate message surfaces. All should reuse the same bounded runtime,
97+
shared Haku identity, Console-owned policy/approval path, and Git concurrency rules rather than
98+
introducing a second privileged execution path.
9899

99-
Today the only way to reach Haku mid-stream is the console's capability tier: fire the
100-
claude-code-web routine (optionally with per-run `text`) and get one fresh, fire-and-forget
101-
`run.md` pass — no back-and-forth, no memory of the exchange beyond what lands in
102-
`haku-state`. The operator wants something more like chatting with Haku directly, plus
103-
richer push notifications. **Chat is the higher-priority half of this; notifications are a
104-
nice-to-have.** Nothing below is designed yet — this is the shape of the ask, to work through
105-
in a follow-up design pass.
106-
107-
- **A chat-like surface** — a Telegram bot and/or a web UI — where Haku reads messages and
108-
replies, as an easier and richer affordance than the console's launch dialog for:
109-
- **Quick dispatch**: send Haku a task in a message, superseding the console's
110-
"canned per-fire instructions" TODO (`TODO.md`_Console_) with a lower-friction
111-
version of the same idea.
112-
- **An ongoing, longer conversation** — not just one-shot fire-and-forget: follow-ups,
113-
clarifying questions, iterating on a task, without re-stating context each time.
114-
- **Multiple conversation threads**, à la ChatGPT/claude.ai — separate topics or tasks
115-
kept apart rather than one running transcript.
116-
- **Inline action affordances** — clickable prebaked answers/actions in Haku's messages,
117-
not just prose. Conceptually the same idea as `haku-ui`'s markdown affordance widgets
118-
(`<signal-toggle>`, `<handoff>`, `<launch>`, `<feedback>`) but rendered in a chat surface
119-
(e.g. Telegram inline-keyboard buttons with `callback_data`, which is a different wire
120-
shape than a link-based affordance).
121-
- **Richer mobile notifications** — push notifications (today: one-way ntfy, no replies, no
122-
buttons — see _Open questions_ below) that carry action buttons, so the operator can act
123-
from the lock screen instead of opening a dashboard.
124-
125-
Open design questions to work through before building anything:
126-
127-
- How a chat surface reconciles with Haku's run-based execution model: today each web-home
128-
invocation is one bounded `run.md` pass, not a standing process. Does "ongoing
129-
conversation" mean a live conversational loop (a new runtime shape), or per-message dispatch
130-
against a conversation thread/log kept in `haku-state` that each run picks up and appends to
131-
(closer to today's model, but not a live chat)?
132-
- Where conversation threads live and who owns them — `haku-state` (consistent with "state is
133-
Haku's only memory") or a separate store, and how threads relate to `items/` and `runs/`.
134-
- How action-button clicks get enforced: a chat message and click-to-action carries the same
135-
shape of risk as `requestLaunch`, but a bot API has no equivalent of "trusted-rendered
136-
chrome" to confirm against — worth a hard look before wiring any button to a mutating
137-
action.
138-
- Bot/webhook identity and perimeter: a Telegram bot needs a public inbound route and its own
139-
credential, same class of new capability surface as `haku-ui`/the console — it inherits
140-
Haku's security doctrine (`docs/security.md`), not a chat SDK trusting the model to behave.
141-
- Whether chat-dispatched one-off tasks run at Haku's own orchestrator privilege (like today's
142-
launch-routine) or can ever route through the dispatch plane's worker zones
143-
(`plans/multi_agent.md`).
100+
Agent-authored transcript content remains untrusted UI. Any inline executable action needs a
101+
Console-owned schema, trusted rendering, actor checks, and the same audit path as an ordinary Console
102+
action.
144103

145104
## Open questions
146105

147106
- **Value scoring**: single curator-owned 0–100 plus deadline is probably enough; resist
148107
building an expected-utility framework before the queue has real traffic.
149-
- **Notification thresholds**: ntfy is the channel; when to ping vs. wait for a dashboard
150-
visit is a `memory/` matter, tuned via intake. See _Future: a conversational interface
151-
with Haku_ above for the fuller chat/rich-notification direction this was gesturing at.
152108
- **Git as item store at scale**: a repo gives auditability, trivial backup, and
153109
human-editable state, but no queries or concurrent-writer safety. Fine at personal
154110
volumes with effectively serialized writers. If volume/concurrency ever outgrows it,

0 commit comments

Comments
 (0)