Commit Graph
15 Commits
Author SHA1 Message Date
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 2151802f41 [eric] docs: record winv2 cold-start source audit, mark DEBUGLETON hypothesis disproven
- audited all 16 lifespans + the service client in source: every body is trivial
  (yield / makedirs / early-return migrate / fire-and-forget svc.sync)
- the no-op debug() shipped and verified live but cold stayed 21.5s, so the
  DEBUGLETON scan was not the cold driver; residual ~16s is cold first-run paging
- next cold build with the new [perf] markers pins it or confirms distributed I/O
2026-06-17 03:22:10 -07:00
Eric fa8daf2e76 [eric] perf: ROOT CAUSE of cold start found -- swarm-debug DEBUGLETON scandir scan on boot path
- debug() -> Debugleton().find_file_info -> build_structure recursive os.scandir walk runs synchronously on the bind path

- cold (uncached fs) ~17s, warm ~80ms; explains why defender + file-count did nothing (it is a scandir walk)

- proposed safe fix: no-op debug() when OPENSWARM_PACKAGED=1 (skip the scan in prod); expect cold ~22s -> ~5s
2026-06-17 02:24:29 -07:00
Eric afbfb8f82a [eric] perf: item 5 (defender exclusion) measured -- NO cold benefit; cold is not defender
- cold 21.4s WITH exclusion vs 22.5s without; items 1+3 also no change

- two defender-targeting fixes both ~0 -> residual cold is disk I/O + interpreter init + squirrel first-run, not AV

- recommend removing the exclusion (weakened AV for no gain); bank the wins (cold 54-138->22s, warm 9-10->5s)
2026-06-17 02:12:15 -07:00
Eric c667a16206 [eric] perf: measure #9 items 1+3 on signed build -- NO cold benefit (negative result)
- python-env 13554->9285 files (31% fewer) but cold stayed 22.4s vs 22.5s

- cold is native-binary-bound (claude.exe 242MB + .pyd/.dll), not file-count; zip/pyc only touch pure-python

- real cold lever is item 5 (defender exclusion) or trimming native deps; warm 5s already under goal
2026-06-17 01:33:26 -07:00
Eric 6d0e6bbf04 [eric] perf: mark #9 items 1+3 enabled + validated (import-clean, 31% fewer files) 2026-06-17 01:09:26 -07:00
Eric ff432466bf [eric] perf: re-verify task #10 on signed v1.3.86 (identical bits to abandoned 1.3.87)
- download 371.5MB @ 27.1MB/s, authenticode valid; install 6.3s

- cold 22.6s, warm 5.0s, asar 2.1MB, skills live total=17 -- all on the signed 1.3.86 build
2026-06-17 00:49:58 -07:00
Eric 9f30c58d28 [eric] perf: task #10 results verified on signed v1.3.87 build
- signed installer (authenticode valid), 371MB @ 23.5MB/s; install ~9s

- cold backend-ready 54-138s -> 22.5s; warm 9-10s -> 5.0s (under 10s goal)

- asar 607MB -> 2.1MB; skills catalog live total=17 (bug #1 confirmed); validate 5/5 pass

- add before/after startup graph
2026-06-17 00:08:26 -07:00
Eric 41f812f7d6 [eric] app-builder: ship webapp node_modules as .tar.gz, not pre-extracted (build perf)
- pre-extracting ~30k files into resources blew the windows build past 50min (squirrel lzma on tiny files) + bloated the installer

- revert step 4b to a single node_modules.<digest>.tar.gz (mirrors mac); runtime extracts to warm cache in the background at startup (off the create path)

- runtime _bundled_extracted_modules() stays as a harmless fallback (returns None -> tar path)
2026-06-16 23:44:21 -07:00
Eric 623a819457 [eric] perf: task #10 download-speed + signature tracker for the signed build
- times gh release download (MB/s), verifies authenticode, hands off to validate_packaged.ps1
2026-06-16 22:38:47 -07:00
Eric 58c2b6f411 [eric] perf: task #10 validation kit for the signed packaged build
- TASK10_CHECKLIST.md: produce signed build, verify signature, install, cold-start, GUI checks

- validate_packaged.ps1: automated structural + perf checks (verified it flags the unfixed 1.2.82)
2026-06-16 22:29:55 -07:00
Eric 947a6c1db5 [eric] perf: draft opt-in defender exclusion helper for windows cold-start (#9 item 5)
- scripts/add-defender-exclusion.ps1: dry-run default; -Apply/-Remove (admin); -Status

- excludes %LOCALAPPDATA%/%APPDATA%/~ openswarm dirs; kills defender cold-scan entirely

- security-sensitive: opt-in only, never silent; settings-toggle design documented, not auto-applied
2026-06-16 22:23:11 -07:00
Eric 8bc899ce74 [eric] perf: exclude duplicated python-env + build-staging from the asar (#9 item 4)
- inventory: 607MB asar was ~605MB duplication (python-env 408MB + build-staging 197MB)

- both already ship unpacked in resources/; runtime reads resources/, never the asar

- add build.files exclusion -> asar ~607MB -> ~2MB; kills the 639MB cold-read on first launch

- add inspect_asar.js inventory tool; validate asar size + boot on a packaged exe
2026-06-16 22:20:17 -07:00
Eric dcd4f6f149 [eric] perf: draft pyc-only site-packages strip to shrink defender cold-start (#9 item 3)
- standalone, dry-run by default, NOT wired into the release build (build-gated)

- strips 3352 .py (26.9MB) from site-packages to sourceless .pyc; mechanism proven on bundled 3.13

- scope: site-packages only (keeps backend source for the debugger); validate on a packaged exe
2026-06-16 22:15:45 -07:00
Eric 24a767eec9 [eric] perf: winv2 windows startup + app builder profiling, tracking doc, graphs
- warm boot floor 8256ms -> 857ms; app builder download + create breakdown measured

- harnesses, csv, dependency-free svg graphs, per-step savings table, #9 plan
2026-06-16 21:58:39 -07:00