abccodes
fcc337c848
[aidan] fix/oauth: drop hardcoded "Claude" from the connect success page
2026-06-25 18:04:57 -07:00
abccodes
c60d26e631
[aidan] fix/free-trial: clear trial on subscription connect so a connected sub takes over immediately
2026-06-25 18:04:53 -07:00
ciregenz
05432cd680
[eric] approvals: Always-approve persists per-tool via a shared read/write slot resolver
2026-06-22 04:00:09 -07:00
ciregenz
633033245b
[eric] webapp-cache: drop a stray em-dash in run.sh comment
2026-06-22 02:53:33 -07:00
ciregenz
7b3e298037
[eric] sessions: purge all per-session memory on close/delete via one chokepoint
2026-06-22 02:51:42 -07:00
ciregenz
ec8fc4b7c0
[eric] webapp-cache: validate-or-nuke half-installed warm cache, heal off the hot path
2026-06-22 02:51:30 -07:00
SirKentut and ciregenz
936f33033a
[pierre] fix: self-heal half-installed vite warm cache
...
An npm install killed mid-warm leaves node_modules/ populated but no .bin/, so _ensure_warm_cache (which only checked the dir exists) trusted the half-tree forever and every app symlinked to it died with `vite: command not found`. Gate the cache on .bin/vite existing, and harden the app's frontend/run.sh skip-install guard the same way.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
(cherry picked from commit 998e8605c6 )
2026-06-22 02:47:17 -07:00
ciregenz
be41094c80
[eric] outputs: version-history routes + mount + delete cleanup
2026-06-22 02:41:18 -07:00
ciregenz
8d1c3f2b8c
[eric] outputs: content-addressed app version store (blobs + manifests)
2026-06-22 02:41:18 -07:00
ciregenz
cce8f62ba2
[eric] free-trial: bounded re-check after 9router start so a lagging provider list can't shadow a sub
2026-06-22 00:33:30 -07:00
ciregenz
064361536a
[eric] free-trial: arm waits for 9router so a backgrounded sub isn't shadowed to haiku
2026-06-22 00:09:17 -07:00
ciregenz
45e285916c
[eric] merge eric/skills-settings into eric/app-publishing
2026-06-21 22:03:13 -07:00
ciregenz
1d7fadca77
[eric] tokens: pill shows new (uncached) tokens not cached re-reads; context bar keeps full size
2026-06-21 21:40:33 -07:00
ciregenz
ee5b5c2cea
[eric] publish: split 379-line monolith into scan/build/cloud modules + memoize scan by source hash
2026-06-20 03:06:44 -07:00
ciregenz
f611703886
[eric] outputs: remove two dead pass no-ops
2026-06-19 21:20:46 -07:00
ciregenz
6a8197c05b
[eric] publish: never bundle secret-shaped files (.env, private keys) into a public app
2026-06-19 21:20:46 -07:00
ciregenz
7a9eb214e9
[eric] publish: neutralize vite-plugin-terminal during build so older workspaces build clean
2026-06-19 20:19:44 -07:00
ciregenz
c722641fec
[eric] settings: PATCH diff-merge save closes renderer-vs-agent lost update; per-loop write lock
2026-06-19 18:38:02 -07:00
ciregenz
1cf843d965
[eric] settings-agent: shared secret-scanner (backend/common) + fail-safe value-shape redaction + second-wall credential restore + unified settings write lock
2026-06-19 18:04:43 -07:00
ciregenz
ef1c7a28e2
[eric] publish: don't embed the install token in preview app JS; stub OUTPUT_* (run only when published)
2026-06-19 17:47:25 -07:00
ciregenz
ab30c08733
[eric] publish: switch hosting apex to openswarm.host (bought) from openswarm.dev
2026-06-19 16:45:30 -07:00
ciregenz
abcd334b34
[eric] publish: OUTPUT_COMPUTE/OUTPUT_LLM runtime in preview + /outputs/llm endpoint + skill doc
2026-06-19 04:57:06 -07:00
ciregenz
21a0694914
[eric] publish: send output_id + override to cloud so republish reuses the slug
2026-06-19 04:15:02 -07:00
ciregenz
6e3ccd1824
[eric] skills: harden skills.sh resolver, optional GitHub token (60->5000/hr), real default-branch fallback when main/master miss, deterministic skill-path tie-break
2026-06-19 04:08:53 -07:00
ciregenz
5902352ef9
[eric] skills: unify storage so every user/imported skill is a folder (one write path); flat stays read-compat and is superseded on write
2026-06-19 04:07:09 -07:00
ciregenz
f866a3717c
[eric] skills/settings-agent: scan community SKILL.md+files for secrets & reframe install risk (agent-instructions, not just scripts); extract apply_settings_update so the tool stops calling the PUT route as a fn
2026-06-19 04:03:58 -07:00
ciregenz
72433fced0
[eric] skills: atomic skill-index write + corrupt-read resilience (preserve aside, never brick), mirroring the settings store
2026-06-19 03:37:23 -07:00
ciregenz
371b72ddd1
[eric] settings-agent/skills: fix concurrent-write lost update (serialize), registry install slug clobber (dedup), dialog stale-response races, partial-write + skills.sh boundary hardening
2026-06-19 03:32:16 -07:00
ciregenz
722a9e896a
[eric] publish: desktop build/scan/bundle + publish/preflight/unpublish endpoints
2026-06-19 03:28:27 -07:00
ciregenz
d714dfaee1
[eric] skills: folder skills round-trip through .swarm/zip import (supporting files preserved via the entity files() channel, not flattened)
2026-06-19 03:17:44 -07:00
ciregenz
a0af8476c2
[eric] settings-agent: thread selected_setting_ids -> focused context block so users can point the agent at specific Settings rows (targeting aid, not a gate)
2026-06-19 03:01:05 -07:00
ciregenz
3c950b01f8
[eric] skills: skills.sh wild-registry source (live search) + GitHub-trees install resolver w/ script disclosure, inert install, path-traversal guard
2026-06-19 02:57:58 -07:00
ciregenz
d908209a85
[eric] skills: multi-file folder skills (SKILL.md + supporting files) w/ legacy flat compat; inject folder path for on-demand provider-agnostic reads
2026-06-19 02:50:33 -07:00
ciregenz
1a4cccf3cd
[eric] settings-agent: always-on SettingsRead/SettingsWrite MCP server + guarded /api/settings-meta endpoint, wired into every run
2026-06-19 02:47:38 -07:00
ciregenz
f094de5fbd
[eric] settings-agent: typed powering-credential resolver + schema-derived redactor + exhaustive no-suicide invariant test
2026-06-19 02:42:56 -07:00
ciregenz
b7450f885a
[eric] merge winv2: win startup speedups + skill-registry seed, release 1.3.87
2026-06-19 00:57:57 -07:00
ciregenz
4ae97e5de0
[eric] throttle: emit rate_limited on exhausted backoff + muted auto-clearing pill (no error card)
...
(cherry picked from commit 03a9233b860683ae0f9d15b9e9efda32763c7d41)
2026-06-19 00:25:55 -07:00
ciregenz
f0cb676afb
[eric] permissions: read-only MCP actions auto-allow by default; writes still ask
...
(cherry picked from commit 03f3ce05be2c555990e7e6486859c48f0cd3c94c)
2026-06-19 00:25:54 -07:00
ciregenz
40c863e9cf
[eric] integrations: add GitHub MCP (remote http server + one-click OAuth)
...
(cherry picked from commit 901e3bf98244d3e599db5f3f05f4dc2ce943888e)
2026-06-19 00:25:54 -07:00
ciregenz
db6c5c4d9d
[eric] agents: idempotent id-keyed message commit so a stop racing the SDK envelope can't append a duplicate reply
2026-06-18 18:44:25 -07:00
ciregenz
c1503eae97
[eric] agents: make Stop instant: commit the partial + free the task before the slow SDK teardown, and ignore a superseded task's late teardown
2026-06-18 18:24:54 -07:00
ciregenz
a716b43df1
[eric] agents: after a mid-stream stop, rebuild history from session.messages so resume/follow-ups see the partial reply
2026-06-18 04:36:23 -07:00
ciregenz
9a622c48e2
[eric] agents: keep the partial reply when a stream is stopped mid-flight
2026-06-18 04:00:47 -07:00
ciregenz
8b63e3d7c6
[eric] settings: add reset-to-defaults endpoint (preferences to defaults, keep connections + sign-in)
2026-06-17 23:31:26 -07:00
Eric
ec0f9600bc
[eric] backend: remove cold-start diagnostics, keep the fix + slim lifespan timer
...
- the is_running() fast-fail fix (v1.3.91) verified cold backend-http-ready
23.5s -> 3.86s and warm 5.0s -> 3.32s on the signed build, no 9Router regression
- strip the [perf] bg entry logs from mcp/skill/settings/service/9router now that
the stall is diagnosed; keep Apps.py per-lifespan timing but only print a
lifespan over 50ms plus the total (cheap regression tripwire)
- document the root cause + fix + before/after in docs/perf/winv2/README.md
2026-06-17 19:28:23 -07:00
Eric
24df3e8fac
[eric] backend: fast-fail is_running() to kill the ~18s cold-start event-loop freeze
...
- faulthandler on the signed cold build caught the asyncio loop frozen in
socket.create_connection inside is_running() (process.py): a synchronous
httpx.get to "localhost:20128" called ~5x on the boot path before 9Router is up
- on Windows a dead-port connect to "localhost" stalls ~7s each (tries ::1 first,
loopback refusal is slow), freezing the loop ~18s so uvicorn could not answer
the health probe -> cold backend-http-ready was ~23s
- fix: probe 127.0.0.1 with a 0.3s TCP timeout first (measured 306ms vs ~7s), only
HTTP-confirm when the port is open; 9Router binds 0.0.0.0 so reachability is
unchanged. drop the faulthandler diagnostic from main.py
2026-06-17 19:06:10 -07:00
Eric
035ef26c0f
[eric] backend: faulthandler stack-dump + settings boot log to catch the cold loop stall
...
- v1.3.89 cold proved two stacked stalls: ~5s in is_running() (sync httpx) and a
bigger ~13s BEFORE any background task runs, a silent event-loop freeze
- add faulthandler.dump_traceback_later(7s, repeat) to a temp file so a dump lands
inside the 13s window and names the exact synchronous call the loop is stuck in
- add an entry log to settings._boot_router_then_sync (first startup bg task)
- diagnostic only; reverted once the stall is pinned
2026-06-17 18:40:01 -07:00
ciregenz
c577382943
[eric] oauth: complete Claude callback server-to-server, not a cross-port browser 302 (fixes browser-dependent 'Connecting' hang from #84 )
2026-06-17 18:24:33 -07:00
Eric
90aa66f6ce
[eric] backend: timestamp each startup background task to pin the cold-start loop stall
...
- instrumented cold v1.3.88 proved the lifespans are 141ms even cold; the ~18s
cold gap is a backgrounded create_task blocking the event loop AFTER lifespan
startup but BEFORE uvicorn reports ready (what the health probe waits on)
- add [perf] entry/segment logs to the post-startup background tasks: mcp refresh,
skill refresh, 9router ensure (+ prelude bisection), and svc._post/_post_or_spool
- logging only, no behavior change; next cold log names the exact blocking call
2026-06-17 18:11:46 -07:00
ciregenz
6b8750efaf
[eric] 9router: rotate the unbounded request-details log + cap node heap, fixes the idle OOM crash
2026-06-17 16:20:59 -07:00