# Sanitized runtime observations — 2026-10-24 UTC

Provider: `acpRegistry_opencode_v2`, registry OpenCode V2, managed 2.1.4.
Executable: `/home/ubuntu/wt/issue-24375/.t3/tools/opencode-v2/2.1.4/linux-x86_64/opencode`; `--version` => `opencode v2.1.4`.
HOME `/home/ubuntu`; shell XDG_CONFIG_HOME and Claude compatibility disable flags unset. Head server port15549 owner PID1083582 confirmed cwd /home/ubuntu/wt/issue-24375/apps/server. Read-only allowlist inspection confirmed HOME=/home/ubuntu, USERPROFILE/XDG_CONFIG_HOME/OPENCODE_DISABLE_CLAUDE_CODE/OPENCODE_DISABLE_CLAUDE_CODE_SKILLS unset, matching native shell. Full environment was neither printed nor published.
Cwd `/home/ubuntu/wt/issue-24375/apps/server` on both final visual repros. Base refresh on the same cwd: `[{instanceId:"acpRegistry_opencode_v2",version:"2.1.4",skills:[]}]`; no workspaceSnapshots property. Head selected snapshots are adjacent JSON artifacts (filtered to public fixtures).

Native oracle used that exact executable, not the separately cached native 1.18.18 binary:

```
opencode api skill.list --param 'location[directory]=/home/ubuntu/wt/issue-24375/apps/server'
```

First requests while location initialization was underway returned zero entries; a subsequent completed request returned count 26, including the selected ghdrop and demo records in native-selected-skills.json. This is selected-fixture parity, not exhaustive native parity. Native global description preserves an em dash where the app normalizes punctuation.

Head fresh snapshot for `/tmp` included global ghdrop and excluded workspace demo. Adding the long controlled fixture using seed-fixture.sh, then fresh refresh, exposed it. Removing it from both task worktrees and fresh refresh removed it. Existing demo remained. Advertised slash commands init/review/compact remained in the head snapshot.

Real ACP invocation 1: selected demo, prompt `Use the selected skill by loading its instructions. Do not edit files or run commands. Reply only with the response required by that skill.` Result after 6.2 seconds: `issue-24375-demo`. Expanded Tool metadata showed skill id, correct ancestor directory, truncated false. See runtime-acp-skill-loaded.png and after-V1-V3-runtime.mp4.

Real ACP invocation 2: selected temporary long skill; harmless marker instructions in seed-fixture.sh. Result after 7.1 seconds: `ISSUE_24375_CONTROLLED_LOADED`. See after-global-long-refresh-marker.mp4 around 20 seconds. Fixture removed afterward.

Plain editor functional assertion: composerRichTextEnabled false, actual data-composer-rich-text `false`; composer draft prompt after selection exactly `$issue-24375-demo ` (trailing space). Restored rich text true.

V4 used real stopped ACP turns on both servers, not fabricated assistant text. Both requested and produced:

```
The skill $issue-24375-demo is available.

- Use $issue-24375-demo for this fixture.
```

After selected the skill; before entered its literal name. Thread titles normalized through Rename thread UI to `ACP Discovery Fixture Reference`. Both displayed 10:12 AM. Head thread dafdcb3d-d877-4239-8eca-c879a07c17a7; base 80926788-a5a1-45ad-a8f5-96c0d91822a9. No DB seeding occurred while servers ran.
