release: v2.3.0 — image-baked fallback skills + opencode 1.17.10 + mempalace 3.5.0
Validate / base-change-warning (push) Successful in 14s
Publish Docker Image / resolve-versions (push) Successful in 9s
Publish Docker Image / base-decide (push) Successful in 13s
Validate / validate-base (push) Failing after 3m26s
Validate / validate-omos (push) Failing after 4m28s
Publish Docker Image / build-base (push) Successful in 37m26s
Publish Docker Image / smoke-omos (push) Successful in 4m36s
Publish Docker Image / smoke-base (push) Successful in 7m41s
Publish Docker Image / build-variant-base (push) Successful in 13m47s
Publish Docker Image / build-variant-omos (push) Successful in 19m24s
Publish Docker Image / promote-base-latest (push) Successful in 8s
Validate / docs-check (push) Successful in 6s
Publish Docker Image / update-description (push) Successful in 9s

- Add image-baked fallback skills (opencode-devbox-environment, mempalace) +
  harness instruction (instructions/opencode-devbox.md) under
  /usr/local/share/opencode-devbox/, symlinked in by entrypoint-user.sh
  (skills only-when-absent; instruction symlink to image, never copied into the
  devbox-opencode-config volume). Ported from pi-devbox v1.2.0/v1.2.1, adapted
  to opencode's ~/.config/opencode/instructions/ auto-load model. No
  pi-extensions skill (opencode has no fork/recall).
- Bump opencode 1.17.8 -> 1.17.10.
- Bump mempalace 3.4.0 -> 3.5.0 (lockstep with pi-devbox v1.2.2); remove the
  obsolete diary_write anyOf perl workaround (fixed upstream, issue #1728).
- Fix stale ssh-lan.conf ProxyJump guidance comment in setup-lan-access.sh
  (mirrors pi-devbox 8de0fad); comment-only.
- smoke-test.sh + recreate-sanity-check.sh assert baked source + resolved links.
- Docs: README Custom skills, AGENTS.md duties + MINOR example, CHANGELOG.
This commit is contained in:
pi
2026-06-25 09:58:13 +02:00
parent 992cb6702f
commit b9039f577e
13 changed files with 797 additions and 41 deletions
+74
View File
@@ -6,6 +6,80 @@ Tags follow **independent semver** (since `v2.0.0`) — they version *this image
---
## v2.3.0 — 2026-06-25
Minor release. Adds an **image-baked fallback skills + harness-instruction**
mechanism (ported from pi-devbox v1.2.0/v1.2.1, adapted to opencode's
`instructions/` model), bumps **opencode `1.17.8` → `1.17.10`** and **mempalace
`3.4.0``3.5.0`** (dropping the now-obsolete `diary_write` schema
workaround), and ports the one outstanding doc fix from pi-devbox's SSH sidecar
work. Defaults are unchanged when a skillset is mounted, so the canonical CI
build differs only by the version bumps and the additive image layer.
### Added: image-baked fallback skills + harness instruction
The image now ships two skills and one harness instruction under
`/usr/local/share/opencode-devbox/`, linked into place by `entrypoint-user.sh`
on every start, so a container behaves correctly **even with no `skillset` repo
mounted**:
- **`opencode-devbox-environment`** (authored here) — the container-shaped facts
an agent needs: the three persistence tiers (and why image-owned content must
live under `/usr` rather than a home dir the `devbox-opencode-config` volume
shadows), the interactive-vs-tool-shell alias gotcha (`dssh`/`dscp`/`cat``bat`
only exist in interactive bash), host + LAN SSH reachability via the
`~/.ssh-local` sidecar and ControlMaster, split-horizon DNS, uv-first Python,
and the OMOS variant. Adapted from pi-devbox's `pi-devbox-environment`, minus
the pi-only pieces (pi-studio, fork/recall).
- **`mempalace`** — a vendored snapshot of the skillset's consumer skill
(memory-continuity protocol). No `pi-extensions` skill is carried over —
opencode has no `fork`/`recall` extensions.
- **`instructions/opencode-devbox.md`** — symlinked into
`~/.config/opencode/instructions/`, which opencode auto-loads as a
session-start system prompt. It proactively points the agent at the
`opencode-devbox-environment` skill and the MemPalace continuity protocol, so
a fresh container picks them up rather than relying on description-matching.
Precedence is preserved: skills link **only-when-absent** (a mounted skillset or
an OMOS-bundled skill of the same name always wins), and the instruction uses a
distinct filename so it never collides with a mounted skillset's instructions.
Link targets live in the image, so `docker compose pull` + recreate refreshes
them for free — nothing is copied into the persistent config volume (which would
freeze it; cf. the OMOS-skills history in `docs/omos-skills.md`). Build-time
(`smoke-test.sh`) and runtime (`recreate-sanity-check.sh`) assertions cover both
the baked source and the resolved links. See
`rootfs/usr/local/share/opencode-devbox/skills/VENDORED.md`.
### Changed
- **opencode `1.17.8``1.17.10`.** Highlights across 1.17.91.17.10: MCP
server instructions are now added to session context; MCP resource template
listing + resource read tools; a new `--mini` CLI mode; skill base
directories emitted as filesystem paths instead of `file://` URLs; assorted
MCP/OAuth and agent-step-limit bugfixes. (Source: `anomalyco/opencode`
releases.)
- **mempalace `3.4.0``3.5.0`** (lockstep with pi-devbox v1.2.2). 3.5.0 ships
the upstream fix for the top-level-`anyOf` `diary_write` schema (issue #1728 /
PR #1717, merged 2026-06-14): the advertised schema is now
`"required": ["agent_name"]` with entry/content enforced at dispatch, which
the Anthropic tools API accepts.
### Removed
- **The `diary_write` top-level-`anyOf` workaround in `Dockerfile.base`.** The
`perl` patch of the installed `mcp_server.py` is gone now that 3.5.0 fixes it
at the source (verified against the published wheel).
### Fixed
- **Stale `ssh-lan.conf` guidance comment** in `setup-lan-access.sh`. The
`INCLUDE_BLOCK` comment previously implied LAN-peer `ProxyJump` overrides go
in `~/.ssh/config` (typically bind-mounted read-only); corrected to point at
the host-owned `~/.config/devbox-shell/ssh-lan.conf` (mirrors pi-devbox
`8de0fad`). Comment-only; no behavior change.
---
## v2.2.0 — 2026-06-19
Ports the build-provenance, CI-hardening, SSH and shell fixes that landed in