- GET /companies/{slug}/work-items/{id}/log proxies the Hermes task log
(agent reasoning blocks + tool calls), tail-limited, served as text
- dashboard: every dispatched work item row gets a "log" link
- office: click a working employee sprite to open their live log
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- While work is in flight, the manager posts a 2-4 sentence shareholder
status update (what's moving, risks, next step) digested from real
events via one pool call — at most one per 2h per company, skipped
when a milestone update already covered the window. Shows in the CEO
updates feed as status.update.
- Workspace demos: engine proxies top-level company workspace files from
Hermes (GET /companies/{slug}/files[/{name}]); dashboard lists them
with links so deliverables like index.html render live in the browser.
- Engine logs at info level so dispatcher activity is visible.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- create_profile accepts a provider; non-custom providers (anthropic,
openai-codex) skip the pool base_url and use Hermes GUI credentials —
externally billed consultants
- consultant role charter; EmployeeSpec carries model+provider;
POST /companies/{slug}/employees hires into an existing company
- decomposition may assign role consultant, with explicit cost guidance
- POST /companies/{slug}/pause|/resume flips lifecycle_state; dispatcher,
standups and directives already filter on active, in-flight work
finishes; dashboard gets a per-company pause button
Verified: ChatGPT OAuth consultant (gpt-5.4-mini) completed a kanban task
end-to-end via Hermes credential pool; pause/resume roundtrip with 409
guard on double-pause.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Hermes rejects workspace_kind 'path' (valid: dir/scratch/worktree).
- Dispatch failure now blocks the work item with a dispatch.failed event
instead of retrying the same 400 every tick.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- engine/static/index.html served at /: companies, employees, objectives,
work items, live event feed (5s poll), global pause/resume button.
- Persistent per-company workspace on the Hermes host
(/opt/data/farmhouse/<slug>, created via files API at company creation);
dispatcher passes it as kanban workspace_path so artifacts persist across
tasks instead of dying in scratch dirs.
- hermes_client.mkdir; gaswatch backfilled.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>