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
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:
@@ -184,6 +184,56 @@ if [ "${OMOS_SKILLS:-true}" = "true" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# ── Image-baked fallback skills + harness instruction ────────────
|
||||
# Baked under /usr/local/share/opencode-devbox/ (see that dir's VENDORED.md).
|
||||
# Linked into place on every start so a container behaves correctly even with
|
||||
# NO skillset mounted. Targets live in the image, so `docker compose pull` +
|
||||
# recreate refreshes them for free. Whole block is non-fatal (`{ … } || true`):
|
||||
# a transient link failure must never brick container startup.
|
||||
#
|
||||
# Precedence is intentional: this runs AFTER the skillset deploy and the OMOS
|
||||
# bundled-skills block above, and the skill links are ONLY-WHEN-ABSENT, so a
|
||||
# mounted skillset or an OMOS-bundled skill of the same name always wins; the
|
||||
# baked copies merely fill gaps.
|
||||
DEVBOX_SKILLS_SRC=/usr/local/share/opencode-devbox/skills
|
||||
if [ -d "$DEVBOX_SKILLS_SRC" ]; then
|
||||
{
|
||||
mkdir -p "$HOME/.agents/skills"
|
||||
for _sk in "$DEVBOX_SKILLS_SRC"/*/; do
|
||||
[ -d "$_sk" ] || continue
|
||||
_skname=$(basename "$_sk")
|
||||
# Only-when-absent: never clobber a skillset/OMOS/user skill of this name.
|
||||
if [ ! -e "$HOME/.agents/skills/$_skname" ]; then
|
||||
ln -s "${_sk%/}" "$HOME/.agents/skills/$_skname"
|
||||
fi
|
||||
done
|
||||
} || true
|
||||
fi
|
||||
|
||||
# Harness instructions: opencode auto-loads ~/.config/opencode/instructions/*.md
|
||||
# as a session-start system prompt. ~/.config/opencode is the persistent
|
||||
# devbox-opencode-config volume, so we SYMLINK to the fixed image path (never
|
||||
# copy — a copy would freeze in the volume) and refresh our own symlink each
|
||||
# start. A real file of the same name (e.g. one a user dropped) is left alone;
|
||||
# the baked filename (opencode-devbox.md) is distinct from skillset's
|
||||
# instructions, so there is no collision with a mounted skillset.
|
||||
DEVBOX_INSTR_SRC=/usr/local/share/opencode-devbox/instructions
|
||||
if [ -d "$DEVBOX_INSTR_SRC" ]; then
|
||||
{
|
||||
mkdir -p "$HOME/.config/opencode/instructions"
|
||||
for _instr in "$DEVBOX_INSTR_SRC"/*.md; do
|
||||
[ -f "$_instr" ] || continue
|
||||
_iname=$(basename "$_instr")
|
||||
_dst="$HOME/.config/opencode/instructions/$_iname"
|
||||
# Leave a real file alone; (re)create our own symlink otherwise.
|
||||
if [ -e "$_dst" ] && [ ! -L "$_dst" ]; then
|
||||
continue
|
||||
fi
|
||||
ln -sfn "$_instr" "$_dst"
|
||||
done
|
||||
} || true
|
||||
fi
|
||||
|
||||
CONFIG_DIR="$HOME/.config/opencode"
|
||||
OMOS_CONFIG="$CONFIG_DIR/oh-my-opencode-slim.json"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user