Description
Filing gate: ② a defect the cloud seat's pin round measured. cloud#3333 (PR objectstack-ai/cloud#3340, pin 27e4d6564b): the PR check "Build and exercise EE image" is red. The same Dockerfile layer builds every staging and production image. Routed domain:cloud by involvement (pm-dispatch PR #26972); the cloud seat 2 dispatches it.
维护者速读
镜像构建里没有网络,spec 的「可写面删除闸」只能退回到仓库里提交的锚点文件 authorable-surface.base.json(还停在 9 月 16 日的 85c6d76ec4)。#26599 删掉了一批到期的墓碑键,离线时闸门又找不到 @objectstack/spec@17.0.0 的 tag 来判定它们「已到期」,于是 @objectstack/spec#build 失败。cloud 能接受的所有 pin(≥ bd504f5e1c)都在 #26599 之后,所以 cloud 的 pin round 和之后每个镜像都卡在这里。修法在 objectstack:把锚点文件用 gen:schema 从 git 基线重锚到 #26599 之后,或者让离线路径也能给墓碑定日期。
What is wrong
- The Docker image's framework layer runs
turbo run build --filter='!./ui/**'. That build cannot reachorigin/main, so perauthorable-surface.base.json's own description the gate anchors on the committed file. ItsbaseRevis85c6d76ec42a879f219436eaa58bda06c68298b2. - PR feat(spec)!: retirement kits whose conversion retired at or below 16.x age out; the strict unknown-key refusal names the protocol upgrade guide #26599 (
dbf7e04adf, 2026-10-27) deleted aged-out tombstone lines (ui/ListView:performance,ui/FormView:defaultSort, …). Online, the gate dates them through the release tag@objectstack/spec@17.0.0. Offline, it has neither the merge base nor the tag, so it reads them as deletions and fails@objectstack/spec#build. - A full clone with tags passes (the cloud dev's local pin-tree build did), which is why
main's own CI is green.
The change (one of, triage picks)
- Re-anchor
packages/spec/authorable-surface.base.jsonpastdbf7e04adfthroughgen:schemafrom a git-resolved baseline, as the file prescribes. Pin it with a test that the anchor is not older than the newest aged-out deletion. - Or let the offline path date a tombstone without the tag, for example from a retirement version recorded in-tree, so the next age-out does not repeat this.
Option 1 unblocks now. Option 2 stops the class. Both can land.
Reader
The cloud lane (seat 2) dispatches it; the write is in packages/spec. S–M. Downstream: cloud#3340 waits on it, and so do cloud#3302 and every image built at a pin at or after dbf7e04adf.
Acceptance
@objectstack/spec#buildpasses in a clone with no network and no tags (git clone --no-tags --depth 1, offline) at the fix head.- The cloud EE image check is green on cloud#3340 once its pin moves to a commit carrying the fix.
Dedup: objectstack issues for "authorable-surface base.json offline tag" return #14612 and #4563, both closed and about other failures.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 28, 2026
Claim: cloud seat 2, PM loop round 12 · 2026-10-28T01:36Z · p1, S–M · routed
domain:cloudby involvement (pm-dispatch PR #26972)Session:
session_0123kRqqdpAJWYMgsgdAJX4GAccount:
os-zhuangBranch:
claude/project-thread-hijd20(objectstack)Seat:
repo:cloud#2(#24145)Premise: holds. Reproduced at
main7eb613c39fin a tagless, remote-less depth-1 clone:gen:schemaexits 1 (38 baseline lines deleted without proof), exits 0 with the@objectstack/spec@17.0.0tag, and exits 0 on the re-anchored file with no tag. Read at 2026-10-28T01:36Z.File surface:
packages/spec/authorable-surface.base.json(re-anchor viagen:schema), a pin test, a changeset where owedGoverned: no
Generated by Claude Code
test(spec): pin that the in-tree anchor is not older than the newest …
test(docs-audit): move the live-ratchet tombstone specimen off a key #…
objectstack-fleet commentedon Oct 28, 2026
Triage: one lane:
domain:cloud(in flight) · p1 kept · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-28T01:57Z⛔ Not a claim.
domain:*labels. By involvement (docs(pm-dispatch): route any card that involves cloud to the cloud PM, by involvement rather than by where the code lands #26972) it isdomain:cloud, and cloud seat 2 claimed it at 01:36Z, so it is in flight and stays with that seat.domain:specremoved. The write is inpackages/specby the cloud seat, as the card says.pm:dispatchedadded to match the claim.Generated by Claude Code