This release adds 4 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+13 more
Affected surfaces
Summary
AI summaryMulti-repo workspace support added with Cockpit TUI enhancements, logging and theme overhauls, auth session persistence, web widget fixes, dependency bumps, and expanded testing framework.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
keep bound devices signed in across token rotation keep bound devices signed in across token rotation Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Feature | Medium |
Cockpit in the TUI (native ratatui view + CLI verbs + cross-machine) Cockpit in the TUI (native ratatui view + CLI verbs + cross-machine) Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Feature | Medium |
consolidate sink + rotation under logging consolidate sink + rotation under logging Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Feature | Medium |
comment on diff + more polishing fixes in cockpit comment on diff + more polishing fixes in cockpit Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Feature | Medium |
add --auth=<mode> selector and --behind-proxy for reverse-proxy deployments add --auth=<mode> selector and --behind-proxy for reverse-proxy deployments Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Feature | Medium |
honor sandbox mode in cockpit sessions honor sandbox mode in cockpit sessions Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Feature | Low |
Add configurable tool sessions Add configurable tool sessions Source: granite4.1:30b@2026-05-19-audit Confidence: low |
— |
| Dependency | Medium |
bump tower-http from 0.6.8 to 0.6.10 bump tower-http from 0.6.8 to 0.6.10 Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Dependency | Medium |
bump which from 7.0.3 to 8.0.2 bump which from 7.0.3 to 8.0.2 Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Dependency | Medium |
bump tokio from 1.52.1 to 1.52.3 bump tokio from 1.52.1 to 1.52.3 Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
tighten codex status detection tighten codex status detection Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Bugfix | Medium |
exempt loopback from passphrase factor and surface TUI startup errors exempt loopback from passphrase factor and surface TUI startup errors Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
fire web push and play browser chime on approval requests fire web push and play browser chime on approval requests Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
WorkerHandle leak, approval recovery, stuck spinners, viewport/banner/spinner polish WorkerHandle leak, approval recovery, stuck spinners, viewport/banner/spinner polish Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
state persistence, WS auto-reconnect, mobile Enter, /clear palette, device binding polish state persistence, WS auto-reconnect, mobile Enter, /clear palette, device binding polish Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
add interactive-widget=resizes-content to viewport meta add interactive-widget=resizes-content to viewport meta Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
collapse composer bottom gap when soft keyboard is open collapse composer bottom gap when soft keyboard is open Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
switch queued-prompt strip from amber to sky palette switch queued-prompt strip from amber to sky palette Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
dispatch InputEvent from toolbar inserts for popover trigger removeOnExecute dispatch InputEvent from toolbar inserts for popover trigger removeOnExecute Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
preserve queued prompts on reconnect race preserve queued prompts on reconnect race Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
slow working-spinner verb cycle from 4s to 18s slow working-spinner verb cycle from 4s to 18s Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
derive turnActive from prompt/stop seq counters to survive Stopped race derive turnActive from prompt/stop seq counters to survive Stopped race Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
seed yoloMode from profile config on mount seed yoloMode from profile config on mount Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
kill terminal and container terminal tmux sessions on removal kill terminal and container terminal tmux sessions on removal Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
anchor IME candidate windows to active input cursor anchor IME candidate windows to active input cursor Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
strip ST-terminated OSC sequences for hyperlink text in preview strip ST-terminated OSC sequences for hyperlink text in preview Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
use atomic writes for all session/config persistence use atomic writes for all session/config persistence Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
keep command palette selection visible past viewport keep command palette selection visible past viewport Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
resume-fallback cascade for restart/start paths resume-fallback cascade for restart/start paths Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
pin sidebar session order to created_at desc, no status reshuffle pin sidebar session order to created_at desc, no status reshuffle Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Low |
Mobile composer polish and push notification origin tracking for Cockpit and Serve Mobile composer polish and push notification origin tracking for Cockpit and Serve Source: granite4.1:30b@2026-05-19-audit Confidence: low |
— |
| Refactor | Medium |
add tracing to ACP tool-call and permission handlers add tracing to ACP tool-call and permission handlers Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
Full changelog
What's Changed
- fix: tighten codex status detection by @microHoffman in https://github.com/njbrake/agent-of-empires/pull/1125
- Cockpit in the TUI (native ratatui view + CLI verbs + cross-machine) by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1114
- Cockpit polishing 5: WorkerHandle leak, approval recovery, stuck spinners, viewport/banner/spinner polish by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1115
- feat(logging): consolidate sink + rotation under logging by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1127
- feat(cockpit): comment on diff + more polishing fixes by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1122
- Cockpit polishing 7: state persistence, WS auto-reconnect, mobile Enter, /clear palette, device binding by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1137
- fix(web): add interactive-widget=resizes-content to viewport meta by @njbrake in https://github.com/njbrake/agent-of-empires/pull/1150
- fix(cockpit): collapse composer bottom gap when soft keyboard is open by @njbrake in https://github.com/njbrake/agent-of-empires/pull/1152
- fix(cockpit): switch queued-prompt strip from amber to sky palette by @njbrake in https://github.com/njbrake/agent-of-empires/pull/1153
- fix(cockpit): dispatch InputEvent from toolbar inserts so popover trigger removeOnExecute works by @njbrake in https://github.com/njbrake/agent-of-empires/pull/1154
- fix(cockpit): preserve queued prompts on reconnect race by @njbrake in https://github.com/njbrake/agent-of-empires/pull/1155
- fix(cockpit): slow working-spinner verb cycle from 4s to 18s by @njbrake in https://github.com/njbrake/agent-of-empires/pull/1151
- chore(deps): bump tower-http from 0.6.8 to 0.6.10 by @dependabot[bot] in https://github.com/njbrake/agent-of-empires/pull/1166
- chore(deps): bump which from 7.0.3 to 8.0.2 by @dependabot[bot] in https://github.com/njbrake/agent-of-empires/pull/1165
- chore(deps): bump tokio from 1.52.1 to 1.52.3 by @dependabot[bot] in https://github.com/njbrake/agent-of-empires/pull/1164
- feat(auth): keep bound devices signed in across token rotation by @njbrake in https://github.com/njbrake/agent-of-empires/pull/1167
- chore(cockpit): add tracing to ACP tool-call and permission handlers by @njbrake in https://github.com/njbrake/agent-of-empires/pull/1157
- fix(cockpit): derive turnActive from prompt/stop seq counters to survive Stopped race by @njbrake in https://github.com/njbrake/agent-of-empires/pull/1172
- feat(serve): add --auth= selector and --behind-proxy for reverse-proxy deployments by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1162
- feat(cockpit): honor sandbox mode in cockpit sessions by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1161
- fix(wizard): seed yoloMode from profile config on mount by @njbrake in https://github.com/njbrake/agent-of-empires/pull/1156
- fix: kill terminal and container terminal tmux sessions on removal by @raphaeldavidf in https://github.com/njbrake/agent-of-empires/pull/1210
- fix(tui): anchor IME candidate windows to active input cursor by @raytrun in https://github.com/njbrake/agent-of-empires/pull/1202
- fix(tui): strip ST-terminated OSC sequences so hyperlink text appears in preview by @raphaeldavidf in https://github.com/njbrake/agent-of-empires/pull/1182
- fix(session): use atomic writes for all session/config persistence by @raphaeldavidf in https://github.com/njbrake/agent-of-empires/pull/1208
- fix(tui): keep command palette selection visible past viewport by @bell-hyun in https://github.com/njbrake/agent-of-empires/pull/1187
- fix(session): resume-fallback cascade for restart/start paths by @jerome-benoit in https://github.com/njbrake/agent-of-empires/pull/1173
- fix(web): pin sidebar session order to created_at desc, no status reshuffle by @njbrake in https://github.com/njbrake/agent-of-empires/pull/1171
- fix(cockpit): exempt loopback from passphrase factor and surface TUI startup errors by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1190
- fix(cockpit): fire web push and play browser chime on approval requests by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1191
- refactor(theme): move builtin themes to embedded TOML files by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1214
- feat(logging): comprehensive coverage + frontend forwarding pipeline by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1179
- feat: add configurable tool sessions by @raphaeldavidf in https://github.com/njbrake/agent-of-empires/pull/1204
- fix(cockpit, serve): mobile composer polish and push notification origin tracking by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1194
- fix(push): delay test notification by 3s so user can lock phone by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1193
- feat(theme): web dashboard runtime palette swap by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1197
- fix(cockpit,serve): exit on Ctrl-C with open WS, surface dropped prompts, escalate stuck cancels by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1211
- feat(cockpit): per-agent profile abstraction for codex/opencode/gemini parity by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1192
- Add Codex hook-based status detection by @microHoffman in https://github.com/njbrake/agent-of-empires/pull/1141
- fix: pi install hint → @earendil-works package + correct Pi/Hermes confusion by @jerome-benoit in https://github.com/njbrake/agent-of-empires/pull/1238
- feat(cockpit): surface set_mode rejection, fold tall queued-prompts strip by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1236
- feat(theme): add Material Deep Ocean builtin by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1241
- feat(theme): split default and empire into two distinct builtins by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1239
- test(web): foundation for Playwright coverage of #986 (harness, fake ACP agent, 9 tracers, coverage matrix, merged coverage CI) by @Seluj78 in https://github.com/njbrake/agent-of-empires/pull/1228
New Contributors
- @microHoffman made their first contribution in https://github.com/njbrake/agent-of-empires/pull/1125
- @raphaeldavidf made their first contribution in https://github.com/njbrake/agent-of-empires/pull/1210
- @raytrun made their first contribution in https://github.com/njbrake/agent-of-empires/pull/1202
- @bell-hyun made their first contribution in https://github.com/njbrake/agent-of-empires/pull/1187
Full Changelog: https://github.com/njbrake/agent-of-empires/compare/v1.7.0...v1.7.1
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Track I've implemented multi-repo workspace support in Agent of Empires
Get notified when new releases ship.
Sign up freeAbout I've implemented multi-repo workspace support in Agent of Empires
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]