ciregenz
|
4ae7f81cc7
|
[eric] cloud runs: two overlapping passes could pull one credential twice, racing the router file
|
2026-08-03 00:11:22 -07:00 |
|
ciregenz
|
db6c7a25b7
|
[eric] mcp: a dead server says its sign-in expired instead of printing a goroutine dump
|
2026-08-02 21:27:34 -07:00 |
|
ciregenz
|
500e6ebe59
|
[eric] mcp: activating a server ends the turn, so the model stops guessing tool names
|
2026-08-02 21:27:34 -07:00 |
|
ciregenz
|
ce5a458999
|
[eric] cloud runs: keep this device's token alive while the cloud holds custody of it
|
2026-08-02 17:55:27 -07:00 |
|
ciregenz
|
654e45fedf
|
[eric] apps: publishing refuses to silently drop a generated app's FastAPI backend
|
2026-08-02 16:31:27 -07:00 |
|
ciregenz
|
c694937332
|
[eric] cloud runs: give the account back when the workflow never went up
|
2026-08-02 16:31:17 -07:00 |
|
ciregenz
|
843e9e662a
|
[eric] cloud runs: lend the account before the workflow goes up, so a cloud run can actually sign its calls
|
2026-08-02 16:04:50 -07:00 |
|
ciregenz
|
487dd26cc4
|
[eric] merge eric/haik-ui: collapsed tool output sizes and resizes, wheel can scroll, interface toggles read as options
|
2026-08-02 14:53:53 -07:00 |
|
ciregenz
|
13546b8ffb
|
[eric] merge eric/runner-parity: files come back, apps build, skills load, and MCP refuses honestly
|
2026-08-01 01:41:11 -07:00 |
|
ciregenz
|
f401793604
|
[eric] cloud runs: carry the user's own skills up, and name the apps the container cannot reach
|
2026-08-01 01:20:11 -07:00 |
|
ciregenz
|
6ab9513240
|
[eric] backend: a finished cloud run's files land in Downloads, where a user would actually look
|
2026-08-01 01:20:10 -07:00 |
|
ciregenz
|
e21e12ef20
|
[eric] workflows: hand weekly and self-ending schedules to the cloud, zone and all
|
2026-08-01 01:10:45 -07:00 |
|
ciregenz
|
d3b76bcb05
|
[eric] workflows: trashing a cloud-hosted workflow stops the cloud copy first, or refuses and says why
|
2026-07-31 23:39:36 -07:00 |
|
ciregenz
|
2750d88988
|
[eric] backend: hand a workflow's schedule to the cloud, and take it back, without both timers ever being live
|
2026-07-31 23:39:35 -07:00 |
|
ciregenz
|
05132c7ace
|
[eric] workflows: retire the previous test chat, five tests left five orphan cards and five leaked transcripts
|
2026-07-31 21:32:52 -07:00 |
|
ciregenz
|
66c5f7bb53
|
[eric] agents: a restart relabelled every finished chat stopped and hung a Resume button off it
|
2026-07-31 21:32:39 -07:00 |
|
 ciregenzandClaude Opus 5
