From f7e23d236c2607b44ec7af605823703e5ac11a42 Mon Sep 17 00:00:00 2001 From: pi Date: Wed, 1 Jul 2026 23:35:48 +0200 Subject: [PATCH] =?UTF-8?q?release:=20v2.4.0=20=E2=80=94=20nano=20+=20micr?= =?UTF-8?q?o=20editors,=20CI=20hardening,=20opencode=201.17.10=20=E2=86=92?= =?UTF-8?q?=201.17.13?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Promotes the Unreleased block to v2.4.0. Bundled contents: - feat: nano + micro non-modal editors (d9ad634) — Dockerfile.base change → base rebuild - ci: sh-vs-bash guard + base-latest digest promote, ported from pi-devbox (acb2096) - feat: global gitignore baked into the image (6639ba5) - opencode 1.17.10 → 1.17.13 (Dockerfile.variant) Also registers .gitea/workflows/lint.yml in AGENTS.md's workflow list. DOCKER_HUB.md unchanged (HUB_TEMPLATE untouched; --check passes). Pre-flight: opencode-ai@1.17.13 confirmed on npm (== latest). --- AGENTS.md | 1 + CHANGELOG.md | 17 ++++++++++++++++- Dockerfile.variant | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 5a8f9c1..7c6a738 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -29,6 +29,7 @@ Docker image packaging [opencode](https://opencode.ai) into a production-ready d - `.gitea/README.md` — **read this first** if you're touching CI. Architectural overview of the build pipeline (production vs split-base), wall-clock estimates, NPM_CONFIG_PREFIX gotcha, runner expectations, migration plan. - `.gitea/workflows/validate.yml` — lightweight amd64 build + smoke test on push to main and PRs. Also runs the DOCKER_HUB.md sync check. - `.gitea/workflows/docker-publish-split.yml` — production CI pipeline on tag push (`v*`). Two-phase split-base: computes base hash, conditionally builds base, runs 2 parallel smoke tests, then 2 parallel multi-arch variant builds, promotes `base-latest` alias, updates Docker Hub description. +- `.gitea/workflows/lint.yml` — cheap (~10s) workflow-lint on every push/PR/dispatch: a Gitea-accurate shell guard (`scripts/check-workflow-shell.sh`) plus pinned actionlint + shellcheck. The guard asserts every `run:` step resolves to `bash` under Gitea's `sh` default, closing the actionlint blind spot (actionlint models GitHub, whose default `run` shell is bash). Ported from pi-devbox. ## Versioning scheme diff --git a/CHANGELOG.md b/CHANGELOG.md index 23f4048..5f013ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,22 @@ Tags follow **independent semver** (since `v2.0.0`) — they version *this image --- -## Unreleased +## v2.4.0 — 2026-07-01 + +Minor release. Adds two **non-modal editors** (`nano` + `micro`) alongside +nvim, ports **CI hardening** from pi-devbox (the sh-vs-bash workflow guard and +the `base-latest` digest-based promote fix), bakes a **global gitignore** into +the image, and bumps **opencode `1.17.10` → `1.17.13`**. Because +`Dockerfile.base` changed (nano + micro), this release rebuilds the base image. + +### Changed + +- **opencode `1.17.10` → `1.17.13`** (three upstream patches). Highlights: + session snapshots + revert controls (1.17.11); MCP OAuth reconnect/refresh + fixes, a TUI yolo auto-approve mode, and better default small models + (1.17.12); forced reasoning mode for OpenAI-compatible reasoning models plus + a GitHub Copilot stale-response-ID fix (1.17.13). Full notes: + . ### Added diff --git a/Dockerfile.variant b/Dockerfile.variant index 7eeb0de..c994428 100644 --- a/Dockerfile.variant +++ b/Dockerfile.variant @@ -39,7 +39,7 @@ ARG USER_NAME=developer # edit, so the cache-hit class of bug that bit pi-devbox v0.74.0.. # v0.75.5 cannot apply here. ARG INSTALL_OPENCODE=true -ARG OPENCODE_VERSION=1.17.10 +ARG OPENCODE_VERSION=1.17.13 RUN if [ "${INSTALL_OPENCODE}" = "true" ]; then \ NPM_CONFIG_PREFIX=/usr npm install -g opencode-ai@${OPENCODE_VERSION} && \ opencode --version ; \