name: graphite description: Work with Graphite (gt) for stacked PRs - creating, navigating, and managing PR stacks. allowed-tools:
- "Bash(gt *)"
- "Bash(git add *)"
- "Bash(git reset *)"
- "Bash(git diff *)"
- "Bash(git status *)"
- "Bash(git stash *)"
name: graphite description: Work with Graphite (gt) for stacked PRs - creating, navigating, and managing PR stacks. allowed-tools:
Two UIs drive the same agent runtime today, through incompatible control planes:
packages/client src/pages/agents.tsx → AgentSession.tsx) creates sessions via POST /harness-sessions on packages/server, which provisions one sandbox (one agent-server process) per session and exposes its data plane only through a cookie-authenticated proxy.agent/packages/web-ui-react) talks directly to a single long-lived agent-server on :4001/:4000 and shows many sessions inside that one process.The data plane is already shared — both UIs use the same agent-client package and wire protocol against the same agent-server HTTP/SSE API. The incompatibility is purely control-plane: who creates sandboxes, who knows where they live, who is allowed to see them.
On May 9, import-prod avg request duration jumped from ~10s to 3,240s (54 minutes), autoscaling kicked in from 2 to 7 tasks, and 500 errors spiked 20x. No code was deployed to the import service. The root cause was a Transloadit outage that exposed the fact that the import service has no enforceable request-level timeout anywhere in the stack.
Agentic import was ruled out — its CPU was ~0.5%, and import-prod request volume was flat across the incident window.
A Claude Code skill that teaches Claude the Graphite CLI workflow for stacked PRs.
~/.claude/skills/graphite/
├── SKILL.md # Main skill definition + trigger config
└── references/
On 2026-04-21, Black Forest Labs' API endpoint api.bfl.ai/v1/flux-2-klein-9b-private started returning 404 Not Found on every request. This has been going on for 24+ hours. Every image generation request that targets flux-2-klein fails immediately (~49ms), the ImageModelFallback catches the error, and the system falls back to flux-1-quick or qwen-image-fast.
The fallback chain is working, so users still get images. But we're making ~300-500 wasted API calls per hour (spiking to 18k+ during peak) to an endpoint that's been dead for over a day. No automated system detected or responded to this.
Added a typed EventEmitter to the deck generation pipeline so we can tap into raw card HTML before post-processing (layout formatting, image injection, etc.).
Generic, typesafe EventEmitter<EventPayloads> class. Supports:
on/off/emit keyed by an event map