|
949655e86c
|
[eric] backend: browser tools follow whether a renderer is attached, not the headless flag
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015q1TVSLNNsXAoyM7sJuVKP
|
2026-07-31 19:01:03 -07:00 |
|
ciregenz
|
c32ec45aa8
|
[eric] settings: mouse wheel can scroll instead of zoom on the canvas
|
2026-07-31 18:10:09 -07:00 |
|
ciregenz
|
0f6e110a86
|
[eric] apps: bring back apps whose record vanished but whose work is still on disk
|
2026-07-31 17:31:15 -07:00 |
|
ciregenz
|
ebdc8575b2
|
[eric] merge eric/app-orphans: a second app instance was classified as a dead app and torn off the canvas
|
2026-07-31 17:14:58 -07:00 |
|
ciregenz
|
e350802a26
|
[eric] workflows: a record the loader drops now names itself instead of vanishing in silence
|
2026-07-31 17:13:59 -07:00 |
|
ciregenz
|
ab8609a0ca
|
[eric] workflows: null session pointers whose session is gone, so a loss renders as empty not blank
|
2026-07-31 17:01:04 -07:00 |
|
ciregenz
|
95006713c6
|
[eric] workflows: purge takes the workflow's own chats with it, and spares the chat it was born from
|
2026-07-31 17:01:04 -07:00 |
|
ciregenz
|
bdb5f68bc0
|
[eric] merge eric/browser-index-leak: stop the browser sub-agent relaying raw element indices to the user
|
2026-07-31 15:59:52 -07:00 |
|
ciregenz
|
ec4a044b0b
|
[eric] browser: strip the click-by-index element rows from anything a human reads
|
2026-07-31 15:58:49 -07:00 |
|
ciregenz
|
1fec4a57b2
|
[eric] tools: ship ExitWorktree alongside EnterWorktree, an Enter with no Exit strands the agent
|
2026-07-31 15:57:55 -07:00 |
|
ciregenz
|
50a8424038
|
[eric] tools: hard-deny the between-turn tools whose callback nothing ever consumes
|
2026-07-31 15:57:55 -07:00 |
|
ciregenz
|
e4f917a8c6
|
[eric] workflows: enforce a frozen Actions tool set at launch, it was computed and then discarded
|
2026-07-31 15:52:01 -07:00 |
|
ciregenz
|
61d824b14f
|
[eric] merge eric/cloud-runs: headless backend, ephemeral runner, credential custody
|
2026-07-31 15:42:25 -07:00 |
|
ciregenz
|
91982a2278
|
[eric] apps: name the user's apps when none is selected, so the agent can point at the selection step instead of denying they exist
|
2026-07-31 15:29:07 -07:00 |
|
ciregenz
|
b5d0461828
|
[eric] backend: queue messages typed mid-turn and replay them when the turn ends
|
2026-07-31 14:21:47 -07:00 |
|
ciregenz
|
e9eb7a1b81
|
[eric] backend: surface error-shaped ResultMessages as failed turns instead of silent successes
|
2026-07-31 14:17:17 -07:00 |
|
ciregenz
|
bf0c859fd4
|
[eric] workflows: fix three broken session_store imports left by the underscore migration
|
2026-07-31 14:14:13 -07:00 |
|
ciregenz
|
61d79ce5d0
|
[eric] backend: boot restore keeps session files on disk instead of unlinking them
|
2026-07-31 14:13:01 -07:00 |
|
ciregenz
|
44f9e48c2a
|
[eric] security: close the Output executor sandbox escape via sys, dunders and module chains
|
2026-07-31 13:47:02 -07:00 |
|
ciregenz
|
f3761f61eb
|
[eric] security: contain workspace file paths with realpath and a whole-component boundary
|
2026-07-31 13:46:52 -07:00 |
|
ciregenz
|
345000e8dc
|
[eric] credentials: hand custody to the cloud strip-first, so two rotators is unrepresentable
|
2026-07-31 13:12:11 -07:00 |
|
ciregenz
|
c0a0993ca2
|
[eric] credentials: move a rotating token out of 9router's db.json without racing the router for the file
|
2026-07-31 13:00:11 -07:00 |
|
ciregenz
|
e70cc5bf59
|
[eric] backend: headless mode drops the renderer-bound tools and denies approvals instantly
|
2026-07-31 12:02:29 -07:00 |
|
ciregenz
|
3d8c6101b6
|
[eric] security: make the 9router state dir owner-only, its db.json held live tokens at 0644
|
2026-07-31 11:44:24 -07:00 |
|
ciregenz
|
6f32861b41
|
[eric] workflows: add execution_target so the local scheduler never fires or rolls a cloud-hosted timer
|
2026-07-31 11:42:52 -07:00 |
|
ciregenz
|
b8a9793b65
|
[eric] distill: pin the touched file paths back onto a summary that paraphrased them away
|
2026-07-31 01:21:49 -07:00 |
|
ciregenz
|
8b72683a43
|
[eric] lint: drop the unused load_settings import in RunSupport
|
2026-07-31 01:17:14 -07:00 |
|
ciregenz
|
e10bd2ed9d
|
[eric] tool-results: middle-elide oversized spills so the tail (where the verdict lives) survives
|
2026-07-31 01:17:14 -07:00 |
|
ciregenz
|
71f480ecfd
|
[eric] client-pool: stop hashing the compaction cutoff, it respawned the CLI every turn past 65% context
|
2026-07-31 01:17:14 -07:00 |
|
ciregenz
|
970144ce2b
|
[eric] tools: ship the pruned built-in manifest by default, 4211 fewer prompt tokens per turn
|
2026-07-31 01:17:09 -07:00 |
|
ciregenz
|
bce7e1f072
|
[eric] voice: Settings model picker with verified downloads; report fast whisper exits
|
2026-07-31 00:03:27 -07:00 |
|
ciregenz
|
b5e205160d
|
[eric] settings: disconnect a subscription provider from the UI, verified against 9router not assumed
|
2026-07-31 00:00:43 -07:00 |
|
ciregenz
|
96451de87e
|
[eric] help: ground the help chat in real product knowledge instead of a hardcoded prompt
|
2026-07-30 18:29:15 -07:00 |
|
ciregenz
|
ce7939b94d
|
[eric] web: race the free search engines so a dead one costs the hedge delay once, not 8s on every launch
|
2026-07-30 17:20:41 -07:00 |
|