Backend.AI GO 1.10.0: AIGO Remote for iOS, a revived App Plugins runtime with a companion buddy, persistent multi-turn cowork sessions, a cross-squad fleet dashboard, and air-gapped enterprise mode.
Backend.AI GO 1.10.0
78 commits since v1.9.1. (45261 lines added, 3535 lines deleted)
New Features
- GO Mobile (AIGO Remote, iOS, epic): The iOS build is restored end to end and ships as "AIGO Remote", a companion app that enrolls and manages remote Backend.AI GO nodes over the mesh with aigo:// deep-link enrollment . A first-run remote-provider onboarding and chat flow removes the previous "No model selected" dead end , provider API keys are stored in the iOS Keychain with explicit, fail-closed selection , and mobile-first runtime feature gates keep desktop-only capabilities off the mobile build .
- App Plugins runtime revival (epic): Bundled plugins load and render end to end. Bare
reactimports resolve through the host module registry , the Tauri asset protocol and CSP are extended for plugin bundles , plugin CSS is emitted at build and injected at runtime , the permission registry is synced across the Rust host and TypeScript SDK , builtin plugins are seeded in headless mode and embedded in the server binary , and the App Plugins page and sidebar/toolbar slots are mounted in production . Plugin i18n runs on the host instance . - Companion buddy widget: A companion buddy adds a mood-driven avatar expression system inferred from model-tagged reply sentiment , with greeting, model-availability, unread, and proactive UX and a verified memory loop .
- Cowork multi-turn sessions (epic): A cowork session is modeled as a ChatSession with per-turn seeded agent runs, rendered through the shared ChatInterface transcript . An all-steps resolver splices the full ReAct interior (thinking, tool calls, tool results) into the transcript instead of only the final answer .
- Squad Overview fleet dashboard (epic): The Overview tab subscribes every active squad and adds a cross-squad agent table, an attention strip, and a task-progress rollup that buckets every squad's tasks into the shared Kanban columns .
- Go Enterprise air-gapped deployment: A single air-gapped master switch puts the whole app into air-gapped mode , an offline signed license and entitlement gate verifies entitlements without network access , and provisioning adds aigo:// device enrollment and installer wiring , with administrator deployment and policy guides .
- Local model display alias : A user-editable display alias shows wherever the model name appears and falls back to the derived name when unset. The real inference identifier and the /v1/models entry are unchanged, and the alias survives a full metadata rescan.
- Agent multi-message context seeding : Agent runs accept multi-message structured context seeding, so a caller can seed a run with a full conversation instead of a single prompt string.
Improvements
None
Bug Fixes
- Packaged desktop plugin widgets render with their styles again: plugin CSS is injected through a
<link>tag instead offetch(asset://), which failed silently on WebKitGTK . Built-in plugins are included in the desktop resources so they ship with the packaged app , plugin runtime paths are hardened , and post-merge hardening closes correctness gaps in the epic runtime . - Companion fixes: the conversation persists on any collapse with de-duplicated memory namespaces , bubble sizing/header/input/memory-extraction/avatar-position polish , model-picker dropdown and cloud model availability , a settings write loop, header clipping, and model fallback , and widget bring-up .
- The cowork runtime enforces permitted folders in its path sandbox , autosave is hardened against lost turns , and
AgentStartOptions.system_promptis plumbed into the agent loop instead of being dropped . - Squad discussions no longer stall after the first brainstorming speaker , stop committing empty brainstorm turns , stream round-0 turns for tool-enabled agents , stay auto-scrolled during streaming , auto-resume when an exhausted turn budget is raised , and harden the Autonomous strategy gate and discussion room .
- The enrollment trust flow for enterprise provisioning is hardened , the node inference proxy caps upstream response body buffering , the Models tab directory field no longer flickers while typing , iOS OOBE and app-link fixes land , and sidebar devOnly tests are repaired .
CI/CD Improvements
- A real-bundle CI gate exercises the plugin runtime against an actual plugin bundle .
Technical Details
- This stable release consolidates the 1.10.0-beta.1, 1.10.0-beta.2, 1.10.0-rc.1, and 1.10.0-rc.2 pre-releases.
- Primary epics: GO Mobile , App Plugins runtime revival , Cowork multi-turn sessions , Squad Overview fleet dashboard , and Go Enterprise air-gapped deployment.
- A plugin authoring guide and the dependency-resolution contract are added .
Dependencies
- continuum-router updated to v1.12.0.
- mlxcel at v0.3.2.
Breaking Changes
None
Known Issues
None
What's Changed
- feat(enterprise): air-gapped master switch by @inureyes
- feat(enterprise): offline signed license / entitlement gate by @inureyes
- feat(enterprise): provisioning and enrollment UX (aigo:// enroll, installer wiring) by @inureyes
- docs(enterprise): add administrator deployment and policy guides by @inureyes
- fix: harden epic 3425 enrollment trust flow by @inureyes
- fix(squad): auto-resume budget-exhausted discussion on budget raise by @inureyes
- feat: user-editable display alias for local models by @inureyes
- fix(squad): follow-up hardening for discussion room by @inureyes
- fix(squad): harden Autonomous discussion strategy gate by @inureyes
- docs: add technical reports for and by @inureyes
- fix(mobile): restore iOS Rust and Tauri buildability by @inureyes
- chore(mobile): repair iOS config, project metadata, and CI by @inureyes
- fix(mobile): enforce mobile-first runtime feature gates by @inureyes
- feat(mobile): wire iOS native integrations and secure credentials by @inureyes
- feat(mobile): make remote provider onboarding and chat usable by @inureyes
- feat(mobile): add a real mesh connection experience by @inureyes
- docs: add technical reports for epic by @inureyes
- fix(mobile): gate whoami off the iOS build to fix the app link by @inureyes
- fix(mobile): name the iOS app "AIGO Remote" to fix the archive rename by @inureyes
- fix(mobile): prevent iOS OOBE auto-zoom on input focus by @inureyes
- fix(mobile): keep the aigo:// scheme on iOS builds and fix the ios:dev:sim script by @inureyes
- chore(rust): apply cargo fmt to commands/security.rs by @rapsealk
- fix(settings): stop Model directory field flicker on the Models tab by @rapsealk
- fix(node): cap inference proxy upstream body buffering by @inureyes
- fix(squad): Brainstorming discussion stalls after the first speaker by @inureyes
- feat(squad): cross-squad subscription fan-out for the Overview dashboard by @inureyes
- feat(squad): add cross-squad agent table and attention strip to Overview by @inureyes
- feat(squad): add cross-squad task-progress rollup to Overview by @inureyes
- fix: harden squad overview fleet dashboard by @inureyes
- docs: add technical reports for epic by @inureyes
- fix(squad): stream round-0 discussion turns for tool-enabled agents by @inureyes
- fix(squad): stabilize discussion room auto-scroll during streaming by @inureyes
- fix(agent): plumb AgentStartOptions.system_prompt into the agent loop by @inureyes
- feat(agent): multi-message structured context seeding for agent runs by @inureyes
- fix(squad): stop brainstorm discussions committing empty agent turns by @inureyes
- fix(cowork): enforce permitted folders in the runtime path sandbox by @inureyes
- feat(cowork): model a session as a ChatSession with per-turn seeded agent runs by @inureyes
- feat(cowork): all-steps resolver to splice the full ReAct interior into the transcript by @inureyes
- feat(cowork): ChatInterface-based transcript and persistent multi-turn UI by @inureyes
- docs: add technical reports for epic by @inureyes
- fix: harden epic 3586 cowork autosave by @inureyes
- fix: resolve plugin bare react specifiers via host module registry by @inureyes
- fix: enable Tauri asset protocol and extend CSP for plugin bundles by @inureyes
- fix: sync plugin permission registry across Rust and TS SDK by @inureyes
- feat: expose App Plugins page in production, disambiguate naming by @inureyes
- feat: seed builtin plugins in headless mode by @inureyes
- fix: emit plugin CSS at build and inject it at runtime by @inureyes
- feat: mount the sidebar and toolbar plugin slots by @inureyes
- feat: verify plugin i18n runs on the host instance by @inureyes
- fix: companion widget bring-up (settings deps, cancel UX) by @inureyes
- test: add real-bundle CI gate for the plugin runtime by @inureyes
- docs: add plugin authoring guide and dependency-resolution contract by @inureyes
- feat: companion avatar expression system driven by chat state by @inureyes
- feat: verify companion memory loop and label plugin namespaces by @inureyes
- feat: companion buddy UX (greeting, model-availability, unread, proactive) by @inureyes
- fix: harden epic plugin runtime post-merge by @inureyes
- fix: companion runtime issues (settings loop, header clip, model fallback) by @inureyes
- fix: companion model picker dropdown + cloud model availability by @inureyes
- fix: companion polish (bubble sizing, header, input, memory extraction, avatar position) by @inureyes
- fix: companion persists conversation on collapse + de-dup memory namespaces by @inureyes
- feat: embed built-in plugins into the headless server binary by @inureyes
- feat: mood-driven avatar expressions from model-tagged reply sentiment by @inureyes
- fix: inject plugin CSS via so packaged desktop styles apply by @inureyes
- chore: harden plugin runtime paths by @inureyes
- fix: include built-in plugins in desktop resources by @inureyes
- fix: repair sidebar devOnly tests + stale build-deb.sh feature comment by @inureyes
New Contributors
- @rapsealk made their first contribution