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
|
80934e5639
|
feat(ui): dispatch sessions to paired devices (#126187)
|
2026-08-19 01:11:49 -07:00 |
|
Peter Steinberger
|
4b0d573437
|
feat: session permission modes with worktree-scoped defaults (#124909)
* feat(gateway): add session permission modes
* feat(agents): enforce session permission policies
* test: cover session permission modes
* docs: explain session permission modes
* fix(agents): preserve apply patch default root
* feat(codex): map session permission modes
* feat(ui): add session permission controls
* test: cover session permission surfaces
* fix(agents): enforce session permissions from entry
* fix(codex): pass params object to requirements reader
* fix(codex): honor session permission modes
* fix(codex): preserve exec approval floors
* chore: revert changelog edit (release-owned)
* test: align full-mode promotion with upstream semantics
* chore(protocol): regenerate session permission models
* docs: register session permission modes
* fix(ui): use shared permission dropdown
* fix(sessions): restore permission mode contracts
* fix(ci): record session permission startup JS growth in the budget baseline
* refactor(agents): prepare session exec mode at dispatch
Host dispatch owns permissionMode→exec override preparation; the codex
plugin consumes prepared facts and the SDK barrel export is removed,
keeping the plugin-sdk surface at its recorded budget.
* test: type exec mode fixtures as ExecMode
* fix(codex): require admin scope for yolo permissions
* test: isolate codex permission command state
* ci: refresh PR checks against current main
* ci: refresh checks after gateway test repair
* test: fix main-fallout CI suites
* chore: refresh CI merge ref
* fix(worker): fence permission-mode cloud placements
* fix(sessions): clear worktree policy on detach
* chore(protocol): generate session permission mode enum
* test(gateway): type dispatch fixtures from session entries
* fix(ui): allow clearing session permission mode
* chore: refresh CI merge ref
* fix(ci): record permission picker startup growth in the budget baseline
* fix(gateway): gate session root projections
|
2026-08-17 04:37:35 -07:00 |
|
Peter Steinberger
|
0e65272e21
|
fix(ui): reject stale session delete confirmations (#124097)
* fix(ui): bind session deletes to listed identity
* fix(gateway): authorize guarded session deletes
* test(ui): expect guarded batch delete identity
|
2026-08-15 21:43:10 -07:00 |
|
Peter Steinberger
|
d2be00e171
|
feat(ui): persistent emoji session icons in the sidebar (#124034)
* feat(gateway): persist emoji session icons
* feat(ui): add persistent session icon menu
* docs: explain persistent session icons
* docs: list Set icon in the session context menu enumeration
* test(gateway): canonicalize group defaults workspace path
* fix(ci): sync session icon protocol coverage
* fix(sessions): enforce RGI emoji sequences for session icons
ClawSweeper P2: single non-emoji graphemes like 漢 passed the segmenter-based predicate. Anchored \p{RGI_Emoji} admits exactly one interchange emoji sequence and deletes the length cap and ASCII carve-out.
* fix(sessions): compile RGI emoji validation
|
2026-08-15 00:15:55 -07:00 |
|
Josh Lehman
|
bb5ef9872a
|
fix: resume sessions interrupted by gateway restarts (#122644)
* fix: resume sessions interrupted by gateway restarts
* fix: make session recovery retry-safe
* refactor: isolate restart session recovery
* test: track recovery temp directories
* fix: inherit recovery state under lifecycle lock
* fix: surface rejected recovery continuation
* fix: fence recovery continuation authority
* chore: regenerate plugin sdk api baselines
* test(gateway): track sessions.recover release train
|
2026-08-12 16:18:58 -07:00 |
|
Peter Steinberger
|
32894a3ba5
|
feat: start sessions from registered projects (#121465)
* feat(gateway): add project registry sessions
* fix(gateway): authorize project branch discovery
* test(gateway): reuse worktree test imports
* fix(protocol): register projects schema owner
* fix(gateway): gate project paths by write scope
* feat(control-ui): register projects from folder browser
* refactor(gateway): extract session diff baseline preparation
* fix(gateway): honor admin scope in project listings
|
2026-08-10 17:56:12 -07:00 |
|
Peter Steinberger
|
3621c4b511
|
feat: browse and start sessions inside agent workspaces (#121417)
* feat(gateway): allow workspace-contained browsing
* fix(ui): preserve canonical workspace selections
|
2026-08-09 23:57:46 -07:00 |
|
Peter Steinberger
|
34062ead20
|
fix(gateway): allow write-scoped session model changes (#120875)
|
2026-08-08 21:43:55 -07:00 |
|
Peter Steinberger
|
51944498eb
|
refactor(gateway): generalize bulk session patches (#120629)
* refactor(gateway): generalize bulk session patches
* fix(gateway): normalize bulk session fences
* refactor(gateway): simplify normalized target fence
* test(ui): align disconnected session wording
|
2026-08-08 15:00:09 -07:00 |
|
Shakker
|
0d5472b8f1
|
refactor: share session mutation scope policy
|
2026-08-02 18:32:19 +01:00 |
|