Commit Graph
1533 Commits
Author SHA1 Message Date
ciregenz f7dec16fdd [eric] canvas: scrolling a transcript no longer stalls the answer being streamed into it 2026-08-31 15:44:05 -07:00
ciregenz 560cb1a182 [eric] agents: pin the queued-send bubble wiring (event -> reducer -> caption) with its own test 2026-08-31 11:03:46 -07:00
ciregenzandClaude Opus 5 312d243bdb [eric] agents: a route across pages runs the loop, and a queued send says it is queued
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U6zrBsUCNzpMBnov3rTVYV
2026-08-30 23:29:13 -07:00
ciregenzandClaude Opus 5 4fd0c1a10e [eric] canvas: Close says it dismissed the card, because the executor's closed_at cannot mean that (ENG-421)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U6zrBsUCNzpMBnov3rTVYV
2026-08-28 19:38:37 -07:00
ciregenzandClaude Opus 5 e277aec52c [eric] chat: the answer box is a raised surface, not a well dug into the card (ENG-419)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U6zrBsUCNzpMBnov3rTVYV
2026-08-28 10:50:09 -07:00
ciregenzandClaude Opus 5 d1de5a1b0d [eric] canvas: point the two new fixes at their real issues (ENG-420 wheel, ENG-421 run card)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U6zrBsUCNzpMBnov3rTVYV
2026-08-27 22:33:31 -07:00
ciregenzandClaude Opus 5 215bc7c894 [eric] canvas: a wheel gesture has one owner, and Settings' own rows stop hiding the window (ENG-421)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U6zrBsUCNzpMBnov3rTVYV
2026-08-27 22:31:58 -07:00
ciregenz 3aa50b6aef [eric] canvas: stopping a workflow run keeps its card, because you stopped it to read it (ENG-420) 2026-08-27 18:19:00 -07:00
ciregenz 3ccbeb680d [eric] chat: the Other... box is visible and appears when you pick it, not after Enter (ENG-419) 2026-08-27 17:11:23 -07:00
ciregenz b5f7eb6516 [eric] canvas: the eviction fallback paints the tone the canvas averages, so the flash stops reading white (ENG-340) 2026-08-27 15:09:40 -07:00
ciregenz 5c47533d0b [eric] browser: a wedged app preview remounts its webview instead of being left stuck (ENG-402) 2026-08-27 14:41:22 -07:00
ciregenz 8e28c2706c [eric] chat: React is the only writer of streamed text, so an answer cannot corrupt itself (ENG-415) 2026-08-27 14:33:50 -07:00
ciregenz 4cb9662294 [eric] chat: a streamed answer cannot corrupt itself, and a long one never renders blank (ENG-415) 2026-08-27 14:23:31 -07:00
ciregenz 52d764f155 [eric] canvas: sub-agent arrows pick their anchors like every other tether, and one height formula (ENG-412) 2026-08-26 12:56:07 -07:00
ciregenzandClaude Opus 5 e59ba8c561 [eric] canvas: an app gets the same surface contract as a browser, in the slot, the embed and the pill (ENG-410)
Three symptoms, one asymmetry: the app surface was copied from the browser surface and the copy was incomplete.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-26 12:42:01 -07:00
ciregenzandClaude Opus 5 2b2c08a541 [eric] chat: the MCP suggestion card reserves room for its dismiss X, so Activate cannot sit under it (ENG-405)
Reported by Haik Decie. Padding derived from the X's own footprint so the two cannot drift apart.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-24 21:30:11 -07:00
ciregenz 8ed2330c76 [eric] agents: the two guards that could fail silently now declare themselves (ENG-388, ENG-386) 2026-08-23 13:19:26 -07:00
ciregenz 35a4b18647 [eric] dictation: fn recovers without a relaunch, and no OS is left with a silent dead key (ENG-360) 2026-08-21 13:51:09 -07:00
ciregenz 5e2fe299a3 [eric] dictation: a live fn watcher now MEANS a working tap, and a dead fn key says so (ENG-360) 2026-08-21 13:20:57 -07:00
ciregenz 6cc705c0ee [eric] models: only the catalog retires a pinned model, so a router bounce cannot move a chat vendors (ENG-386) 2026-08-21 11:51:14 -07:00
ciregenzandClaude Opus 5 da18c0a5ef [eric] agents: the Resume chip is a human, so a stopped chat honours it (ENG-384)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018foyDoK19jjbYdudfzQVkZ
2026-08-21 08:07:55 -07:00
ciregenzandClaude Fable 5 e8dc7c5fdd [eric] import: only markdown becomes a bare skill, and skills always confirm (ENG-376)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-20 22:22:49 -07:00
ciregenzandClaude Fable 5 74d70de13f [eric] workflows: a schedule switch never lies; writes roll back or serialize (ENG-375)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-20 22:22:48 -07:00
ciregenzandClaude Fable 5 fa9196c8af [eric] signin: live port hand-off, stalled-wait retry, openswarm:// registered (ENG-381)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-20 22:22:48 -07:00
ciregenzandClaude Fable 5 6c14b2d65b [eric] dictation: no cursor means your composer, not a new chat (ENG-378)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-20 22:22:48 -07:00
ciregenzandClaude Fable 5 326574b995 [eric] chat: the transcript follows the stream until the USER scrolls away (ENG-379)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-20 22:22:48 -07:00
ciregenzandClaude Fable 5 0ccc3af040 [eric] canvas: a resize ends when the hand lets go, webview or not (ENG-377)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01En8dRGsJPLrJCQBEkTH4Mp
2026-08-20 22:22:48 -07:00
ciregenz 672ba51592 [eric] import: a dropped screenshot no longer strands the Drop overlay; unsupported files are told so, and a file:// drop can never replace the app 2026-08-20 19:39:33 -07:00
ciregenzandClaude Opus 5 6edce86d68 [eric] browser: children survive turn 1 on every lane, never report "done" for nothing, tables render first try
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 18:16:51 -07:00
ciregenz 10bca6ba17 Revert "[eric] browser: a card the renderer parked is slow, not dead; parallel agents no longer ghost"
This reverts commit 6ed6206c7b.
2026-08-20 16:13:50 -07:00
ciregenzandClaude Opus 5 6ed6206c7b [eric] browser: a card the renderer parked is slow, not dead; parallel agents no longer ghost
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 15:50:55 -07:00
ciregenzandClaude Opus 5 6f313a445c [eric] settings: the disconnect spinner always releases, even when the refresh throws
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 12:22:34 -07:00
ciregenzandClaude Opus 5 58e376496e [eric] agents: an outage parks the turn and resumes when the provider answers; OAuth connects survive a backend restart
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 08:39:41 -07:00
ciregenzandClaude Opus 5 d5934b1da1 [eric] agents: no turn ends silent, and a codex 401 waits out the rotation window
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014wtspwSFzZmjCx9UNPAorQ
2026-08-20 07:21:00 -07:00
ciregenz fd14cb3bdb [eric] apps: a preview whose dev server never binds shows an honest failure card with retry instead of spinning Starting preview forever (Alex's report) 2026-08-19 14:07:30 -07:00
ciregenz f6b2352acc [eric] canvas: creating a docked app no longer yanks the camera to its stored rect; the mini card is already in the chat you're watching (ENG-352) 2026-08-18 20:59:00 -07:00
ciregenz 9327475c3a [eric] models: shipped defaults are Sonnet 5 (Anthropic) and GPT-5.6 Terra (OpenAI); explicit user picks untouched 2026-08-18 20:57:32 -07:00
ciregenz 2a9f1a7024 [eric] canvas: two same-instant app creations can never fully cover each other; the clash pushes down the column (ENG-346) 2026-08-18 19:43:08 -07:00
ciregenz 4c2db3bbb1 [eric] chat: docked mini cards are inert previews; drag from anywhere on the body, clicks stop leaking into the live page, wheel scrolls the transcript (ENG-348) 2026-08-18 19:12:36 -07:00
ciregenz 88d6c536cd [eric] dictation: app-scoped by default with a Dictate-anywhere opt-in, and the Input Monitoring prompt moves from install time to first dictation use (ENG-341) 2026-08-18 19:10:08 -07:00
ciregenz 201216d166 [eric] canvas: new app cards anchor on the nearest on-canvas ancestor and docked rects stop being invisible obstacles (ENG-346) 2026-08-18 19:04:56 -07:00
ciregenz a08be0e823 [eric] models: the free lane's haiku default can no longer outlive the lane or get persisted by the guard (ENG-343) 2026-08-18 19:04:38 -07:00
ciregenz 48ebec5b65 [eric] chat: MCP connect notice is ONE slim ephemeral bubble; inline table deleted, header/description stripped, 12s auto-clear (ENG-350), plus the ENG-345 scroll hooks 2026-08-18 19:04:37 -07:00
ciregenz 00d62ea325 [eric] chat: answering an in-chat question pins to bottom like a send; the reply landed below the fold (ENG-345) 2026-08-18 19:04:37 -07:00
ciregenz fd8dca2b72 [eric] models pill: poll while the no-model error shows; a router-side recovery emits no reachability edge so the pill stuck until reload (ENG-294 drill find) 2026-08-18 14:25:12 -07:00
ciregenz c33473a419 [eric] canvas: grow the pill's paint-containment box; content-visibility clipped the ring's top arc, the hover chip and every shadow at a sharp rectangle 2026-08-18 14:09:00 -07:00
ciregenz 70864723fa [eric] canvas: the collapsed stack drops ALL drop shadows; capsule and Thinking shadows merged into one gray slab on light canvas (the 'same pill' blob) 2026-08-18 13:55:30 -07:00
ciregenz 9df2c56e70 [eric] canvas: the collapse tuck keys on OWNERSHIP, not slot possession; a later dock stealing the slot no longer strands the first card full-size, and only a user drag-out frees a card for good 2026-08-18 13:26:52 -07:00
ciregenz fccbea46e7 [eric] canvas: a docked app under a COLLAPSED chat tucks as the 320px shadowless miniature too; collapse used to restore it to a full-size slab under the pill 2026-08-18 13:20:47 -07:00
ciregenz e49779681d [eric] canvas: a collapsed chat's browser is parked or a 320px miniature at EVERY stage (drag/resize/capture included), and the attachment never casts a shadow 2026-08-18 13:17:27 -07:00