ciregenz
|
d1b9c2c5bd
|
[eric] canvas: clicking empty canvas clears a text selection, the way every other surface does (ENG-316)
|
2026-08-15 23:04:32 -07:00 |
|
ciregenz
|
6823fc6d36
|
[eric] apps: the publish limits show on the findings screen too, not only the clean one (ENG-293)
|
2026-08-14 23:14:58 -07:00 |
|
ciregenz
|
47ee5d72d5
|
[eric] settings: SettingsWrite gets a real switch, refused at the route so the toggle is a boundary not a label (ENG-284)
|
2026-08-14 23:13:12 -07:00 |
|
ciregenz
|
3cbe575b71
|
[eric] apps: a refused unpublish stops reporting success, so an app that is still live says so (ENG-283)
|
2026-08-14 22:17:53 -07:00 |
|
ciregenz
|
01fc8fc3e6
|
[eric] canvas: the space reserved above a collapsed pill stops answering clicks, so empty canvas no longer drags the card
|
2026-08-14 21:06:34 -07:00 |
|
ciregenz
|
0b2e4a6d25
|
[eric] apps: a refused delete no longer reports success, so the card stops vanishing while the app survives (ENG-309)
|
2026-08-14 16:20:48 -07:00 |
|
ciregenz
|
e5f3005a9b
|
[eric] canvas: the pill hover chip reveals fully above the capsule instead of peeking out as a crescent, and stops wearing card chrome
|
2026-08-14 12:07:52 -07:00 |
|
ciregenz
|
257f9d7323
|
[eric] canvas: the collapsed pill's question widget gets a real width and can never render narrower than its content
|
2026-08-14 10:55:37 -07:00 |
|
ciregenz
|
bb6462c8c7
|
[eric] canvas: resize handles anchor inside the card so overflow:hidden stops clipping half the grab band (ENG-290)
|
2026-08-13 23:39:17 -07:00 |
|
ciregenz
|
a83b35d463
|
[eric] canvas: a camera fly cannot start mid-drag and fight the user's pan (ENG-299)
|
2026-08-13 20:25:13 -07:00 |
|
ciregenz
|
b548f3ba07
|
[eric] canvas: un-minimizing keeps your spot when it is free and reflows when it is not
|
2026-08-13 20:07:37 -07:00 |
|
ciregenz
|
408d6f4f79
|
[eric] settings: notification sections read as bounded groups, not labels floating in one list
|
2026-08-13 20:00:45 -07:00 |
|
ciregenz
|
0554ffab56
|
[eric] canvas: app cards resize on every tab, not just preview (ENG-290)
|
2026-08-13 19:53:08 -07:00 |
|
ciregenz
|
6b3c93278f
|
[eric] dictation: the mic warms on hover so the first press of a launch is not cold (ENG-300)
|
2026-08-13 19:47:59 -07:00 |
|
ciregenz
|
05cc86d08b
|
[eric] canvas: Cmd+A from an empty composer selects that chat, not nothing (ENG-231)
|
2026-08-13 09:50:36 -07:00 |
|
ciregenz
|
a3c07f129e
|
[eric] publish: say what a published app can and cannot do before the user commits (ENG-293)
|
2026-08-13 07:41:29 -07:00 |
|
ciregenz
|
ebcc81ef9a
|
[eric] browser: the caret is handed back once when the agent stops, not once per command (ENG-252)
|
2026-08-13 04:41:48 -07:00 |
|
ciregenz
|
0052e6fdec
|
[eric] ws: a session id we never issue now names its own producer instead of silently 404ing (ENG-205)
|
2026-08-13 04:29:33 -07:00 |
|
ciregenz
|
5b772fe3fa
|
[eric] canvas: Cmd+A takes the chat you are in, not every card on the board (ENG-231)
|
2026-08-13 02:13:36 -07:00 |
|
ciregenz
|
e2602f96de
|
[eric] state: the last seven data.X thunks reject on non-2xx, closing the ENG-277 payload class
|
2026-08-12 19:47:27 -07:00 |
|
ciregenz
|
74de4c2da8
|
[eric] chat: docked-slot sizing is exercised across 144 viewport/aspect cases and bound to the component CSS (ENG-278)
|
2026-08-12 19:13:30 -07:00 |
|
ciregenz
|
c58d9e1657
|
[eric] ui: the input readability fix touches colour only, not the geometry of 74 controls (ENG-281)
|
2026-08-12 19:09:18 -07:00 |
|
ciregenz
|
5cf1b2ddff
|
[eric] state: the last two array-spread reducers are guarded at both layers (ENG-277)
|
2026-08-12 19:03:16 -07:00 |
|
ciregenz
|
33b1d9d8e3
|
[eric] test: exhaustive invariant suite for the exp.1 fixes; it found a multi-slash proxy URL bug on first run
|
2026-08-12 18:48:05 -07:00 |
|
ciregenz
|
b5f010fbb8
|
[eric] ui: every input inherits readable colours from the theme, so no field can be black on black (ENG-281)
|
2026-08-12 18:25:03 -07:00 |
|
ciregenz
|
471c0a9dd5
|
[eric] state: list thunks reject on non-2xx, so a failed fetch never resolves undefined into a reducer (ENG-277)
|
2026-08-12 16:59:34 -07:00 |
|
ciregenz
|
cd5c5b7666
|
[eric] chat: a docked browser takes a third of the chat instead of half (ENG-278)
|
2026-08-12 16:08:12 -07:00 |
|
ciregenz
|
17653af557
|
[eric] state: a wrong-shaped API answer changes nothing instead of throwing inside immer (ENG-277)
|
2026-08-12 16:05:49 -07:00 |
|
ciregenz
|
f4bb5f566b
|
[eric] signin: a not-ready install refuses locally instead of landing on the cloud's install_id error
|
2026-08-12 15:32:22 -07:00 |
|
ciregenz
|
9a1dffe811
|
[eric] notifications: six real controls instead of two, and workflow alerts stop obeying the agent toggle
|
2026-08-12 15:14:52 -07:00 |
|
ciregenz
|
e0209a27b7
|
[eric] onboarding: the intro stops animating blur and lands ~0.8s sooner (ENG-275)
|
2026-08-12 15:08:24 -07:00 |
|
ciregenz
|
eb85fe428b
|
[eric] browser: agent keystrokes can no longer land in the user's composer (ENG-252)
|
2026-08-12 14:39:57 -07:00 |
|
ciregenz
|
e7f7079f9e
|
[eric] canvas: stress the closed-position cap under flaky-backend and long-life pressure; 200 cards x 30 strip-restore cycles lose nothing and the map stays bounded at 3000 churned cards
|
2026-08-12 13:21:29 -07:00 |
|
ciregenz
|
41b19f5912
|
[eric] canvas: a collapsed card shows whether its agent is still working, on the title row where it never competes with the content
|
2026-08-12 13:19:23 -07:00 |
|
ciregenz
|
13de02f91a
|
[eric] canvas: the closed-position cap clears a real board (a 60-card board lost 10 spots at 50), with a guard that pins both the bound and the restore
|
2026-08-12 13:11:00 -07:00 |
|
ciregenz
|
eb21e6eb9b
|
[eric] canvas: closed-card positions are capped at 50 instead of remembered forever; the reconnect pill confirms it healed instead of just vanishing
|
2026-08-12 13:01:18 -07:00 |
|
ciregenz
|
df32505aca
|
[eric] compounding-growth pass: zOrders is pruned on every card removal, a model switch persists so the notice heals once, orphaned app workspaces are listable and deletable, and two browsers opened in the same millisecond no longer collide into one
|
2026-08-12 11:17:46 -07:00 |
|
ciregenz
|
0431844621
|
[eric] ui: every Alert in the app inherits the design tokens from one theme override, so stock Material blue cannot leak through any of the ~15 call sites
|
2026-08-12 10:35:22 -07:00 |
|
ciregenz
|
ab3a611c4a
|
[eric] models: the retired-model notice stops re-nagging on every poll and wears the app's own pill styling instead of stock Material blue
|
2026-08-12 10:20:41 -07:00 |
|
ciregenz
|
e5bdca7d2a
|
[eric] canvas: a collapsed card shows the newest ShowUI a running skill emits; staleness is now work-after-the-widget, not its name (ENG-272)
|
2026-08-12 09:20:53 -07:00 |
|
ciregenz
|
af94907144
|
[eric] canvas: offscreen collapsed cards skip rendering, so a long-lived board pans like a fresh one (dropped frames 54 -> 1 at 4x CPU throttle, ENG-261)
|
2026-08-12 09:17:20 -07:00 |
|
ciregenz
|
f8f119a892
|
[eric] canvas: exiting a screen-filling card holds the chrome down through the shrink animation, instead of painting tidy/zoom over the still-large card
|
2026-08-12 02:26:51 -07:00 |
|
ciregenz
|
0b0a5d78ca
|
[eric] agents: a garbled dashboard file can no longer wipe the board; the sessions list fails loud instead of answering empty, and an unscoped fetch loses its delete authority
|
2026-08-12 02:10:41 -07:00 |
|
ciregenz
|
9ece424d1f
|
[eric] workflows: a running workflow gets a real agent card, so its browsers dock inside it and are reaped with it; the card goes when the run stops (ENG-256)
|
2026-08-12 01:28:54 -07:00 |
|
ciregenz
|
00624f230c
|
[eric] canvas: a card tiled to fill the screen hides the floating chrome the same way fullscreen does, so tidy and zoom stop sitting on its composer (ENG-259)
|
2026-08-12 01:25:30 -07:00 |
|
ciregenz
|
a3882f2e27
|
[eric] browser: a docked browser follows its chat while the chat is collapsed, instead of painting at the spot the chat used to be (ENG-260)
|
2026-08-11 23:24:31 -07:00 |
|
ciregenz
|
43c0580438
|
[eric] dashboard: a new dashboard shows the empty-canvas hero again; the emptiness check counted sessions from every OTHER dashboard too
|
2026-08-11 21:37:39 -07:00 |
|
ciregenz
|
62e707293e
|
[eric] models: retire the free tier (nothing mints it, existing installs migrate off) and drop the silent mid-run pin to Haiku it carried; pull Fable, which was selectable and never worked
|
2026-08-11 21:00:38 -07:00 |
|
ciregenz
|
3ac55520d6
|
[eric] browser: the upload tool also finds inputs inside shadow roots and embedded frames, and a refused path names the exact staging copy that unblocks it (ENG-47)
|
2026-08-11 20:22:10 -07:00 |
|
ciregenz
|
ba97d141ee
|
[eric] browser: agents can attach a file to an upload field without the OS picker; the path is allow-listed backend-side so a hostile page cannot turn it into exfiltration (ENG-47)
|
2026-08-11 20:10:36 -07:00 |
|