Peter Steinberger
bbbd70542b
feat(sessions): recover offline device placements ( #126284 )
...
* feat(sessions): recover offline device placements
* chore(protocol): refresh session placement models
* perf(ui): lazy-load session placement recovery
* test(ui): remove dropdown timing assertion
* test(ui): await committed cloud recovery route
* fix(sessions): complete explicit abandonment locally
* fix(sessions): fence lists by runner availability
* fix(ui): preserve canonical session freshness
* fix(sessions): preserve recovery contracts after rebase
* test(ui): await durable cloud recovery entry
* test(gateway): complete current runner fixtures
* fix(gateway): publish runner availability edges
* fix(ui): preserve shared session freshness
* fix(ui): preserve canonical sidebar session state
* fix(sessions): preserve abandoned partials and run-owned replies
* fix(sessions): resume durable abandonment retries
* test(gateway): compose provisioning replay with runner availability
* fix(sessions): publish recovered move transitions
2026-08-20 09:59:59 -07:00
Peter Steinberger
0a86702241
feat(github): authorize agent identities from Settings ( #126474 )
...
* feat(github): add device authorization lifecycle
* fix(github): harden device authorization lifecycle
* fix(github): refresh native tool display snapshot
* fix(github): refresh config and UI baselines
* refactor(github): break OAuth identity import cycle
* test: make gateway retry deadline assertion scheduler-safe
2026-08-19 17:41:58 -07:00
Peter Steinberger
0606e31d0e
feat(gateway): broker GitHub publication ( #126306 )
...
* feat(gateway): broker GitHub publication
* refactor(gateway): split publication owners
* fix(gateway): enforce publication branch authority
* fix(gateway): bind publication to remote identity
* fix(gateway): bind publication recovery to remote state
* fix(gateway): preserve publication git state
* fix(gateway): retain publication recovery authority
* fix(gateway): commit publication index atomically
* fix(gateway): narrow publication index errors
* refactor(gateway): keep publication CAS errors private
* fix(gateway): recover publication index transactions
* fix(agents): describe GitHub publication tool
* fix(gateway): harden publication base fetch
* fix(gateway): reject publication filter semantics
* fix(gateway): verify publication creation base
* refactor(agents): align publication tool options
* fix(gateway): isolate publication object lineage
* refactor(gateway): use shared table probe
* test(gateway): keep publication helpers in routed suite
* perf(ui): lazy-load GitHub publication request
* fix(gateway): preserve publication support contracts
* fix(gateway): recover publication before authority checks
* fix(gateway): fence local publication snapshots
* fix(android): format generated protocol models
* fix(gateway): harden publication recovery
* fix(gateway): fence publication recovery
* fix(ui): reset completed publication cycles
2026-08-19 11:05:12 -07:00
Peter Steinberger
6e458d84bf
feat(agents): configure per-agent GitHub identities ( #125199 )
...
* feat(agents): add managed GitHub identities
* fix(agents): use opaque GitHub setup handles
* style(codex): format managed shell environment call
* refactor(agents): own managed GitHub process identity
* chore(config): refresh baseline after rebase
* fix(ci): satisfy managed GitHub identity gates
* fix(ci): repair managed GitHub identity checks
* test(agents): align GitHub identity CI coverage
* fix(codex): scope login shell isolation
* fix(agents): let managed gh profiles authenticate
* fix(agents): harden GitHub identity setup
* test(gateway): align method suffix counts
* fix(ui): serialize GitHub identity mutations
* fix(protocol): generate GitHub configure requests
* test(ui): restore timers after identity tests
* fix(ui): preserve GitHub identity mutation ownership
* fix(agents): preserve native GitHub CLI auth
2026-08-17 15:54:03 -07:00
Peter Steinberger
f59e945013
feat(gateway): move sessions between Gateway and runners ( #125036 )
...
* chore: preserve session placement move work
* feat(gateway): move sessions between runners
* test(gateway): align recovery fixture with move barriers
* fix(protocol): format literal-only Swift initializers
* test(ui): prove session move terminal state
* refactor(gateway): narrow session move target fence
* fix(gateway): preserve pending result recovery ownership
* test(workers): migrate reclaim lifecycle fixtures
* refactor(gateway): keep move internals private
* test(gateway): align split bootstrap fixture with moves
* fix(gateway): recover session moves through exact intent
* refactor(gateway): derive move placement subtypes locally
2026-08-17 00:23:13 -07:00
Peter Steinberger
0de17482ae
feat(gateway,ui): quiet Where picker, placement chip, and projects read model ( #120804 )
...
* feat(gateway): projects.list groups known checkouts by repo identity
Implements docs/plan/runners.md milestone 4 derived projects read model.
* feat(ui): regroup the Where picker by gateway, devices, and cloud
* feat(ui): placement chip shows where a session runs with reclaim
Implements docs/plan/runners.md milestone 4 placement display and reclaim.
2026-08-12 00:21:23 -07:00
Vincent Koc
7741cbdaa7
test(gateway): cover published protocol artifacts ( #118799 )
...
* test(gateway): cover published protocol artifacts
* test(gateway): isolate Swift artifact proof
* test(gateway): compile Swift models portably
* test(gateway): align protocol metadata fixture
* test(gateway): install packed protocol as consumer
2026-08-04 03:26:29 +08:00