packages/happy-cli/roadmap.md
API Error: 500 {"type":"error","error":{"type":"api_error","message":"Overloaded"}}
Not showng Session 213d643d-fc52-4d43-83cd-d4d1e1b45fc6 logs /Users/kirilldubovitskiy/.happy/logs/2025-07-20-20-48-12.log
Push notification on result Test how permission mode is exited from when in remote
Expired permission requests?
How do we know that Claude is waiting for us in interactive session
On decline - what happens? On timeout?
Cli version report
Not kirill 4) permission ui
updateMetadata - update with usage
Failed to get or create session - crashes the cli Ideally we want remote mode to be optional. Should do this with lazy initialization
show we are stuck - likely waiting for permissions?
When we are stuck in permissions - we are unable to text & get a response
User write lol.txt
Permission blocks for 5 minutes
If they don't respond within 4.5 minutes,
We should cache permissions previously approved - so on repeat requests - we will auto approve? - later
? Where is the timeout actually coming from?
Is it claude or mcp server configuration?
If MCP has defualt timeouts
Calling interrupt & blocking on mcp server does not yield results. MIght have to do it at the same time
[14:09:13.746] [MessageQueue] waitForNext() adding waiter. Total waiters: 1 [14:13:40.716] [claudeRemote] Received message from SDK: user [14:13:40.717] [CLAUDE] Message from non interactive & remote mode: { "type": "user", "message": { "role": "user", "content": [ { "type": "tool_result", "content": "Error calling tool", "is_error": true, "tool_use_id": "toolu_01BHgTzQcaoa7KMq8sMe1HU1" } ] }, "parent_tool_use_id": null, "session_id": "8226266e-9953-4ea2-b6f1-17384bb4d469" }
Anoterh sample
[14:13:45.662] [CLAUDE] Message from non interactive & remote mode:
14:18:46.683 - error
Basically exactly 5 minutes.
? How do we get the expiration? ? We should reset the permissions?
Or we should allow them to
Now it fails after 5 minutes and tries again with a different permissions? or same
We want to
[15:01:29.481] [SOCKET] Sending message through socket:
{
"role": "agent",
"content": {
"type": "output",
"data": {
"cwd": "/Users/kirilldubovitskiy/projects/happy/handy-cli",
"sessionId": "329df624-b37c-4849-ab83-65722d321c29",
"version": "1.0.51",
"uuid": "072e0a05-5480-4a83-9f63-802da615b66b",
"timestamp": "2025-07-20T22:01:29.464Z",
"type": "assistant",
"message": {
"id": "msg_01H9en68JmbGQJb3Mfob2rs8",
"type": "message",
"role": "assistant",
"model": "claude-opus-4-20250514",
"content": [
{
"type": "text",
"text": "I'll create the file lol.txt in the parent directory."
}
],
"stop_reason": null,
"stop_sequence": null
},
"requestId": "req_011CRK2MXhzGmZ255atcGVzF"
}
}
}
[15:39:05.950] [SOCKET] Sending message through socket:
{
"role": "agent",
"content": {
"type": "output",
"data": {
"cwd": "/Users/kirilldubovitskiy/projects/happy/handy-cli",
"sessionId": "329df624-b37c-4849-ab83-65722d321c29",
"version": "1.0.51",
"uuid": "8b1593e4-c56e-4785-9dd0-741587021c95",
"timestamp": "2025-07-20T22:39:03.317Z",
"type": "assistant",
"message": {
"id": "msg_01H9en68JmbGQJb3Mfob2rs8",
"type": "message",
"role": "assistant",
"model": "claude-opus-4-20250514",
"content": [
{
"type": "text",
"text": "I'll create the file lol.txt in the parent directory."
}
],
"stop_reason": null,
"stop_sequence": null
}
}
}
}
'result' message type is not sent to history. Its only for sdk
Remote is maintaned - Starting claudeRemote with messages:
I found the MCP permission tool call timeout configuration!
Key findings:
To configure the timeout, you can set the environment variable:
MCP_TOOL_TIMEOUT - for individual tool/permission calls (defaults to ~27.8 hours)
MCP_TIMEOUT - for initial connection timeout (defaults to 30 seconds)
interrupt
Lazy initialize our shit - immediatelly drop to claude. If we are ofline - still do it
Passthrough claude parameters
Server diying test
Interruptions add UI to stop (stop button)
Show that its doing someting, fix thingking
Permissions fix
Test what happens when we timeout the response, how
Test end to end & rollout new version
CLI dies with error Command failed with exit code 137. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. kirilldubovitskiy@MacBookPro handy-cli % node:events:496 throw er; // Unhandled 'error' event ^
Error: read EIO at TTY.onStreamRead (node:internal/stream_base_commons:216:20) Emitted 'error' event on ReadStream instance at: at emitErrorNT (node:internal/streams/destroy:170:8) at emitErrorCloseNT (node:internal/streams/destroy:129:3) at process.processTicksAndRejections (node:internal/process/task_queues:90:21) { errno: -5, code: 'EIO', syscall: 'read' }
Dogfood for issues
Refactor existing code
Make it feel nicer
Embed amphetamine into it?
Permissions - fix mcp server integration
Deep link to a website
Make key messages render
[later] Wrapping claude in an http proxy, allows us to snoop on token usage to show its doing something in the ui when running in remote mode
For local mode, same approach will work
Distribution
Deep link to download app from cli link
Conversation continuity
MCP
Permission automatic checking
Blocking
Permission checking [steve]
CLI dies if server disconnects :D
Need to make agent state work. Most important state - permissions
Try logging out of Claude and see how to handle that case
Make sure to use Claude from our package. Kill other Claudes
Make sure interruption of remote controlled session works
Permissions callout:
e2e single tests