Files
headquarter/openspec/changes/live-config-profile-refresh/change.md
T
Developer add7c1b500 feat: add live config profile refresh
- Standardize built-in tool users for shared writable profile mounts
- Mount canonical non-Git profile sources across compatible instances
- Report restart-required outcomes and guard active profile deletion
- Surface restart feedback in config profile editing

Quality gates: frontend build passed; backend py_compile and LSP passed.
Skipped: backend pytest/Ruff unavailable; Docker/manual checks not approved.
2026-07-21 11:12:41 +00:00

2.4 KiB

Live Config Profile Refresh

Summary

Refresh profile-managed configuration for running tool instances when a Config Profile is saved, without recreating the container or terminal session.

Scope

  • Resolve the saved profile and refresh every running instance that selected it, including profiles that include it.
  • Store non-Git profile configuration as a canonical, host-side working copy shared by every instance using the profile.
  • Bind-mount canonical profile directories directly into their configured container targets and bind-mount canonical profile files individually under the container working directory, preserving the workspace mount.
  • Allow UI and container-side edits to the same canonical files; last writer wins, with an overwrite warning when detectable.
  • Defer Git mount refresh and Git-clone mutation to a separate commit-aware feature.
  • Standardize all supported tool containers on one shared non-root user/group so canonical writable profile mounts remain accessible across instances.
  • Return per-instance refresh results to the profile-save UI.

Constraints

  • Preserve running containers and terminal sessions.
  • Preserve the workspace/repository mount.
  • Docker bind-mount topology is immutable at runtime. Added, removed, retargeted, or mode-changed mounts MUST be reported as requiring restart, not partially applied.
  • Desktop and mobile profile editors use the same save/refresh behavior.
  • The standardized container user/group MUST be applied to built-in tool definitions, generated manifests, and image templates; legacy/incompatible tool images must report incompatible permissions rather than silently changing profile mount ownership.

Acceptance Criteria

  • Saving a profile refreshes every eligible running instance with a direct or transitive dependency on that profile.
  • Canonical non-Git profile files and mount directories are shared writable working copies across compatible running instances.
  • Container-side and UI-side changes become visible to all instances using the profile; last writer wins and detectable overwrites generate a warning.
  • Git mount refresh and Git clone mutation are not performed by this feature.
  • Built-in supported tool containers use a shared non-root user/group compatible with writable canonical profile mounts.
  • Topology changes return a restart-required result without recreating the instance.
  • Terminal WebSocket sessions remain connected throughout a successful refresh.