Repository navigation
chore(upstream): pin objectstack and cloud, and a bump-upstream-docs workflow that lists the upstream diff since the last pin - #348
Merged
Conversation
…s workflow .objectstack-sha and .cloud-sha hold the upstream commit this site was last aligned to; bump-upstream-docs.yml moves one pin and opens a PR whose body lists the upstream commits and changed paths since the previous pin, so alignment becomes a review of a bounded diff. - .objectstack-sha: the commit tagged @objectstack/cli@17.7.0, the release the site's changelog names as current. - .cloud-sha: the placeholder `unpinned`; cloud is private and was not readable here. Its first bump records a commit and lists nothing. - .github/scripts/bump-upstream-pin.mjs: resolve, fetch blobless, refuse a non-descendant or malformed pin, write the pin and the PR body, with a --self-test registered in tools/ci-scripts/run-self-tests.mjs. - The workflow refuses to start without UPSTREAM_BUMP_TOKEN: GITHUB_TOKEN cannot read cloud, and a PR it opens runs no CI. - AGENTS.md: one paragraph on the pins and their bump cadence. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsR2jVWW1KcnCambZ59z5f
A skipped job's name expression is never evaluated, so the pull-request check list showed the template text verbatim. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsR2jVWW1KcnCambZ59z5f
Contributor
Author
维护者速读
席位意见: 建议批准。范围与 #337 重划后的三项一致,没有多余文件。合并后、第一次 bump 之前,还要在本仓设好 secret 席位核对 · ACCEPT · 2026-10-27T13:29Z ·
|
This was referenced Oct 27, 2026
Merged
Contributor
Author
|
Seat record · landing authorization · 2026-10-28T06:46Z · Tier H. No review from os-zhuang or hotlong arrived. On 2026-10-28 at 06:45:30Z the maintainer (Steedos,
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Steedos · project thread
Fixes #337
Clause-②: no
Metadata-protocol: none
维护者速读
.objectstack-sha(钉在@objectstack/cli@17.7.0发布提交)与.cloud-sha(占位unpinned),新增bump-upstream-docs.yml工作流与其脚本:每次挪一个钉点,开一个 PR,正文列出上游自上次钉点以来的提交与变更路径;AGENTS.md 加一段说明钉点与 bump 节奏。content/docs/into this site and pin both upstreams (objectstack, cloud) so alignment is a bounded diff review, not a periodic re-read (cloud#3199 ruling D) #337,按 2026-10-27 重新划定的范围:只留钉文件、bump 工作流、AGENTS.md 一段)。repository_dispatch时开 PR,PR 上只跑自检。回滚 = revert 本 PR。.github/workflows/bump-upstream-docs.yml(令牌用法与拒绝条件)、.github/scripts/bump-upstream-pin.mjs的bump()(祖先校验、取路径)、AGENTS.md新增的「Upstream pins」一段。node .github/scripts/bump-upstream-pin.mjs --self-test && node .github/scripts/bump-upstream-pin.mjs --check,应见自检通过、两个钉文件各一行 ✓。UPSTREAM_BUMP_TOKEN是合并之后跑 bump 才需要的,见 Acceptance notes。What changes
.objectstack-sha=4e4e881427a8b8b57696ad5bdb12792f2dac6556, the commit tagged@objectstack/cli@17.7.0. The site's own changelog (content/docs/resources/changelog.mdx, since docs: Build, API and operations pages up to ObjectStack 17.7 #333) names 17.7.0 as the current release, so that is the commit the site was last aligned to. npm'slatestis now 18.2.0, so the first objectstack bump is a real, non-empty review (measured below: 570 commits, 243 paths)..cloud-sha= the placeholderunpinned.objectstack-ai/cloudis private and not reachable from the session that wrote this PR, so no commit could be read or verified. The helper accepts the placeholder in a pin file but never starts a range from it: the first cloud bump records the commit its production deploy serves and lists nothing; the next one is the first bounded diff..github/workflows/bump-upstream-docs.yml—workflow_dispatch(upstream: objectstack or cloud, optionalsha) andrepository_dispatchof typebump-upstream-docswithclient_payload: { upstream, sha }. Moves one pin, opens a PR titledchore(upstream): pin NAME to …whose body lists the upstream commits and changed paths since the previous pin: objectstackcontent/docs,docs/releases,CHANGELOG.md(paths absent at both pins are named as not read;docs/releasesis absent today); cloudCHANGELOG.md,.changeset/. On a PR touching the pins, the helper or the workflow, apinsjob runs the self-test and--check.UPSTREAM_BUMP_TOKEN; the bump refuses to start without it (::error title=NOT CONFIGURED::…).GITHUB_TOKENcannot read cloud, and a PR opened withGITHUB_TOKENtriggers nopull_requestworkflows, so CI would never run on a bump. Whether this repository lets Actions open PRs at all is NOT MEASURED: the Actions-permissions endpoints answer 403 through this session's proxy, and no PR here has ever been opened bygithub-actions..github/scripts/bump-upstream-pin.mjs— resolves the target (objectstack with nosha: npm'slatest@objectstack/cli, then its tag's peeled commit; cloud:sharequired), fetches the upstream blobless, refuses a non-descendant, a malformed pin, a short SHA or a ref name, and writes the pin and the body. The body keeps both lists intextfences, so upstream(#NNNN)references neither link to this repository's issues nor act as closing keywords here, and caps itself under GitHub's 65536-character limit with the omitted count stated. The token reaches git only throughGIT_CONFIG_*variables.tools/ci-scripts/run-self-tests.mjs— oneSELF_TESTEDentry plus a header paragraph; its guard fails thebuildjob for an unlisted top-level self-test. File-surface extension confirmed by the seat (card comment 6442760321).AGENTS.md— one paragraph,## Upstream pins: what each pin means, when it moves, "don't edit a pin by hand", what the bump body lists, and the placeholder.Tests
--self-test: 17 pin/input cases plus upstream names (including__proto__/toString), tag peeling, plan, body bounds and fencing, token carriage. Proven able to go red by three on-disk mutations, each restored byte-identically (sha256 compared): fence escaping removed, the same-commit no-op removed, the SHA rule widened to 7 characters — each exits 1 naming the check.objectstack-ai/objectstack(blobless fetch, about 5 s, 65 MB): 17.7.0 to 18.2.0 resolves through npm and the tag, 570 commits, 243 paths, body 59564 characters with 248 commit lines cut and stated.--shaolder than the pin, pin left unchanged); cloud with nosha; cloud with no token (fetch refused, hint namesUPSTREAM_TOKEN); unknown upstream;sha=main; abbreviated pin under--check. Same commit again: exit 0,changed=false, no body.run:steps executed locally from the parsed YAML against a local bare origin, with a shim forgh: secret absent exits 1 with NOT CONFIGURED; secret present commits only.objectstack-shaasgithub-actions[bot], pushesbump-upstream-docs/objectstack-27f38ad, callsgh pr create --base main --head … --title … --body-file …; a rerun with that branch already pushed exits 1 naming it.actionlintis NOT MEASURED (download refused in this container); everyrun:block passesbash -nand the YAML parses.Acceptance notes
UPSTREAM_BUMP_TOKEN; and set the first.cloud-shaby dispatching a cloud bump with the commit cloud production serves (ideally from cloud's deploy workflow, as arepository_dispatchwith{ "upstream": "cloud", "sha": "…" }).GITHUB_TOKEN may open PRs herestays NOT MEASURED; the design does not depend on it.content/docs/cloud/, no hand-edit gate, no mount point.Verification
Local gates at
220b106, each exit code captured before any pipe:Gates
The local preview render smoke is not owed: nothing under
apps/docsorcontent/docschanges.Generated by Claude Code