OXYGENHUB

Backlog 4: device sign-in logged 6e2b12dfe6ec

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-10-01 00:52 UTC
Signature
✔ signed by Andy McCall
Hash
6e2b12dfe6ecccd52bc888f4cb48d6ad5eb2f6acedc545f170a796f9236c7059
Depends on
332c1241a11c 61e9ad6ddc2d abdbc768c6e8
Depended on by
7cdc070ca541
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.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
3 atoms, 0 tree operations, 1 file

Browse the tree at this change

modified docs/backlog-overnight-4.md +3 −1
…
125 unchanged lines
126 126
2. - [x] **oxy on projects coming from Git**: say when a folder holding
127 127
   `.git` is skipped (oxygen#43), and honour `.gitignore` or offer to import
128 128
   it (oxygen#44).
129 -
3. - [ ] **Device sign-in** for apps and `oh` (oxygenhub#67): approve a code on
129 +
3. - [x] **Device sign-in** for apps and `oh` (oxygenhub#67): approve a code on
130 130
   the web with password and 2FA, and the app receives a scoped token. The
131 131
   Android client needs it.
132 132
4. - [ ] **An Android build image** for OxygenFlow (oxygenflow#19): JDK,
…
44 unchanged lines
177 177
- 2026-10-01 01:35 **S7 measured, not done.** The first commit of the Linux tree peaks at 2.7 GB (counting allocator; 3.1 GB resident): the walk holds every file's text (1.6 GB, shared with the change's inserts), building the change adds 0.5 GB, and encoding and storing adds 0.5 GB at the peak. Writing the change's encoding an edit at a time instead of through one CBOR value saved only 50 MB, so it was not kept. Under 2 GB needs the text never all in memory: the walk stores each added text file as its text blob as it reads it and keeps only the reference; the builder makes skeleton inserts (lines left out, a `TextRef` beside them, as history-only loads already hold changes); encoding, the commit's re-encoding, history rewrites and adding the change to a state take the skeleton and its texts. Rename detection still reads the contents of added files when files were removed. A day's careful work across objects, snapshot, commit and rewrite: left for a fresh start, with this as the design.
178 178
179 179
- 2026-10-01 01:40 **#43 and #44 done** (6ccc36f2, 0a4aa7fc). `.gitignore` and `.ignore` count below `.oxyignore` in each directory; the base's files are not matched against ignore rules (they apply to untracked paths only), which kept status at its speed on the Linux tree's 405 `.gitignore` files; an added file a later rule names drops out. Status (clean too), commit and `status --json` name folders holding a repository of their own. Andy's oxygen checkout now lists the five `games_to_port/` clones; listing the folder in `.oxyignore` quiets it (left to Andy). Flow run #156 passes.
180 +
181 +
- 2026-10-01 02:20 **Device sign-in done** (oxygenhub#67, f8f35f5f, deployed, Flow run #62 passes): `/api/v1/device/code` and `/device/token` in RFC 8628's shape, the `/device` approval page (signed in, choose scopes, approve or deny), the token made on the next poll so none is stored in the clear; `oh auth login` signs in this way, `--token` still works. Live check on oxygenhub.io: a code is issued and `/device` asks a signed-out visitor to sign in. The Android feedback file says how the app can use it.