ciregenz
|
02cda4c47a
|
[eric] security: mirror the executor sandbox gate into the public edge, with a drift test
|
2026-07-31 13:47:11 -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
|
98fa900dbf
|
[eric] dock: shrink-to-fit down to a 14px floor, magnify to an absolute size, and pin the rail's ends like the macOS Dock
|
2026-07-31 02:02:56 -07:00 |
|
ciregenz
|
1fee20f425
|
[eric] dashboard: un-minimizing wakes a parked browser wherever the camera is, with a grace so the flight back can't re-park it
|
2026-07-31 01:32:25 -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
|
ee287534d0
|
[eric] dashboard: minimizing a browser card actually frees its renderer (it used to keep a live one)
|
2026-07-31 01:16:06 -07:00 |
|
ciregenz
|
2572f9ff45
|
[eric] voice: label the model catalog with the latencies actually measured, not guesses
|
2026-07-31 00:10:03 -07:00 |
|
ciregenz
|
0d826b5daa
|
[eric] build: drop foreign-arch native prebuilds from the app, with a release gate to keep them out
|
2026-07-31 00:05:54 -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
|
ddedbe4662
|
[eric] tiling: tiles stop beside the minimized rail instead of sliding under it
|
2026-07-31 00:00:54 -07:00 |
|
ciregenz
|
eae4f067d9
|
[eric] tiling: a tiled chat is an open chat, so a collapsed one can't paint the white card
|
2026-07-31 00:00:51 -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
|
acfc6eb8e7
|
[eric] palettes: portal Cmd+K and Cmd+F to a body top layer so cards stop painting over them
|
2026-07-30 22:07:26 -07:00 |
|
ciregenz
|
97ddc89aa9
|
[eric] voice: tap-to-dictate stops itself when you stop talking instead of taping silence
|
2026-07-30 22:00:53 -07:00 |
|
ciregenz
|
664608b4a8
|
[eric] voice: warm whisper at boot, unload when idle, and stop guessing the server port
|
2026-07-30 21:49:16 -07:00 |
|
ciregenz
|
0c201eb2a2
|
[eric] tiling: one writer owns a tiled card's rect, so a stale camera can't freeze or whiten it
|
2026-07-30 20:45:54 -07:00 |
|
ciregenz
|
d9c2b728d5
|
[eric] tiling: one macOS rule set for every card type, Settings and Workflows windows included
|
2026-07-30 19:31:21 -07:00 |
|
ciregenz
|
42ef6be571
|
[eric] canvas: right-drag marquee-selects the empty canvas again; the menu waits for a click-only release
|
2026-07-30 19:31:13 -07:00 |
|
ciregenz
|
401120094e
|
[eric] browser: a tab dragged out of an agent's card stays that agent's browser, so it isn't spawned twice
|
2026-07-30 18:49:03 -07:00 |
|
ciregenz
|
1e2022d1cb
|
[eric] browser: show a collapsed agent's browser as a frozen shot, not a capture that never lands
|
2026-07-30 18:49:03 -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
|
2385a348d5
|
[eric] shortcuts: drop the global Cmd+L that wiped a transcript with no confirm and collided with the composer shortcut
|
2026-07-30 18:19:18 -07:00 |
|
ciregenz
|
c786a849bc
|
[eric] canvas: keep guest pages owning their plain wheel while host content follows scroll focus
|
2026-07-30 18:08:06 -07:00 |
|
ciregenz
|
8d878db589
|
[eric] canvas: make cmd/ctrl+wheel always zoom, and stop cards owning the plain wheel forever
|
2026-07-30 17:35:32 -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 |
|
ciregenz
|
6c6fcd96c2
|
[eric] cards: collapse a draft chat to the glass pill like every other card, not the full white card
|
2026-07-30 17:18:43 -07:00 |
|
ciregenz
|
b5a832a99c
|
[eric] dock: shrink tiles to fit like the macOS Dock, scroll only past the 18px floor
|
2026-07-30 17:18:27 -07:00 |
|
ciregenz
|
dfa5dbd636
|
[eric] web: send a bot wall to our own Chromium instead of handing the model a challenge screen
|
2026-07-30 16:52:27 -07:00 |
|
ciregenz
|
d5ab082019
|
[eric] spaces: make the strip scrollable so off-screen spaces are reachable (wheel, drag, chevrons, keep-active-in-view)
|
2026-07-30 16:44:44 -07:00 |
|
ciregenz
|
108ef03451
|
[eric] web: let Startpage say 'nothing matched' and 'I refuse' differently so a closed engine stops costing its budget
|
2026-07-30 16:35:51 -07:00 |
|
ciregenz
|
37100e9b5c
|
[eric] web: ask the archive for the raw snapshot so we stop returning its calendar toolbar as the article
|
2026-07-30 16:29:24 -07:00 |
|
ciregenz
|
a78d6276c0
|
[eric] web: extract the article instead of the nav bar, and stop calling a dead domain a security refusal
|
2026-07-30 16:25:05 -07:00 |
|
ciregenz
|
119e4a916e
|
[eric] web: stop paying a dead search engine its full tier budget on every query, and let a 403 still try the lite frontend
|
2026-07-30 16:24:58 -07:00 |
|
ciregenz
|
29f4c26a35
|
[eric] dock: swap the hard blue selection outline for the rail's accent ring
|
2026-07-30 16:16:50 -07:00 |
|
ciregenz
|
318957b39c
|
[eric] dashboard: minimize Settings and the Workflows hub to the rail instead of closing them
|
2026-07-30 16:16:50 -07:00 |
|
ciregenz
|
77b3595264
|
[eric] context menus: portal the card menu to body, widen the row schema, cover every shell surface
|
2026-07-30 15:13:32 -07:00 |
|
ciregenz
|
b8cfaff690
|
[eric] web: stop the fetch cascade on a body with no text layer instead of buying a paid summary of nothing
|
2026-07-30 14:55:56 -07:00 |
|
ciregenz
|
1172fb07c5
|
[eric] web: say bot challenge, not rate limit, since retrying the same query never clears it
|
2026-07-30 14:40:48 -07:00 |
|
ciregenz
|
65430e1234
|
[eric] web: fall back to the Wayback Machine when the live page is dead or walled
|
2026-07-30 14:40:48 -07:00 |
|
ciregenz
|
88abab0c1c
|
[eric] web: extract PDF text and refuse other binaries instead of dumping raw bytes into the model
|
2026-07-30 14:40:48 -07:00 |
|
ciregenz
|
f30677e255
|
[eric] web: move the search engines into tools/search so the folder stays under the item cap
|
2026-07-30 14:34:32 -07:00 |
|
ciregenz
|
d84f2d5301
|
[eric] web: add Startpage as a second independent search engine so one bot challenge cannot close free search
|
2026-07-30 14:34:29 -07:00 |
|
ciregenz
|
356f7a4ea1
|
[eric] minimized: one glass rail for apps and browsers, real thumbnails, no live webview behind a parked card
|
2026-07-30 14:31:30 -07:00 |
|
ciregenz
|
629e58a59b
|
[eric] window-controls: fan all three arc lights by data-light, green was stacked on red and ate the close click
|
2026-07-30 14:31:24 -07:00 |
|
ciregenz
|
559bbbe768
|
[eric] web: send the keyless search rungs through a Chrome-fingerprint client (measured 4/8 -> 8/8 on DuckDuckGo)
|
2026-07-30 14:28:49 -07:00 |
|
ciregenz
|
3ea74d67a5
|
[eric] web: bound the search/fetch cascade with one wall-clock deadline so the later tiers are reachable
|
2026-07-30 14:21:27 -07:00 |
|
ciregenz
|
600c04dd02
|
[eric] history: stop losing chats (merge live sessions, drop agent-spawned children, sort by last activity, never render a blank row)
|
2026-07-30 12:59:45 -07:00 |
|
ciregenz
|
7fb3b85a64
|
[eric] dock: show the favicon INSTEAD of the browser glyph (it used to sit behind it), glyph returns if the favicon fails
|
2026-07-30 12:03:29 -07:00 |
|
ciregenz
|
75bc138601
|
[eric] dashboard: dock Settings opens as a canvas window (shared card chrome), not a modal
|
2026-07-29 21:12:07 -07:00 |
|
ciregenz
|
162eacc543
|
[eric] notes: delete the sticky-note feature end to end
|
2026-07-29 20:32:24 -07:00 |
|
ciregenz
|
c10db35ebc
|
[eric] history: move chat history from the dock to the top island and make it global (was filtered to the current dashboard)
|
2026-07-29 20:17:17 -07:00 |
|
ciregenz
|
fac02bfccc
|
[eric] shell: uncrop the spawn-pill shadow, shortcut tooltip on the composer, always-visible glass title bubble (incl. fullscreen), and collapsed cards show a plain-text answer
|
2026-07-29 20:13:56 -07:00 |
|
ciregenz
|
5b9d0dcce6
|
[eric] dock: drop the New-chat tile (the always-present spawn pill already owns that action)
|
2026-07-29 19:59:27 -07:00 |
|
ciregenz
|
776f4068f3
|
[eric] dock: Applications lists YOUR OpenSwarm apps (was the machine's /Applications via a launcher whose click IPC never existed)
|
2026-07-29 19:58:02 -07:00 |
|
ciregenz
|
e321a35894
|
[eric] voice: drop whisper --convert (demanded ffmpeg on PATH at boot; Finder apps have none = dictation dead in prod), writable cwd, drain stderr, 60s cold-load budget
|
2026-07-29 16:51:30 -07:00 |
|
ciregenz
|
04f66b2cd0
|
[eric] hygiene: gitignore haptics node-gyp build output (mirrors mouseclamp)
|
2026-07-29 16:38:32 -07:00 |
|
ciregenz
|
11ea778884
|
[eric] tests: update providerUsage tests to the landed 150-title cap + convo char budget (4 green)
|
2026-07-29 16:38:32 -07:00 |
|
ciregenz
|
f0229bef50
|
[eric] tests: land the 3 stranded browser capacity-retry tests from the windows-churn batch (64 green)
|
2026-07-29 16:38:32 -07:00 |
|
ciregenz
|
2ee25f80fc
|
[eric] dashboard: cap live app webviews (closest-to-center wins) to bound memory
|
2026-07-29 11:22:27 -07:00 |
|
ciregenz
|
cc24f5adaf
|
[eric] crash-safety: cap parallel CDP detach at 10 concurrent (unbounded could flood the debugger host at pathological card counts and leave one attached at unmount)
|
2026-07-29 01:05:33 -07:00 |
|
ciregenz
|
8fedff40c1
|
[eric] efficiency: preflight classifier stamps cooldown whenever it runs (was re-firing Haiku every turn on concrete prompts); remove warm_prompt_cache (billed N no-op requests/dashboard-mount, warmed nothing: wrong prefix, below cache floor, no cache_control)
|
2026-07-29 01:01:26 -07:00 |
|
ciregenz
|
b1f0f5b74e
|
[eric] perf: mass-delete parallel-detaches browsers too (removeBrowserCardsCleanly); flat latency, same crash-safe ordering
|
2026-07-29 00:53:52 -07:00 |
|
ciregenz
|
103a3af31a
|
[eric] perf: parallelize browser CDP detach on dashboard switch (serial added ~72ms/browser = 1.4s lag on a 20-card switch); views stay serial for GPU-surface release
|
2026-07-29 00:51:43 -07:00 |
|
ciregenz
|
cd7399b215
|
[eric] crash: orphan-prune serializes app-card teardown too (deleting several apps from the Views page ripped their webviews out in one pass = same GPU SIGSEGV)
|
2026-07-28 23:30:42 -07:00 |
|
ciregenz
|
028d9dcd62
|
[eric] crash: quiesce+detach outgoing webviews before dashboard-switch resetLayout (it unmounted every app/browser webview in one frame w/ CDP attached = GPU/browser SIGSEGV, the 'navigate away kills the app' self-quit)
|
2026-07-28 23:24:21 -07:00 |
|
ciregenz
|
4c483051b4
|
[eric] crash: serialize browser-card teardown on mass delete (was ripping all webviews out in one frame = GPU/browser-process SIGSEGV, the mass-delete self-quit); matches the already-safe view path
|
2026-07-28 23:11:53 -07:00 |
|
ciregenz
|
df0e4a2393
|
[eric] merge eric/onboarding into eric/dev; version 1.6.0
|
2026-07-28 22:20:34 -07:00 |
|
ciregenz
|
b1233da12c
|
[eric] tiles: chats also exit the tile on edge-drag; tile-menu runway shrunk to the 8px gap (it was overlaying the green button and eating its clicks)
|
2026-07-28 21:21:55 -07:00 |
|
ciregenz
|
7a74443b07
|
[eric] tiles: dragging an edge of a tiled browser/app exits the tile and resizes from its exact spot (macOS-style)
|
2026-07-28 21:17:31 -07:00 |
|
ciregenz
|
96a3e51c83
|
[eric] voice: aurora rebuilt as six interleaved alternating-hue wisps + single-hue base glow (adjacent same-order lobes and the L-to-R strip were the segmentation)
|
2026-07-28 20:53:20 -07:00 |
|
ciregenz
|
0469cfe74b
|
[eric] voice: aurora lobes overlap heavily in one tight hue family (wide-spread hues in separated lobes read as rainbow patches)
|
2026-07-28 20:49:56 -07:00 |
|
ciregenz
|
ad8d9ca240
|
[eric] voice: mic tap stops an active recording (async start ate the tap's press-end); composer mic tooltip shows the real dictation combo, not F5
|
2026-07-28 20:46:31 -07:00 |
|
ciregenz
|
ec9b576615
|
[eric] voice+onboarding: aurora hues widened/jittered/desaturated (three tight bands read segmented); prep prompt forbids fabricating specifics when evidence is empty
|
2026-07-28 20:44:41 -07:00 |
|
ciregenz
|
9ac91b94e4
|
[eric] ui: tile menu gets a hover runway + longer grace (vanished mid-approach); text size range widened to 0.8-1.35 (Tiny to Largest)
|
2026-07-28 19:04:41 -07:00 |
|
ciregenz
|
96c4639bdf
|
[eric] composer: placeholder is 'Ask me to do anything...' (dropped the 'sir' bit)
|
2026-07-28 18:52:11 -07:00 |
|
ciregenz
|
5d0bbb553c
|
[eric] design: Inter (bundled variable font) is the app-wide UI face; the serif-leaning stack read bookish, Inter is the Linear/Figma/GitHub-proven professional standard
|
2026-07-28 18:47:47 -07:00 |
|
ciregenz
|
f5908610d6
|
[eric] design: settings surface uses system sans throughout (serif brand face read bookish in dense panes; this is the Linear/Claude settings feel)
|
2026-07-28 18:41:40 -07:00 |
|
ciregenz
|
62521419df
|
[eric] design: settings de-vibe pass (usage $0.64 + continuous bars over pixel blocks, tools rows densified w/ one-line descriptions, skills form labels dropped, command chips unified neutral)
|
2026-07-28 18:37:24 -07:00 |
|
ciregenz
|
3b68101b42
|
[eric] shell: pre-React boot paint from persisted theme (reload flashed a flat white frame for ~400ms before the wash mounted)
|
2026-07-28 18:31:01 -07:00 |
|
ciregenz
|
d05afa04e0
|
[eric] design: history palette gets date groups + icon tiles + rounded hover rows (Raycast grammar), settings toggles never wrap, workflows empty state explains itself
|
2026-07-28 18:21:09 -07:00 |
|
ciregenz
|
37f7a7a8db
|
[eric] dashboard: docked APPS suppress their tether too; tiled geometry never transitions (occluded-window transitions pin at t=0 and freeze tiles); tiles + dock measures re-apply on window reveal
|
2026-07-28 18:16:01 -07:00 |
|
ciregenz
|
224dc04696
|
[eric] theme: stock wallpaper is a designed contrasting gradient (canvas + shell + onboarding stage), never flat white when no accent picked
|
2026-07-28 18:16:01 -07:00 |
|
ciregenz
|
70eb3cd846
|
[eric] dashboard: tiles start beside the dock rail (macOS model, covers half/quarter zones) + shell frame wears the accent wash always so the window edge is never white
|
2026-07-28 17:35:37 -07:00 |
|
ciregenz
|
35a281f4ad
|
[eric] voice: bundle per-arch whisper-server into the mac build (pinned v1.7.6, static + non-system-dylib gate; model stays the proven first-run download)
|
2026-07-28 17:27:05 -07:00 |
|
ciregenz
|
37bd642a48
|
[eric] voice: rebindable dictation shortcut (Settings recorder chip, live rebind across all 3 hotkey tiers; F5 default dropped since macOS routes it to Siri; voice_hold_to_talk now actually persists)
|
2026-07-28 17:27:05 -07:00 |
|
ciregenz
|
c8de032306
|
[eric] dock: dropping a browser/app on a collapsed chat pill expands the chat (used to park the card at -100000 = looked like the drop did nothing)
|
2026-07-28 17:12:04 -07:00 |
|
ciregenz
|
ab102bb857
|
[eric] dashboard: expand-chat mount deferred past the click paint (INP 504ms -> ~5ms sync)
|
2026-07-28 15:55:40 -07:00 |
|
ciregenz
|
3239ff8a47
|
[eric] dashboard: no tether arrow from a minimized chat pill (its live-shot already shows the link)
|
2026-07-28 15:55:40 -07:00 |
|
ciregenz
|
aeb2b3fb14
|
[eric] dashboard: fullscreen chat docks the real browser (slot in full view, posEl-aware tile applier w/ live camera tracking, dock re-measure on slot moves, no dupe embed)
|
2026-07-28 15:55:40 -07:00 |
|
ciregenz
|
bf49c2c528
|
[eric] win: sign the bundled claude.exe (AV-quarantine class) + require-signed gate + post-sign smoke
|
2026-07-28 15:49:59 -07:00 |
|
ciregenz
|
ac0f575d34
|
[eric] health: boot-time bundled-CLI integrity check rides the login-health pill with repair guidance
|
2026-07-28 15:49:59 -07:00 |
|
ciregenz
|
0d9e80d502
|
[eric] browser: capacity-retry the model call + classify the catch-all (free-pool 429 raw-card leak sealed)
|
2026-07-28 15:49:59 -07:00 |
|
ciregenz
|
2a42a1c460
|
[eric] agents: AV-repair card for missing CLI, stderr tail on masked exit-1 cards, group-unwrap in the fatal path
|
2026-07-28 15:49:59 -07:00 |
|
ciregenz
|
e16255e06a
|
[eric] agents: classify bundled-CLI-missing errors + unwrap exception groups to the real cause
|
2026-07-28 15:49:59 -07:00 |
|
ciregenz
|
8d98c8f24c
|
[eric] dock: slot height off percentages (nested-wrapper resolution pushed it out of the card), sub-agent browser tether also suppressed while docked
|
2026-07-28 15:11:41 -07:00 |
|