Skip to content

Commit 0f13ca4

Browse files
committed
Merge remote-tracking branch 'origin/main' into claude/issue-15608-envelope-census-pr-side
2 parents f9b1f71 + 95d5cbb commit 0f13ca4

19 files changed

Lines changed: 2703 additions & 138 deletions
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@objectstack/cli': minor
3+
---
4+
5+
Ratify `./hook-body` as a public subpath export — `extractHookBody`, `HookBodyExtractionError`, `HookBodyRefusalKind` and `ExtractedBody` were reachable as a deep `dist/utils/extract-hook-body.js` import until #13123 sealed the surface, and an app's hook-body fidelity harness (hotcrm's `test/helpers/action-sandbox.ts`) consumes them to run the SAME body-only lowering `os build` ships through the real QuickJS runner, so a test executes what production executes rather than a lookalike. The #13123 body names exactly this remedy for an out-of-repo consumer — ratify the subpath as public surface rather than read `dist/` paths — and 17.3.0 applied it to `./console` for cloud's `objectos-runtime`; this applies it to the second consumer (#15325). `@objectstack/cli/hook-body` is a dedicated entry that re-exports those four names and nothing else; the deep `dist/` path stays sealed. Also admits `./package.json`, so the ordinary tooling idiom of reading a dependency's own manifest resolves again.
6+
7+
`minor`, not `patch`: a new subpath on a published package's `exports` map is a purely additive widening of its public surface — a new accepted key — which takes at least `minor` under the maintainer's 2026-09-04 rule (decision batch #35, on #15294) in the Check Changeset step's "WHICH LEVEL" prose; the commit type never lowers it.

‎.github/workflows/lint.yml‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4684,6 +4684,39 @@ jobs:
46844684
- name: Build workspace packages
46854685
run: pnpm exec turbo run build --filter='./packages/*' --filter='./examples/*^...'
46864686

4687+
# CLI transcripts in content/docs are bound to the registries they quote
4688+
# (#15373). `content/docs` teaches with pasted CLI output, and some of those
4689+
# lines quote a number the CLI derives from a live registry at runtime —
4690+
# `Running author-time rules (42)...` is `authoringRulesFor(<command>).length`.
4691+
# The page wrote it as a literal; nothing derived it and nothing compared it,
4692+
# so it drifted on every rule added. Four published pages carried 41 against a
4693+
# registry holding 42, and what surfaced it was a customer-simulation upgrade
4694+
# run noticing the CLI printed something else. PR #15369 fixed the four
4695+
# numbers; this is the mechanism.
4696+
#
4697+
# ⚠ ORDER / PLACEMENT — this step is HERE, and not with the other docs gates
4698+
# in the `Lint & Repo Gates` job, for a measured reason. It derives the number
4699+
# the way the CLI does, by importing the BUILT @objectstack/lint, so it needs
4700+
# a dist/:
4701+
#
4702+
# · `Lint & Repo Gates` runs `pnpm install` and NEVER builds. Placed there
4703+
# the gate would exit 3 (PREREQUISITE NOT MET) on every CI run forever —
4704+
# a gate that never measures, which is the shape #4642 named.
4705+
# · ci.yml's `Build Core` builds, and hosts `check:dual-build-cjs-loads` for
4706+
# exactly this reason, but it is gated on the `core` paths filter, which
4707+
# does not include `content/**` — so it would skip the docs-only PRs that
4708+
# ADD a stale transcript, the direction this gate exists for.
4709+
# · This lane has NO paths filter, sits behind the required `TypeScript Type
4710+
# Check` context, and the step above already built packages/lint.
4711+
#
4712+
# So it must stay AFTER `Build workspace packages`. It adds no build and no CI
4713+
# minutes; the scan is ~405 pages plus one dynamic import, ~0.4s. The gate's
4714+
# own header is the authority on the declaration syntax (fence meta, measured
4715+
# against the real fumadocs/MDX pipeline) and on why this is a COMPARE rather
4716+
# than a stamp. Runs its own --self-test first, through the alias.
4717+
- name: CLI transcripts in content/docs match the registry they quote
4718+
run: pnpm check:docs-transcript-drift
4719+
46874720
# The per-package `typecheck` scripts the coverage gate above requires
46884721
# (#4311). tsc resolves workspace imports through each dependency's built
46894722
# dist/*.d.ts, so the task carries `dependsOn: ^build` in turbo.json —

‎content/docs/deployment/cli.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ os compile --json # JSON output for CI pipelines
444444
- `--json` — Output compile result as JSON (for CI)
445445

446446
**Output example:**
447-
```
447+
```text transcript=os-build
448448
◆ Compile
449449
────────────────────────────────────────
450450
→ Loading configuration...

‎content/docs/deployment/validating-metadata.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ runs the other two.
548548

549549
A clean run walks the registry and reports timing:
550550

551-
```
551+
```text transcript=os-validate
552552
◆ Validate
553553
────────────────────────────────────────
554554
→ Loading configuration...

‎content/docs/getting-started/build-with-claude-code.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ visible: 'status != "resolved"'
259259

260260
`npm run validate` (which `AGENTS.md` tells the agent to run) refuses it:
261261

262-
```
262+
```text transcript=os-validate
263263
◆ Validate
264264
────────────────────────────────────────
265265
→ Validating against ObjectStack Protocol...

‎content/docs/ui/react-pages.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ too:
372372
objectstack validate
373373
```
374374

375-
```
375+
```text transcript=os-validate
376376
◆ Validate
377377
────────────────────────────────────────
378378
→ Loading configuration...

0 commit comments

Comments
 (0)