Repository navigation
chore(ci)(deps): bump actions/upload-pages-artifact from 3 to 4 - #25
Closed
dependabot[bot] wants to merge 1 commit into
Closed
dependabot[bot] wants to merge 1 commit into
dependabot[bot] wants to merge 1 commit into
Conversation
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-pages-artifact/releases) - [Commits](actions/upload-pages-artifact@v3...v4) --- updated-dependencies: - dependency-name: actions/upload-pages-artifact dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Author
|
Looks like actions/upload-pages-artifact is no longer a dependency, so this is no longer needed. |
dependabot
Bot
deleted the
dependabot/github_actions/actions/upload-pages-artifact-4
branch
January 21, 2026 06:36
This was referenced May 25, 2026
This was referenced Sep 1, 2026
akarma-synetal
pushed a commit
to akarma-synetal/framework
that referenced
this pull request
Sep 9, 2026
…with namespace regexp on 8 objects (objectstack-ai#15122) * docs(audits): objectstack-ai#14096 census — ledger vs namespace regexp disagree on 8 objects Ruling item 1 (director seat, 总监批 objectstack-ai#25, 2026-09-01, maintainer verbatim 「同意」): count how many platform-namespace objects the hand-adjudicated tenancy ledger (`PLATFORM_OBJECT_TENANCY`) judges differently than the namespace regexp `/^(sys_|cloud_|ai_)/` that both seed paths still use. Result: 8, not 0 — sys_file, sys_upload_session, sys_approval_request, sys_approval_action, sys_approval_approver, sys_automation_run, sys_notification_delivery, sys_record_share. Per ruling item 3 this STOPS here: no option (A/B/C) is implemented, no seed path is touched, no row on disk is touched. The full predicate, the header control (84/25/59 reproduced), the three-site re-derivation and the disagreement table are in the audit doc; the census script is self-contained and re-runnable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0112hMx9hjJ9BgB28X97DS68 * fix(audits): guard objectstack-ai#14096 census against a silent-zero broken ledger read Reviewer on PR objectstack-ai#15122 reproduced a silent-failure mode: emptying PLATFORM_OBJECT_TENANCY to {} and rebuilding still prints reproduced_matches_header: true and exits 0, with disagreement_count silently reading 0 -- indistinguishable from a genuine zero. The header control never reads the ledger (it's an AST census of the object files), so it validates the population and tenant-field logic and proves nothing about the ledger import. Add a hard floor (LEDGER_ENTRY_COUNT_FLOOR = 5, current ledger has 9 entries) on the imported PLATFORM_OBJECT_TENANCY: below it, the script throws a loud, explicit error instead of reporting a clean zero. Also correct the audit doc's "its other outputs can be trusted" sentence to say precisely what the control does and does not cover, and add a "What this census does not claim" section scoping the result (does not measure actual row counts on any deployment, or when each ledger verdict was decided relative to the seed paths' code) without softening it -- the count is still 8, confirmed three ways. Reproduced the reviewer's break on this branch (empty ledger -> rebuild -> exit 0, disagreement 0), applied the fix, reproduced again (same mutation -> rebuild -> now exit 1, loud error), then restored the ledger file and proved the restore by git hash-object equality against git rev-parse HEAD, plus empty git diff HEAD and git status --porcelain. Re-ran on the real, rebuilt ledger: still reports 8. Part of objectstack-ai#14096 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0112hMx9hjJ9BgB28X97DS68 * fix(audits): stop check:pnpm-filter-targets red on the new error message My own error-message string in the last commit wrote the rebuild hint as `pnpm --filter '@objectstack/objectql^...' build`, using an escaped single quote (\') around the filter target. check:pnpm-filter-targets scans raw JS source text (masking comments, not string-literal escapes), so it read the escape sequence as `--filter \` and correctly flagged that as a filter naming no real package -- a real, self-inflicted finding, not a bug in the gate. Reworded to reference the existing documented commands (the module doc comment above, and the audit doc's "Commands to re-run this census" section) instead of respelling the pnpm invocation inline. Re-ran check:pnpm-filter-targets: green. Re-ran the script against the real ledger: still reports 8. Part of objectstack-ai#14096 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0112hMx9hjJ9BgB28X97DS68 --------- Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Sep 20, 2026
This was referenced Sep 21, 2026
This was referenced Sep 21, 2026
This was referenced Sep 22, 2026
akarma-synetal
pushed a commit
to akarma-synetal/framework
that referenced
this pull request
Sep 28, 2026
…ectstack-ai#19497) (objectstack-ai#19516) Fixes objectstack-ai#19497 Clause-②: no Retires the half-state patrol's schedule under ruling objectstack-ai#208 on objectstack-ai#19491 (director seat, summon objectstack-ai#25), direct-dispatch channel, on the maintainer's verbatim instruction: > 「19491 接受你的建议,并立刻派发处理相关任务。」 R3 of that ruling, verbatim: > **R3** the half-state patrol: ⛔ not frozen, ⛔ not trimmed; its **schedule is retired** (workflow_dispatch only, on demand for the triage seat's daily reconciliation; **objectstack-ai#19497**) and the charter's 「锚行未处置 ⛔ 不开新派发」 precondition is deleted (objectstack-ai#19496). No line of the 36,717 is edited. and the maintainer's question it answers: 「巡查仪留着却不继续开发,会不会反而不停的报错误的信息」 ## What changed — two files, +89 / −45 **1. `.github/workflows/half-state-patrol.yml`** — the card's change: 1. `on:` drops the `schedule:` block (`37 1,7,13,19 * * *`) and its cadence comment. `workflow_dispatch: {}` and the whole `pull_request:` paths trigger are kept byte-identical, so a PR editing the patrol still proves it on a real runner. 2. The header prose that promised the cadence is rewritten, in seven places, to describe on-demand use and to carry the ⛔ against re-scheduling it on the old argument: the 「why a workflow」 section (kept as history, marked half-superseded), the objectstack-ai#13544 correction paragraph, the `Swept` heartbeat paragraph, the new `on:` block prose, the `concurrency` note, the anchor-issue fallback note, and the citation census's HOW OFTEN / WHAT IT COSTS note. 3. ⛔ Not touched, as ruled: `.github/actions/half-state-patrol/action.yml` and `scripts/pm/check-half-states.mjs` — 0 lines of its 36,717. **2. `scripts/pm/dispatch-gates.mjs`** — a forced repair, outside the card's named surface, reported rather than smuggled: Two cases of that tool's self-test read the live `.github/workflows` tree and assert that the specimen workflow declares `schedule`. Retiring the schedule makes both false. Measured before touching them, on the workflow-only commit: `✗ dispatch-gates self-test: 2 of 1883 case(s) failed`, and the two are exactly those. `pnpm check:pm-dispatch-gates` is a required-context gate (`Lint & Repo Gates`) and `scripts/ci/select-gate-families.sh` runs the `pm_dispatch_gates` family for a modified path of class `workflow` (its `*)` arm returns 0), so the red is this PR's, on this PR. The repair is the minimum that makes each case true again, and each keeps the fact it was always about: `'schedule'` drops out of the trigger list one case asserts (it still pins that the specimen is not "a workflow no PR runs"), and `&& isScheduled('half-state-patrol.yml')` drops out of the other (it still pins that the live sweep is withheld by the value-bearing class and nothing else). ⛔ Nothing is added: pinning the ABSENCE of a schedule would be a new ratchet, which ruling objectstack-ai#208's R6 does not let this file grow without the maintainer's sentence. A comment above the pair records the ruling so the next reader does not restore the pin. If the director seat would rather this file were not touched at all, the alternative is to land the sibling card first or to leave the PR red by design — flagged in the report's `open_questions`, not decided here. No step, permission, job, timeout or input of the workflow changed. Parsed after the edit: ``` top keys: ['name', True, 'permissions', 'concurrency', 'jobs'] on: {'workflow_dispatch': {}, 'pull_request': {'paths': ['scripts/pm/check-half-states.mjs', 'scripts/invoked-as.mjs', 'scripts/pm/sweep-closed-cards.mjs', 'scripts/check-issue-citations.mjs', '.github/actions/half-state-patrol/**', '.github/workflows/half-state-patrol.yml']}} jobs: ['patrol'] steps: ['Checkout repository', 'Setup Node.js', 'Sweep the board and update the anchor', 'Sweep the closed cards', "Census the repo's issue citations"] ``` ## Census — every other path into the patrol, file by file Population: `git grep -ni 'half.state' -- .github` = 15 files at 2cac363. Dropping comment lines leaves **four** non-comment references outside the patrol's own two files: ``` .github/workflows/board-snapshot.yml:176: - 'scripts/pm/check-half-states.mjs' .github/workflows/lint.yml:1189: - name: PM half-state sweeper self-test .github/workflows/lint.yml:1190: run: pnpm check:pm-half-states .github/workflows/test-nightly-tiers.yml:442: // scripts/pm/check-half-states.mjs. ⛔ Do not re-derive 65,536 from ``` and exactly one `uses:` of the action anywhere in the tree (`half-state-patrol.yml:236`, the local path). | file | runs the patrol? | scheduled? | verdict | |---|---|---|---| | `.github/workflows/half-state-patrol.yml` | **yes** — `uses: ./.github/actions/half-state-patrol` | was `37 1,7,13,19 * * *` | **schedule removed here**; the call stays, `workflow_dispatch` + `pull_request` stay | | `.github/actions/half-state-patrol/action.yml` | it *is* the patrol body | composite action — declares no trigger of its own | untouched by ruling | | `.github/workflows/board-snapshot.yml` | **no** — it runs `scripts/pm/board-snapshot.mjs`; its one non-comment reference is a `pull_request: paths:` entry, because the archiver imports the sweeper's proxy-re-exec plan. Its other three hits are prose (the request budget it shares, and the cron offset it chose against the patrol). | yes, `7 2,8,14,20 * * *` — its own archiver cadence | **keeps its schedule and its call**: it is not a path into the patrol | | `.github/workflows/lint.yml` | **no** — `pnpm check:pm-half-states` is the sweeper's OFFLINE `--self-test` (no network, no token, no board read, no anchor write), which lint.yml's own comment separates from the live sweep at length | yes (hourly full run) | **keeps both**; the self-test's PR-time scoping is the sibling card's, not this one's | | `.github/workflows/test-nightly-tiers.yml` | **no** — one `//` comment citing where a constant comes from | yes | untouched | | `.github/workflows/checklist-status.yml`, `.github/workflows/merged-branch-reaper.yml` | **no** — 0 hits for `half.state`; they were hits on a wider grep only for their own `:37` cron minute | yes (`37 3 * * 1`, `37 4 * * 1`) | untouched | | `closing-target-claim-guard.yml`, `cross-repo-issue-closer.yml`, `cut-rc.yml`, `merge-queue-triage.yml`, `platform-checklist-watchdog.yml`, `release-coverage-patrol.yml`, `required-set-patrol.yml`, `scheduled-full-run-card.yml`, `shard-timings-refresh.yml`, `stale.yml` | **no** — comment text only (`cut-rc.yml` is a false positive: "the doc half states below") | varies | untouched | So: one scheduled invocation of the patrol existed, and it is the one this PR retires. No other workflow loses a call or a schedule. ## H57 — the card's expectation, measured and corrected The card asks this PR to record H57 (「the workflow's latest scheduled run is green and fresh」) as reading the retired schedule as stale on every on-demand run. Measured against `scripts/pm/check-half-states.mjs` at 2cac363, that is not what happens: - `h57Population()` holds a workflow **out** of H57's population when it declares any of `H57_PR_GATING_EVENTS` = `pull_request` / `pull_request_target` / `merge_group`. `half-state-patrol.yml` declares `pull_request` and already did before this PR, so H57 has never judged it (`kind: 'pr-gating'`) and could not report it stale. - After this PR the same workflow is held out one branch earlier, as `kind: 'not-scheduled'`. The only H57-visible change is in its unconditional population clause: one fewer workflow "declares a schedule", one fewer held out as PR-gating. No row is filed either way. **The reading that IS stale, and is deliberately left unrepaired here:** `renderCadenceExpectation()` stamps `expected every 6h (...) · next by …` beside `Swept` in the anchor body on **every** run, computed from the sweeper's own `PATROL_CRON` / `PATROL_CADENCE_HOURS` constants — which this PR may not touch (「No line of the 36,717 is edited」). So the next on-demand run publishes a deadline against a schedule nobody fires. The workflow header now says so in place, and the one-line repair is reported as an out-of-scope finding rather than done here. ## Acceptance ``` $ git grep -n 'cron' .github/workflows/half-state-patrol.yml ; echo "exit=$?" exit=1 # 0 hits (was 1 line on 2cac363) $ git grep -c 'workflow_dispatch' .github/workflows/half-state-patrol.yml 3 # was 2 on 2cac363 ``` The card states the control as `= 1`; measured on `origin/main` the same grep answers **2** (the trigger key plus the citation census's cadence note), and this PR takes it to 3 because two rewritten comments name the dispatch path in prose. The load-bearing readings are the ones that cannot be moved by prose: the trigger key appears exactly once (line 174), and the parsed `on:` mapping above contains `workflow_dispatch` and no `schedule`. ## Gates Every family `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` derives for this diff was run, each exit code captured before any pipe (`cmd > log 2>&1; code=$?`), then reconciled against a fresh derivation: ``` $ node scripts/pm/dispatch-gates.mjs --ran RANFILE --repo objectstack-ai/objectstack Run reconciliation — 48 derived, 48 run, 0 NOT-MEASURED, 0 UNRUN. ✓ dispatch-gates --ran: 48 derived famil(ies) accounted for — 48 run, 0 NOT-MEASURED (a DERIVED zero — all 48 recorded an exit code and none of them is 3). ``` 47 of the 48 exited 0 in one detached battery. The 48th is `pnpm check:pm-dispatch-gates` — the one its own header says to run detached — and it is also the reverse-verification pair for the repair above, both legs measured from committed states: ``` before (51a65a3, the workflow-only commit): ✗ dispatch-gates self-test: 2 of 1883 case(s) failed. ✗ ⭐ the card's own specimen declares a pull_request trigger beside its schedule — … ✗ the card's specimen is still discovered … — not withheld for being scheduled after (dbeb16d, with the two cases re-pointed): ✓ dispatch-gates self-test: 1883 cases pass. check:pm-dispatch-gates: the battery took 1031.6s on this box. :: exit 0 ``` Also run, as the dispatch asks: ``` $ bash scripts/ci/select-gate-families.selftest.sh :: exit 0 all 40 cases passed (192 checks) ``` `actionlint` is not wired in this repo (0 hits over `.github/workflows/*.yml` and `package.json`); the workflow lint here is the `check:workflow-status-functions` / `check:workflow-step-name-quoting` / `check:node-version` / `check:required-contexts` / `check:ci-filter-parity` / `check:self-test-wired` / `check:stall-guard-*` families, all inside the 48 and all green. Stated rather than implied: the 54 artifact-roster families, the 11 wide-population families, the 14 pending-changeset families and the always-runs tail that the same tool prints OUTSIDE the derived 48 were not run here — CI owns those. The branch carries a merge of `main` at 48c39e0 and CI judges the merged generation. ## Tier Tier S in the card's words — measured on the FINAL file list, the register does not hold either path: ``` $ node scripts/pm/check-governed-merges.mjs --branch claude/issue-19497-patrol-schedule-retired derived from `git diff --name-only --no-renames 48c39e0 dbeb16d` (three-dot): 2 path(s). governed-surface predicate: 0 of 2 path(s) hit the register (6 surfaces, repo-agnostic). ✅ NOT governed — ordinary queue landing applies to a PR with exactly this file list. size: 134 changed line(s) (+89 / −45) ≤ 5000 — under the human-merge threshold ``` `skip-changeset`: one `.github/workflows/**` file and one `scripts/pm/**` file. Nothing under `packages/**`, nothing in any package's `files[]`, nothing published. ## Acceptance notes Noted, not filed — stale cadence prose this PR's change makes inaccurate in files it does not own: - `.github/workflows/lint.yml:4742` ("runs REPORT-ONLY in `half-state-patrol.yml`, four times a day"). Successor: the sibling card's dev, already in flight in that file. - `.github/workflows/board-snapshot.yml:38,140` and `.github/workflows/release-coverage-patrol.yml:102,113` — both cite the patrol's retired cron as the reason their own minute/hour was chosen. The offsets they bought stay correct; only the reason is now historical. Successor: none scheduled. - `scripts/pm/check-half-states.mjs` header prose ("a scheduled caller", four runs a day) — under the same ⛔ as its constants; not touched. --- _Generated by [Claude Code](https://claude.ai/code/session_012GcsUbuqFGBibkEDMRC1eE)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
This branch was successfully deployed
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.
Bumps actions/upload-pages-artifact from 3 to 4.
Release notes
Sourced from actions/upload-pages-artifact's releases.
Commits
7b1f4a7Merge pull request #127 from heavymachinery/pin-sha4cc19c7Pinactions/upload-artifactto SHA2d163beMerge pull request #107 from KittyChiu/mainc704843fix: linted README9605915Merge pull request #106 from KittyChiu/kittychiu/update-readme-1e59cdfeUpdate README.mda2d6704doc: updated usage section in readme984864eMerge pull request #105 from actions/Jcambass-patch-145dc788Add workflow file for publishing releases to immutable action packageefaad07Merge pull request #102 from actions/hidden-filesDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)