release(v1.11.0): pi 1.1.0, pi-obsmem 022da5e, pi-atelier v0.15.0, all floating refs at newest
Lint / hadolint (push) Successful in 10s
Lint / skill-floor (push) Successful in 11s
Lint / actionlint (push) Successful in 19s
Lint / doc-drift (push) Successful in 22s
Publish Docker Image / lint-gate (push) Successful in 23s
Publish Docker Image / resolve-versions (push) Successful in 17s
Publish Docker Image / base-decide (push) Successful in 11s
Publish Docker Image / build-base (push) Successful in 50m31s
Publish Docker Image / smoke (push) Successful in 5m26s
Publish Docker Image / smoke-studio (push) Successful in 11m35s
Publish Docker Image / build-variant (push) Successful in 17m18s
Publish Docker Image / update-description (push) Successful in 9s
Publish Docker Image / promote-base-latest (push) Successful in 8s
Publish Docker Image / build-variant-studio (push) Successful in 20m28s

- ARG PI_VERSION 1.0.0 -> 1.1.0. Audited against the npm tarballs: the only
  breaking change in 1.0.1..1.1.0 is 1.0.3's azure-openai-responses -> azure
  rename, which nothing here uses. pi-agent-core's finishTurn handling is
  byte-identical between 1.0.0 and 1.1.0.
- ARG PI_OBSMEM_REF 731c3d4 -> 022da5e (= master): #81 compaction keeps
  unobserved context, #93 prebuilt dist/index.ts. src/agents/ unchanged.
- ARG PI_ATELIER_REF/VERSION v0.13.0 -> v0.15.0. Sidebar Auto/Manual modes,
  Manual by default. README's sidebar section updated.
- SKILLSET_SNAPSHOT_REF e9e45f7 -> 96b840e via vendor-mempalace-skill.sh.
  The vendored bytes are unchanged.
- Dockerfile.base BASE_REBUILD_DATE marker refreshed, at no cost, because the
  base rebuilds anyway (rootfs + entrypoint-user.sh changed in 11e512e).
- CHANGELOG: Unreleased -> v1.11.0 with the audit. The CI bypass of the obsmem
  pin is recorded under Still open.

Exercised before tagging, with pi 1.1.0 from a temp prefix in a real pty
against -ne controls:
- obsmem turn cap: 11 turns uncapped, exactly 3 capped.
- atelier v0.15.0 paints in both renderers (controls 0/3, render-proofed).
- obsmem 022da5e registers /om:status and /om:view.
- All 11 pi-extensions a88fa99 extensions load.

