You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Armonia as default workspace — sidebar tree, session cwd, cleanup
Important
Problem: Amicode's UI has no awareness of the canonical ~/armonia/ workspace layout. The sidebar's Armonia panel is a placeholder stub, the agent session runs in whatever VS Code folder the user opened, and stale vault-setup machinery exists for a flow that bootstrap-armonia.sh now owns.
Approach: Introduce an ArmoniaService that owns workspace discovery and layout model, a structured ArmoniaTreeProvider that replaces both the placeholder and the catalog panel, override the session cwd to always resolve against armonia, and clean up superseded vault code.
Scope: Extension-only (packages/extension/ + opencode fork app). Does NOT touch the agent's tool permissions (the agent can still reach outside armonia). Does NOT add a user-facing setting to change the working directory (separate issue). Does NOT touch files-changed (separate plans).
Assumptions: PR #308 (bootstrap-armonia.sh) merges first — this issue gates on it. The canonical layout (repos/{packages,demos}, data/{env,problems,runs,vaults}) is stable.
Acceptance Criteria
ArmoniaService resolves the armonia root from hidden amicode.armoniaRoot setting (default ~/armonia/), exposes bootstrap state, and watches the filesystem for changes
ArmoniaTreeProvider renders six semantic buckets (Packages, Demos, Problems, Runs, Vaults, Environments) expanding into full filesystem subtrees; replaces both PlaceholderTree and SessionCatalogTree
When ~/armonia/ does not exist, the tree shows a "Set up Armonia" action that opens a tier quick-picker (--minimal / --standard / --full) and runs bootstrap-armonia.sh in the integrated terminal
Contextual actions on tree items: Runs → Open in Run Inspector / View result.toml; pulse.jld2 → Load pulse; Vault notes → Open preview; Packages → Run tests; Problems → Resume session / Open solve.jl; Demos → Run script
Agent session cwd is ArmoniaService.root (falls back to workspace folder if not bootstrapped)
open-file bridge resolves relative paths against armonia root; absolute paths pass through unrestricted
The breadcrumb bar (project selector + workspace selector + git status) is hidden when running as Amicode
amicode.catalog view removed from package.json; SessionCatalogTree deleted
Single source of truth for workspace setup; bootstrap tiers (clone logic) are too complex to duplicate
Hidden amicode.armoniaRoot setting
Forward-compatible with "let users change working directory" issue; testable with non-standard paths during dev
Catalog panel removed rather than kept
Scope unclear; the Runs bucket + Run Inspector cover the primary use case; can return with clear scope later
Constraints & Invariants
The agent is NOT jailed to armonia — tools can reach any absolute path. Armonia is the cwd (relative path resolution), not a sandbox.
open-file must continue to work with absolute paths outside armonia (existing behavior preserved).
The amicode.vaultDir setting survives as a hidden dev escape hatch — vault resolution can be forced independently of the armonia root.
Bootstrap detection is structural (checks for expected subdirectories), not marker-file-based — a manually created ~/armonia/ with the right shape is valid.
Armonia as default workspace — sidebar tree, session cwd, cleanup
Important
Problem: Amicode's UI has no awareness of the canonical
~/armonia/workspace layout. The sidebar's Armonia panel is a placeholder stub, the agent session runs in whatever VS Code folder the user opened, and stale vault-setup machinery exists for a flow that bootstrap-armonia.sh now owns.Approach: Introduce an
ArmoniaServicethat owns workspace discovery and layout model, a structuredArmoniaTreeProviderthat replaces both the placeholder and the catalog panel, override the session cwd to always resolve against armonia, and clean up superseded vault code.Scope: Extension-only (
packages/extension/+ opencode fork app). Does NOT touch the agent's tool permissions (the agent can still reach outside armonia). Does NOT add a user-facing setting to change the working directory (separate issue). Does NOT touchfiles-changed(separate plans).Assumptions: PR #308 (bootstrap-armonia.sh) merges first — this issue gates on it. The canonical layout (
repos/{packages,demos},data/{env,problems,runs,vaults}) is stable.Acceptance Criteria
ArmoniaServiceresolves the armonia root from hiddenamicode.armoniaRootsetting (default~/armonia/), exposes bootstrap state, and watches the filesystem for changesArmoniaTreeProviderrenders six semantic buckets (Packages, Demos, Problems, Runs, Vaults, Environments) expanding into full filesystem subtrees; replaces bothPlaceholderTreeandSessionCatalogTree~/armonia/does not exist, the tree shows a "Set up Armonia" action that opens a tier quick-picker (--minimal/--standard/--full) and runsbootstrap-armonia.shin the integrated terminalpulse.jld2→ Load pulse; Vault notes → Open preview; Packages → Run tests; Problems → Resume session / Open solve.jl; Demos → Run scriptArmoniaService.root(falls back to workspace folder if not bootstrapped)open-filebridge resolves relative paths against armonia root; absolute paths pass through unrestrictedamicode.catalogview removed from package.json;SessionCatalogTreedeletedamicode.setupVaultcommand removed;ensureDefaultPersonalVault()removed;vault_setup.tsdeletedmount_store.tsresolves vaults fromarmoniaRoot/data/vaults/(withamicode.vaultDiras hidden dev override)resolvePersonalVaultremoved fromvault_store.tsKey Decisions
trees.tscommentsrepos/anddata/intermediaryamicode.armoniaRootsettingConstraints & Invariants
open-filemust continue to work with absolute paths outside armonia (existing behavior preserved).amicode.vaultDirsetting survives as a hidden dev escape hatch — vault resolution can be forced independently of the armonia root.~/armonia/with the right shape is valid.Prior Art
trees.tscomment referencingArmoniaServiceas the intended wiring targetamicode#203— prior work hiding the project name in Amicode's breadcrumbamicode#204— merging redundant vault/armonia placeholder treesSource
Brainstorming session 2026-08-10. Grilled with
grill-with-docsagainst CONTEXT.md.Notes
files-changedscoping is out of scope — separate plans.