OXYGENHUB

Backlog: F6a and the database-locked fix logged da29defdcb97

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-28 21:11 UTC
Signature
✔ signed by Andy McCall
Hash
da29defdcb979896472dc431b2ba7404a6eaa041f949f38c5ac64c7c89e3ea45
Depends on
3c5c6ad2518a 75036530b621
Depended on by
57dfc51417fd
In bookmarks
agents-in-readme bare-hashes carried-not-removed carry-identical doctor-trust identical-sides keyless-tags main merge-remote-bookmark only-help-103 paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state switch-says
In tags
v0.1.0 v0.10.0 v0.11.0 v0.2.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
Edits
1 atom, 0 tree operations, 1 file

Browse the tree at this change

modified docs/backlog-overnight-2.md +13 −0
…
410 unchanged lines
411 411
  - **Andy asked:**
412 412
    - Why his pushes show "site token": his repositories metalgear, rstar-api and snake-oxy use hub.toml's site push token (c085…). Told him to make his own personal token and set it with `oxy config remote.earth.token`. Removing the site token waits for his OK.
413 413
    - The oxy equivalent of git-flow: bookmarks and `oxy merge` (a union, no merge change), proposals, tags. Answered.
414 +
- 2026-09-28 F6a done (oxygenflow#6, oxygenhub#21, closed by the changes).
415 +
  - **The runner** runs up to `max_jobs` jobs at once within a memory and vCPU budget (flow.toml).
416 +
    - It reports its free room when it claims, and the hub hands out only a job whose sandbox fits; a lone job may use the whole budget.
417 +
    - Preparing workspaces stays one at a time: shared repository caches, and the first clone's token in the environment.
418 +
    - Unit-tested budget; the hub was deployed before the runner.
419 +
  - **Measured honestly: parallel Rust jobs are slower on Earth's 4 cores.** Oxygen's run took 345 s with clippy beside test and build (clippy 46 s → 1 min 53 s, build 2 min 7 s → 4 min 49 s), against 284 s one at a time.
420 +
    - Earth's budget is therefore max_jobs 3, 24 GiB and **5 vCPUs**: one 4-vCPU Rust job at a time, with 1-vCPU and short jobs beside it.
421 +
    - The real speed-up is F6b (prebuilt dependencies, release without debug info).
422 +
  - **Found on the way:** OxygenFlow log appends failed with HTTP 500 "database is locked", losing log lines.
423 +
    - Cause: the hub's write transactions were deferred and read before writing, which SQLite fails at once whatever the busy timeout.
424 +
    - All 9 now begin IMMEDIATE (`db::begin_write`). A test of 16 concurrent appends fails with the old code and passes now.
425 +
    - Deployed; the next oxygenhub run passed with no new lock errors in the runner's log.
426 +
  - **Andy asked** whether an `oh` command, like GitHub's `gh`, should be its own repository. Recommended a crate in the oxygenhub workspace, since it shares hub-api and can test against a real hub. Asked where in the backlog he wants it; no answer yet.