Local gates: check-doc-drift (rc 0, check 9 names every moved component),
lint-shell, check-workflow-shell, test-link-pi-models (13/13),
check-dockerfile-directives, check-skill-floor, check-base-hash.
This commit is contained in:
2026-10-12 16:54:55 +02:00
parent 3f46f5fd29
commit 4ee94da523
4 changed files with 131 additions and 15 deletions
+52 -5
View File
@@ -231,7 +231,34 @@ ARG USER_NAME=developer
# is documented (README -> "Terminal UI mode"): `"tuiMode": "regular"` in
# ~/.pi/agent/settings.json, `pi --tui-mode regular` for one session, or the
# same key in a project's .pi/settings.json.
ARG PI_VERSION=1.0.0
#
# v1.11.0: 1.0.0 -> 1.1.0. MEASURED 2026-10-12 against the published npm
# tarballs for 1.0.0 and 1.1.0, unpacked side by side, by the same method as
# the v1.10.2 audit above:
# 1. ONE `### Breaking Changes` section in 1.0.1..1.1.0: 1.0.3 renamed the
# provider `azure-openai-responses` -> `azure`. 0 uses here: grepped
# rootfs/, ~/.pi/agent/settings.json, pi-toolkit's settings.example.json
# and the fleet's shared models.json. Everything else is additive or a fix
# (OSC 7501 program status, `+name`/`-name` in --tools, `durationMs` and
# `outputPad` in the tool render context, `aborted` on agent_settled).
# Two user-visible changes: Home/End always move the editor cursor
# (fullscreen transcript top/bottom moved to Ctrl+Home/Ctrl+End, 1.0.3),
# and OSC 7501 status reporting (PI_PROGRAM_STATUS=0 turns it off, 1.1.0).
# 2. pi-agent-core 1.0.0 -> 1.1.0: the finishTurn context in dist is
# BYTE-IDENTICAL; the only agent-loop diff adds `durationMs`. The obsmem
# turn-cap probe drove the real 1.1.0 agentLoop: uncapped ran its chosen
# 11 turns, maxTurns=3 stopped at exactly 3 + agent_end.
# 3. The 6 named pi.* APIs (registerTool, registerCommand, registerFlag,
# getFlag, sendMessage, sendUserMessage) appear in the same number of dist
# files in 1.0.0 and 1.1.0. atelier's internals TuiMainScreen and
# renderLayoutFrame are both still in 1.1.0's dist.
# 4. engines.node is still `>=22.19.0`; the image ships 24.x.
# Exercised before tagging, from a temp prefix with pi 1.1.0 and a throwaway
# PI_CODING_AGENT_DIR, in a real pty, with -ne controls: atelier v0.15.0 paints
# ACTIVITY/READY/TOOLS in BOTH renderers (controls 0/3, every arm render-proofed);
# obsmem 022da5e registers /om:status and /om:view (control: none); and all 11
# pi-extensions a88fa99 extensions load with no error (control: no /aws-sso).
ARG PI_VERSION=1.1.0
ARG PI_TOOLKIT_REF=main
ARG PI_EXTENSIONS_REF=main
# Repo URLs default to the canonical gitea origin but are overridable so a
@@ -253,7 +280,18 @@ ARG PI_OBSMEM_REPO=https://github.com/elpapi42/pi-observational-memory.git
# 40-char match (SHA40), so a short pin would fall through to its
# branch-or-tag lookup, fail, and downgrade that component's drift check to a
# silent SKIP — a pin that reads fine and is no longer verified.
ARG PI_OBSMEM_REF=731c3d49288580f4d79cabdbfbc0d16b34db0f41
# v1.11.0: 731c3d4 -> 022da5e (master, 2026-10-05; still no newer tag than
# 3.1.4). Two commits: #81 never drops unobserved context at compaction
# (new settings compactionMaxRetainedTokens, consolidateWhenIdle,
# piAutoCompactionEnabled, all defaulted), and #93 makes pi load a prebuilt
# dist/index.ts instead of 32 TS sources. The bundle is committed, so
# `npm install --omit=dev` below needs no build step. src/agents/ is
# UNCHANGED between the two SHAs, so the finishTurn migration is intact.
# KNOWN GAP, not fixed here: docker-publish.yml's resolve-versions still
# resolves obsmem from `master` and passes it as --build-arg, which overrides
# this default (verified two-sided on buildx 2026-10-12). CI builds therefore
# get the pin only while master == pin, as it is at this release.
ARG PI_OBSMEM_REF=022da5e5554d04dfdc876ed7dac4a42c6b83dfd4
# pi-atelier (TUI sidebar: ordered panels, split-pane, themes) is PINNED TO A
# TAG, which CI resolves to that tag's commit SHA — same treatment as
# pi-studio, for reproducibility plus cache-busting.
@@ -332,9 +370,18 @@ ARG PI_ATELIER_REPO=https://github.com/michaelmjhhhh/pi-atelier.git
# - Residual: v0.13.0 is SAME-DAY upstream (2026-10-02). Acceptance proves
# the sidebar PAINTS with the two-sided check from 0.84.4/0.85.1 that can
# tell "loaded" from "silently absent" — "no crash" is not the test.
ARG PI_ATELIER_REF=v0.13.0
#
# v1.11.0: v0.13.0 -> v0.15.0 (v0.14.0 and v0.15.0 both 2026-10-03). The
# peerDependencies floor is unchanged (pi >=0.84.0), atelier still has zero
# runtime dependencies, and it still imports only the public package exports.
# Behaviour changes: v0.14.0 auto-collapses the Sidebar when the terminal is
# narrow (Auto/Manual modes). v0.15.0 starts in Manual mode, recolours the
# panels and simplifies the Activity rows. The startup preference is still
# `showSidebarOnStartup` (default true, src/config.ts:38). Painted in both
# renderers on pi 1.1.0 before tagging (see the PI_VERSION note).
ARG PI_ATELIER_REF=v0.15.0
# Human-readable tag PI_ATELIER_REF was resolved from; recorded as a label.
ARG PI_ATELIER_VERSION=v0.13.0
ARG PI_ATELIER_VERSION=v0.15.0
RUN set -e && \
# git_fetch_ref: clone-equivalent helper that accepts EITHER a branch name
@@ -659,7 +706,7 @@ ARG MEMPALACE_TOOLKIT_REF=main
# no ~67-minute base rebuild. (scripts/check-base-hash.sh scans only
# Dockerfile.base, so no folding into the base hash is required — nor would
# it be correct, since this ARG changes nothing about the base's contents.)
ARG SKILLSET_SNAPSHOT_REF=e9e45f7acdde490c3b5d24ce5f508bff8785c2c7
ARG SKILLSET_SNAPSHOT_REF=96b840ee43beca65a190772021a8ef370145cde1
# Dockerfile.base sets description="pi-devbox — base image (variant-independent)"
# and every variant INHERITS it, so both published images used to advertise