ciregenz
|
a9da551425
|
[eric] browser: show a failed step as failed in the live overlay, with per-step timestamps
|
2026-07-31 14:33:16 -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
|
dcaf655b14
|
[eric] browser: measure browser time where the commands actually run, not from 18 self-reports
|
2026-07-31 14:00:19 -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
|
c9c25542b9
|
[eric] browser: never click a disabled submit, and turn the structural composer finder on
|
2026-07-31 13:03:59 -07:00 |
|
ciregenz
|
2c63367ae0
|
[eric] browser: a signed-in page is not a login wall just because it says sign in
|
2026-07-31 13:03:58 -07:00 |
|
ciregenz
|
0cf7d111c2
|
[eric] browser: rank a submit control instead of exact-matching a closed label set
|
2026-07-31 13:03:58 -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
|
5d8bf4102e
|
[eric] browser: only a verified delivery teaches a write skill, not a resend guard
|
2026-07-31 02:44:34 -07:00 |
|
ciregenz
|
a1c6c710eb
|
[eric] browser: reddit clears its composer without posting, so treat it as a ghost-drop host
|
2026-07-31 02:37:07 -07:00 |
|
ciregenz
|
b4074c3665
|
[eric] browser: never report a post as sent when no send was ever confirmed
|
2026-07-31 02:23:36 -07:00 |
|
ciregenz
|
013bf663ef
|
[eric] browser: a post that never confirmed is not a skill worth learning
|
2026-07-31 01:27:55 -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
|
17ab446945
|
[eric] browser: read script looks cheap first and only a decline buys the whole page
|
2026-07-31 00:51: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
|
4f4d5e8d55
|
[eric] browser: the read script asks for the whole page, not the model loop's smaller default
|
2026-07-31 00:02:57 -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
|
e989517c6c
|
[eric] lint: de-private the wall budget, trim error_classify under cap, drop stray ws_manager
|
2026-07-30 20:58:16 -07:00 |
|
ciregenz
|
f6ad6cfb91
|
[eric] browser: a run out of wall time delivers what it has instead of nothing
|
2026-07-30 20:50:37 -07:00 |
|
ciregenz
|
324ee47937
|
[eric] browser: a command stops waiting when the window closes under it
|
2026-07-30 20:44:22 -07:00 |
|
ciregenz
|
93e2730c2f
|
[eric] agents: a bare connection error is transient, so a network blip stops killing runs
|
2026-07-30 20:00:42 -07:00 |
|
ciregenz
|
f1f8464f1a
|
[eric] browser: reap idle agent cards so finished runs stop stacking live webviews
|
2026-07-30 19:47:20 -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
|
ece00223ae
|
[eric] browser: read answers lead with the answer, not with 'based on the page text provided'
|
2026-07-30 17:48:47 -07:00 |
|
ciregenz
|
78843dba2f
|
[eric] browser: a prose decline from the read script is a decline, not an answer
|
2026-07-30 17:31:16 -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
|
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
|
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
|
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
|
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
|
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 |
|