loadouts 0.2.5 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/embedded/pi/loadouts-runtime.ts +19677 -0
- package/bundled/extensions/loadouts-runtime/index.ts +19677 -0
- package/bundled/extensions/loadouts-runtime/package.json +6 -0
- package/bundled/loadouts/opencode-runtime.yaml +5 -0
- package/bundled/loadouts/pi-runtime.yaml +5 -0
- package/bundled/opencode/plugins/loadouts/index.js +39198 -0
- package/bundled/opencode/plugins/loadouts/package.json +9 -0
- package/bundled/opencode/plugins/loadouts/tui.js +16913 -0
- package/dist/builtins/agent-transforms.d.ts.map +1 -1
- package/dist/builtins/agent-transforms.js +31 -9
- package/dist/builtins/agent-transforms.js.map +1 -1
- package/dist/builtins/index.d.ts.map +1 -1
- package/dist/builtins/index.js +18 -3
- package/dist/builtins/index.js.map +1 -1
- package/dist/builtins/kinds/extension-dir.d.ts +3 -0
- package/dist/builtins/kinds/extension-dir.d.ts.map +1 -0
- package/dist/builtins/kinds/extension-dir.js +8 -0
- package/dist/builtins/kinds/extension-dir.js.map +1 -0
- package/dist/builtins/kinds/opencode-cli-config.d.ts +3 -0
- package/dist/builtins/kinds/opencode-cli-config.d.ts.map +1 -0
- package/dist/builtins/kinds/opencode-cli-config.js +10 -0
- package/dist/builtins/kinds/opencode-cli-config.js.map +1 -0
- package/dist/builtins/kinds/opencode-command.d.ts +3 -0
- package/dist/builtins/kinds/opencode-command.d.ts.map +1 -0
- package/dist/builtins/kinds/opencode-command.js +8 -0
- package/dist/builtins/kinds/opencode-command.js.map +1 -0
- package/dist/builtins/kinds/opencode-plugin-dir.d.ts +3 -0
- package/dist/builtins/kinds/opencode-plugin-dir.d.ts.map +1 -0
- package/dist/builtins/kinds/opencode-plugin-dir.js +11 -0
- package/dist/builtins/kinds/opencode-plugin-dir.js.map +1 -0
- package/dist/builtins/kinds/opencode-plugin.js +1 -1
- package/dist/builtins/kinds/opencode-plugin.js.map +1 -1
- package/dist/builtins/tools/opencode.d.ts.map +1 -1
- package/dist/builtins/tools/opencode.js +13 -1
- package/dist/builtins/tools/opencode.js.map +1 -1
- package/dist/builtins/tools/pi.d.ts.map +1 -1
- package/dist/builtins/tools/pi.js +2 -1
- package/dist/builtins/tools/pi.js.map +1 -1
- package/dist/cli/commands/diff.d.ts +10 -0
- package/dist/cli/commands/diff.d.ts.map +1 -1
- package/dist/cli/commands/diff.js +71 -30
- package/dist/cli/commands/diff.js.map +1 -1
- package/dist/cli/commands/info.d.ts +10 -0
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +45 -1
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/list.d.ts +18 -0
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +27 -0
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/session.d.ts +3 -0
- package/dist/cli/commands/session.d.ts.map +1 -0
- package/dist/cli/commands/session.js +68 -0
- package/dist/cli/commands/session.js.map +1 -0
- package/dist/cli/commands/status.d.ts +10 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +100 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/sync.d.ts.map +1 -1
- package/dist/cli/commands/sync.js +6 -0
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/commands/tui.d.ts +3 -0
- package/dist/cli/commands/tui.d.ts.map +1 -0
- package/dist/cli/commands/tui.js +20 -0
- package/dist/cli/commands/tui.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/discovery.js +1 -1
- package/dist/core/discovery.js.map +1 -1
- package/dist/core/import-discovery.d.ts.map +1 -1
- package/dist/core/import-discovery.js +2 -0
- package/dist/core/import-discovery.js.map +1 -1
- package/dist/core/registry.d.ts +5 -0
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js.map +1 -1
- package/dist/core/render.d.ts.map +1 -1
- package/dist/core/render.js +77 -8
- package/dist/core/render.js.map +1 -1
- package/dist/core/resolve.d.ts +1 -1
- package/dist/core/resolve.d.ts.map +1 -1
- package/dist/core/resolve.js +3 -2
- package/dist/core/resolve.js.map +1 -1
- package/dist/core/runtime.d.ts +4 -0
- package/dist/core/runtime.d.ts.map +1 -1
- package/dist/core/runtime.js +10 -3
- package/dist/core/runtime.js.map +1 -1
- package/dist/core/schema.d.ts +59 -0
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +5 -0
- package/dist/core/schema.js.map +1 -1
- package/dist/core/types.d.ts +13 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/integrations/opencode/advertisement.d.ts +7 -0
- package/dist/integrations/opencode/advertisement.d.ts.map +1 -0
- package/dist/integrations/opencode/advertisement.js +17 -0
- package/dist/integrations/opencode/advertisement.js.map +1 -0
- package/dist/integrations/opencode/client.d.ts +12 -0
- package/dist/integrations/opencode/client.d.ts.map +1 -0
- package/dist/integrations/opencode/client.js +48 -0
- package/dist/integrations/opencode/client.js.map +1 -0
- package/dist/integrations/opencode/command.d.ts +11 -0
- package/dist/integrations/opencode/command.d.ts.map +1 -0
- package/dist/integrations/opencode/command.js +19 -0
- package/dist/integrations/opencode/command.js.map +1 -0
- package/dist/integrations/opencode/delta.d.ts +15 -0
- package/dist/integrations/opencode/delta.d.ts.map +1 -0
- package/dist/integrations/opencode/delta.js +75 -0
- package/dist/integrations/opencode/delta.js.map +1 -0
- package/dist/integrations/opencode/session.d.ts +207 -0
- package/dist/integrations/opencode/session.d.ts.map +1 -0
- package/dist/integrations/opencode/session.js +201 -0
- package/dist/integrations/opencode/session.js.map +1 -0
- package/dist/lib/gitignore.d.ts +7 -3
- package/dist/lib/gitignore.d.ts.map +1 -1
- package/dist/lib/gitignore.js +16 -6
- package/dist/lib/gitignore.js.map +1 -1
- package/dist/tui/core/actions.d.ts +8 -0
- package/dist/tui/core/actions.d.ts.map +1 -0
- package/dist/tui/core/actions.js +76 -0
- package/dist/tui/core/actions.js.map +1 -0
- package/dist/tui/core/controller.d.ts +28 -0
- package/dist/tui/core/controller.d.ts.map +1 -0
- package/dist/tui/core/controller.js +78 -0
- package/dist/tui/core/controller.js.map +1 -0
- package/dist/tui/core/data.d.ts +43 -0
- package/dist/tui/core/data.d.ts.map +1 -0
- package/dist/tui/core/data.js +161 -0
- package/dist/tui/core/data.js.map +1 -0
- package/dist/tui/core/host.d.ts +15 -0
- package/dist/tui/core/host.d.ts.map +1 -0
- package/dist/tui/core/host.js +2 -0
- package/dist/tui/core/host.js.map +1 -0
- package/dist/tui/core/intent.d.ts +95 -0
- package/dist/tui/core/intent.d.ts.map +1 -0
- package/dist/tui/core/intent.js +2 -0
- package/dist/tui/core/intent.js.map +1 -0
- package/dist/tui/core/keymap.d.ts +16 -0
- package/dist/tui/core/keymap.d.ts.map +1 -0
- package/dist/tui/core/keymap.js +68 -0
- package/dist/tui/core/keymap.js.map +1 -0
- package/dist/tui/core/model.d.ts +65 -0
- package/dist/tui/core/model.d.ts.map +1 -0
- package/dist/tui/core/model.js +34 -0
- package/dist/tui/core/model.js.map +1 -0
- package/dist/tui/core/selection.d.ts +12 -0
- package/dist/tui/core/selection.d.ts.map +1 -0
- package/dist/tui/core/selection.js +42 -0
- package/dist/tui/core/selection.js.map +1 -0
- package/dist/tui/core/theme.d.ts +15 -0
- package/dist/tui/core/theme.d.ts.map +1 -0
- package/dist/tui/core/theme.js +11 -0
- package/dist/tui/core/theme.js.map +1 -0
- package/dist/tui/core/update.d.ts +8 -0
- package/dist/tui/core/update.d.ts.map +1 -0
- package/dist/tui/core/update.js +206 -0
- package/dist/tui/core/update.js.map +1 -0
- package/dist/tui/core/view.d.ts +4 -0
- package/dist/tui/core/view.d.ts.map +1 -0
- package/dist/tui/core/view.js +162 -0
- package/dist/tui/core/view.js.map +1 -0
- package/dist/tui/core/viewport.d.ts +5 -0
- package/dist/tui/core/viewport.d.ts.map +1 -0
- package/dist/tui/core/viewport.js +33 -0
- package/dist/tui/core/viewport.js.map +1 -0
- package/dist/tui/core/viewspec.d.ts +49 -0
- package/dist/tui/core/viewspec.d.ts.map +1 -0
- package/dist/tui/core/viewspec.js +2 -0
- package/dist/tui/core/viewspec.js.map +1 -0
- package/dist/tui/hosts/pi/embed-entry.d.ts +3 -0
- package/dist/tui/hosts/pi/embed-entry.d.ts.map +1 -0
- package/dist/tui/hosts/pi/embed-entry.js +96 -0
- package/dist/tui/hosts/pi/embed-entry.js.map +1 -0
- package/dist/tui/hosts/pi/inject.d.ts +49 -0
- package/dist/tui/hosts/pi/inject.d.ts.map +1 -0
- package/dist/tui/hosts/pi/inject.js +31 -0
- package/dist/tui/hosts/pi/inject.js.map +1 -0
- package/dist/tui/hosts/standalone.d.ts +2 -0
- package/dist/tui/hosts/standalone.d.ts.map +1 -0
- package/dist/tui/hosts/standalone.js +109 -0
- package/dist/tui/hosts/standalone.js.map +1 -0
- package/dist/tui/skins/pi-tui/input.d.ts +5 -0
- package/dist/tui/skins/pi-tui/input.d.ts.map +1 -0
- package/dist/tui/skins/pi-tui/input.js +42 -0
- package/dist/tui/skins/pi-tui/input.js.map +1 -0
- package/dist/tui/skins/pi-tui/pi-theme-adapter.d.ts +4 -0
- package/dist/tui/skins/pi-tui/pi-theme-adapter.d.ts.map +1 -0
- package/dist/tui/skins/pi-tui/pi-theme-adapter.js +27 -0
- package/dist/tui/skins/pi-tui/pi-theme-adapter.js.map +1 -0
- package/dist/tui/skins/pi-tui/render.d.ts +38 -0
- package/dist/tui/skins/pi-tui/render.d.ts.map +1 -0
- package/dist/tui/skins/pi-tui/render.js +162 -0
- package/dist/tui/skins/pi-tui/render.js.map +1 -0
- package/dist/tui/skins/pi-tui/theme.d.ts +10 -0
- package/dist/tui/skins/pi-tui/theme.d.ts.map +1 -0
- package/dist/tui/skins/pi-tui/theme.js +58 -0
- package/dist/tui/skins/pi-tui/theme.js.map +1 -0
- package/docs/archive/opencode-v2-runtime-beta-18707.md +813 -0
- package/docs/authoring.md +69 -14
- package/docs/commands.md +24 -0
- package/docs/compatibility.md +8 -8
- package/docs/concepts.md +4 -2
- package/docs/opencode-v2-probes.md +253 -0
- package/docs/opencode-v2-runtime.md +129 -0
- package/docs/registry.md +1366 -0
- package/docs/runtime.md +115 -50
- package/docs/troubleshooting.md +20 -1
- package/docs/tui-architecture.md +503 -0
- package/package.json +17 -3
package/docs/runtime.md
CHANGED
|
@@ -1,72 +1,137 @@
|
|
|
1
1
|
# Runtime Activation (OpenCode First)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
Equip loadouts globally, for a project, or for **one OpenCode session**.
|
|
4
|
+
Session switching uses OpenCode V2's durable instruction entries and permission
|
|
5
|
+
rules, so another session at the same directory is unaffected.
|
|
6
|
+
|
|
7
|
+
## CLI
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
loadouts session list
|
|
11
|
+
loadouts session status --session ses_...
|
|
12
|
+
loadouts session equip backend review --session ses_... -p
|
|
13
|
+
loadouts session equip caveman --session ses_... -g
|
|
14
|
+
loadouts session unequip --session ses_...
|
|
15
|
+
```
|
|
11
16
|
|
|
12
|
-
|
|
17
|
+
`-g` and `-p` choose the **loadout source scope**; the destination is always the
|
|
18
|
+
named session. Omit `--session` to use the most recently updated root session at
|
|
19
|
+
the current directory. `--json` is available on every subcommand.
|
|
20
|
+
The CLI discovers an already-running authenticated service; start OpenCode first.
|
|
13
21
|
|
|
14
|
-
|
|
22
|
+
Session equips inject only instruction/rule content not already rendered by
|
|
23
|
+
intact Global/Project OpenCode outputs. Skill gates restrict native catalog skill
|
|
24
|
+
access to the selected loadout set while retaining pre-existing restrictions.
|
|
25
|
+
Unsupported session artifacts (commands, MCP, references, plugins) are reported
|
|
26
|
+
as diagnostics; equip those at Global/Project scope.
|
|
15
27
|
|
|
16
|
-
|
|
17
|
-
2. Compile supported artifacts into a `RuntimeBundle`.
|
|
18
|
-
3. Return bundle JSON (`--json`) or a model-ready block (`--system-block`).
|
|
28
|
+
## OpenCode dashboard
|
|
19
29
|
|
|
20
|
-
|
|
30
|
+
Install the bundled integration at either filesystem scope:
|
|
21
31
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
32
|
+
```sh
|
|
33
|
+
loadouts activate opencode-runtime -g
|
|
34
|
+
# or: loadouts activate opencode-runtime -l
|
|
35
|
+
```
|
|
26
36
|
|
|
27
|
-
|
|
37
|
+
This renders the package directory `plugins/loadouts/`, containing the server and
|
|
38
|
+
TUI entries. Build from source with `npm run build` before activating a checkout.
|
|
28
39
|
|
|
29
|
-
|
|
40
|
+
Inside OpenCode:
|
|
30
41
|
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
loadouts
|
|
42
|
+
```text
|
|
43
|
+
/loadouts dashboard (also ctrl+l)
|
|
44
|
+
/loadouts quick multi-select session equip
|
|
45
|
+
/loadouts equip caveman -g replace this session's set
|
|
46
|
+
/loadouts equip backend -p
|
|
47
|
+
/loadouts unequip
|
|
48
|
+
/loadouts status
|
|
49
|
+
/loadouts list
|
|
50
|
+
```
|
|
34
51
|
|
|
35
|
-
|
|
36
|
-
|
|
52
|
+
The dashboard shows **G / P / S** equipment and **All / Global / Project**
|
|
53
|
+
scope tabs. It opens on **All**. Tabs filter the catalog; in filesystem mode,
|
|
54
|
+
each row automatically equips into its own scope. The action target appears in
|
|
55
|
+
the detail pane. `m` switches **filesystem ↔ session** when a session is selected;
|
|
56
|
+
embedded dashboards open in session mode.
|
|
57
|
+
|
|
58
|
+
| Keys | Action |
|
|
59
|
+
|---|---|
|
|
60
|
+
| `j` / `k`, `↓` / `↑` | Move within a section |
|
|
61
|
+
| `h` / `l`, `←` / `→`, `Tab` / `Shift+Tab` | Previous / next section |
|
|
62
|
+
| `1` / `2` / `3` | Jump to Active / Available / Issues |
|
|
63
|
+
| `[` / `]` | Previous / next scope tab |
|
|
64
|
+
| `gg` / `G`, `Home` / `End` | First / last row |
|
|
65
|
+
| `Space`, `a` / `d` | Toggle, activate / deactivate the selected row |
|
|
66
|
+
| `m` | Switch filesystem / session mode |
|
|
67
|
+
| `s` / `x` / `D` | Sync / clear / diff the current target |
|
|
68
|
+
| `/`, `t` | Search, cycle tool filter |
|
|
69
|
+
| `Enter`, `e` | Expand artifacts, edit definition |
|
|
70
|
+
| `PgUp` / `PgDn` | Scroll artifact details (or the open overlay) |
|
|
71
|
+
| `u`, `r` | Undo last mutation, refresh |
|
|
72
|
+
| `?` | Help (`j` / `k` scroll) |
|
|
73
|
+
| `Esc` | Close overlay → clear filters → collapse detail → All tab → exit |
|
|
74
|
+
| `q` | Exit (or close the current overlay) |
|
|
75
|
+
|
|
76
|
+
Filesystem bulk operations use the selected tab. In **All**, a scope chooser
|
|
77
|
+
asks Global or Project (`h/l` or `j/k`, then `Enter`; `Esc` cancels). Search and
|
|
78
|
+
tool filters do not narrow bulk operations. In session mode, bulk actions target
|
|
79
|
+
the session's equipped set; a tab for the other source scope has no session
|
|
80
|
+
equipment to change. Equipping a session loadout from a different scope replaces
|
|
81
|
+
its previous source-scope set, and undo restores that set and scope.
|
|
82
|
+
|
|
83
|
+
Long sections keep the selected row visible, with row ranges in their headings.
|
|
84
|
+
The footer shows contextual shortcuts and updates from persisted session state
|
|
85
|
+
and native events.
|
|
86
|
+
|
|
87
|
+
The server plugin also filters skill advertisements (session permission denies
|
|
88
|
+
alone do not hide them on 2.0.3), provides off-disk skills through a catalog
|
|
89
|
+
transform, and supports headless equips.
|
|
90
|
+
|
|
91
|
+
Optional loadout selections:
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
name: review
|
|
95
|
+
include:
|
|
96
|
+
- instructions/AGENTS.review.md
|
|
97
|
+
opencode:
|
|
98
|
+
agent: reviewer
|
|
99
|
+
model:
|
|
100
|
+
providerID: anthropic
|
|
101
|
+
id: claude-sonnet-4-5
|
|
37
102
|
```
|
|
38
103
|
|
|
39
|
-
|
|
104
|
+
For automatic project session equips, add to `.loadouts/loadouts.yaml`:
|
|
40
105
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
106
|
+
```yaml
|
|
107
|
+
opencode:
|
|
108
|
+
defaultSession: [backend]
|
|
109
|
+
```
|
|
45
110
|
|
|
46
|
-
##
|
|
111
|
+
## Standalone and Pi
|
|
47
112
|
|
|
48
|
-
|
|
113
|
+
`loadouts tui` uses pi-tui and works without OpenCode. If a running service is
|
|
114
|
+
available, press `S` to select a conversation at the current directory, then use
|
|
115
|
+
session mode. Global/Project activation works independently of the service.
|
|
116
|
+
The standalone dashboard requires Node 22.19+.
|
|
49
117
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
| Codex | `experimental-runtime` | Yes | Yes | No |
|
|
55
|
-
| Claude Code | `filesystem-activation` | No | No | No |
|
|
56
|
-
| Cursor | `filesystem-activation` | No (not native) | No | No |
|
|
118
|
+
Pi's bundled `loadouts-runtime` extension uses the same dashboard and layers.
|
|
119
|
+
Session equipment is persisted in Pi custom entries, keyed by the actual session
|
|
120
|
+
ID, and injected through `before_agent_start`. Resuming/switching a Pi session
|
|
121
|
+
reconstructs its own equipment. Pi skills remain path-discovery references.
|
|
57
122
|
|
|
58
|
-
|
|
123
|
+
## Inspect compiled bundles
|
|
59
124
|
|
|
60
|
-
|
|
125
|
+
The existing compiler command remains useful independently of activation:
|
|
61
126
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
- Runtime v1 does not implement native skill hot-swap.
|
|
127
|
+
```sh
|
|
128
|
+
loadouts runtime base --tool opencode --json
|
|
129
|
+
loadouts runtime base --tool pi --system-block
|
|
130
|
+
```
|
|
67
131
|
|
|
68
|
-
|
|
132
|
+
OpenCode supports native per-session instruction entries and skill gating, plus
|
|
133
|
+
location-wide skill hot reload. Pi supports session system-prompt injection.
|
|
134
|
+
Other tools retain their existing compiler/filesystem capability flags.
|
|
69
135
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
- CLI command surface: `src/cli/commands/runtime.ts`
|
|
136
|
+
See [OpenCode V2 implementation details](opencode-v2-runtime.md) for ownership,
|
|
137
|
+
rollback, concurrency limits, cache behavior, probes and verification scripts.
|
package/docs/troubleshooting.md
CHANGED
|
@@ -51,7 +51,26 @@ loadouts sync # Re-render if needed
|
|
|
51
51
|
|
|
52
52
|
**Cursor:** Rules need `.mdc` extension — loadouts handles this automatically. Restart Cursor if rules don't appear immediately.
|
|
53
53
|
|
|
54
|
-
**OpenCode:** Rules render to `.opencode/rules
|
|
54
|
+
**OpenCode V2:** Rules render to `.opencode/rules/`, commands to `.opencode/commands/`, local plugins to `.opencode/plugins/`, and NPM plugins are configured with the `plugins` array in `opencode.json(c)`. Global instructions render to `~/.config/opencode/AGENTS.md`. OpenCode hot-reloads these sources.
|
|
55
|
+
|
|
56
|
+
### `/loadouts` not working in OpenCode runtime
|
|
57
|
+
|
|
58
|
+
1. Verify `plugins/loadouts/{package.json,index.js,tui.js}` exists under the
|
|
59
|
+
project's `.opencode/` or global `~/.config/opencode/` directory.
|
|
60
|
+
2. Check `loadouts info -l` or `loadouts info -g` for `opencode-runtime` and
|
|
61
|
+
`loadouts status` for shadowed/missing output. A source checkout needs
|
|
62
|
+
`npm run build` before activation.
|
|
63
|
+
3. Open OpenCode's Plugins dialog and inspect the server/TUI entries. Local
|
|
64
|
+
plugin directories do not install server dependencies; use the built,
|
|
65
|
+
self-contained artifact rather than copying `src/tui/hosts/opencode/`.
|
|
66
|
+
4. Test the independent HTTP path with
|
|
67
|
+
`loadouts session status --session ses_...`.
|
|
68
|
+
5. `/loadouts` and `ctrl+l` are client-side commands. The server entry is needed
|
|
69
|
+
for clean per-session skill advertisements; native permission denies alone
|
|
70
|
+
still leave skills listed on OpenCode 2.0.3.
|
|
71
|
+
|
|
72
|
+
If permissions were edited after equip, unequip preserves those edits and reports
|
|
73
|
+
it. See [runtime ownership and recovery](opencode-v2-runtime.md#persistence-and-ownership).
|
|
55
74
|
|
|
56
75
|
**Claude Code:** Verify rules exist in `.claude/rules/`. May require restarting the session.
|
|
57
76
|
|