Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/cli/test/artifact-pinned-boot.e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ function runServe(env: Record<string, string>, opts: { migrateAndExit?: boolean
// `childEnv`, not a bare `...process.env`: the vitest worker
// exports `TEST=true`, and better-auth 1.7.1 reads it directly
// to switch its own origin/CSRF validation OFF in the child —
// see `helpers/serve-process.ts` for the measurement (#11267).
// see `helpers/serve-process.ts` for the measurement (commit 1ddda1d00).
// This boot exits at `kernel:ready` (`OS_MIGRATE_AND_EXIT`) and
// never answers a request, so nothing here CHANGES; it is the
// hygiene half, so the next assertion added to this file starts
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/test/build-json-advisory-parity.e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
* #11727 — `os build --json` dropped the #3366 capability-provider hints and
* the ADR-0046 package-docs advisories that `os validate --json` carries.
*
* The fourth measured instance of one class in these two files (#10953,
* #11174, #11643, this): an advisory computed and then formatted *inside* an
* The fourth measured instance of one class in these two files (commit be7262e72,
* commit ab23c67ab, #11643, this): an advisory computed and then formatted *inside* an
* `if (... && !flags.json)` print block, which puts it structurally out of
* reach of the payload — computed, then discarded, for the one audience
* `--json` exists to serve. Measured at `origin/main` 589758d22 over the
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/test/build-json-failure-conversions.e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* to appear exactly ONCE — the payload now carries the notice, and the terminal
* gains no second stderr line for it.
*
* #12125 — `os build --json`'s FAILURE payloads dropped the `conversions` field
* The defect commit 79cf692b0 fixed — `os build --json`'s FAILURE payloads dropped the `conversions` field
* the run had ALREADY COMPUTED, on all nine of its failure exits.
*
* The same "computed, then dropped on a failure exit" shape as the `warnings`
Expand Down Expand Up @@ -523,7 +523,7 @@ describe('#12125 — the contract is exhaustive over `compile.ts`, not just over
// The one integer left, and it rots only in the direction that has to be
// reviewed anyway: exits being REMOVED. Ten is the population the ruling in
// this file's header was made over — nine failure exits plus the terminal
// success payload, the count `#12285` pinned on the day it landed — not a
// success payload, the count commit 79cf692b0 pinned on the day it landed — not a
// count of today. (Today is eleven: the tenth FAILURE exit is ADR-0130 D4's
// per-package author-time rule leg, #14439, a multi-package artifact
// running the same rule table once per package. It arrived after the ruling
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/test/build-warning-truncation-notice.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* notice is indistinguishable from a complete one, so an author who reads it
* and sees their file is clean has read a list that stopped early. Same shape
* as the dropped summary rows pinned in `print-metadata-stats-zero-row.test.ts`
* (#10504, #10952): output that cannot distinguish "none" from "not shown".
* (commits ff5733e03, 0d4bd93e7): output that cannot distinguish "none" from "not shown".
*
* WHAT THESE PINS ASSERT — the pair, not the cap. A test that only checked
* "50 entries printed" passes on the silent tree and pins nothing. So the
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/test/commands.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ describe('os explain — schema catalog accuracy', () => {
// The catalog's element shape, stated locally: `SchemaInfo` is not exported,
// and these tests must stay honest even where `SCHEMAS` widens to `any`.
// ⚠️ The reason recorded here has CHANGED and the discipline has not. This
// file no longer sits outside every tsc program: #14710 landed
// file no longer sits outside every tsc program: commit 95fdf627b landed
// `packages/cli/tsconfig.test.json`, whose `include: ["test/**/*"]` puts this
// file in the program (`tsc --noEmit --listFiles -p tsconfig.test.json`
// resolves it), and it carries NO row in `test-typecheck-debt.json` — so any
Expand Down Expand Up @@ -178,7 +178,7 @@ describe('os explain — schema catalog accuracy', () => {
});
});

// ── `os explain` — the WHOLE catalog, swept against the spec (#14811) ──────
// ── `os explain` — the WHOLE catalog, swept against the spec (commit 8ad872ba3) ──
//
// #14782 pinned one entry (`flow`) by parsing its `example` against the real
// schema. This generalises that technique to every entry, and derives the entry
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/test/create-plugin-docs-parity.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

/**
* The `plugin` template's SHAPE against what the docs promise (#14824).
* The `plugin` template's SHAPE against what the docs promise (commit cf6b67164).
*
* ## Why this pin exists
*
Expand All @@ -14,7 +14,7 @@
* govern at all (it emits no `objectstack.config.ts`). So the docs were the
* only statement of its shape, and nothing held them to it.
*
* The maintainer's ruling on #14824 is that a documented developer-facing
* The maintainer's ruling that commit cf6b67164 landed is that a documented developer-facing
* command must work for the developer who follows the docs. This file is the
* half of that which no install can check: that the listing the developer READS
* is the listing they GET.
Expand Down
8 changes: 4 additions & 4 deletions packages/cli/test/create.test.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

/**
* `os create`'s emitted contract — the pin for #14824.
* `os create`'s emitted contract — the pin for commit cf6b67164.
*
* ## The defect this file used to certify
*
* Until #14824 the only assertion here was
* Until commit cf6b67164 the only assertion here was
* `expect(packageJson.dependencies['@objectstack/cli']).toBe('workspace:*')` —
* a test that PASSED on the defect, and would have gone red on the fix. Every
* project `os create` emitted declared its `@objectstack/*` dependencies with
Expand Down Expand Up @@ -89,7 +89,7 @@ describe('os create: the sweep covers every shipped template', () => {
it('derives its population from the template map', () => {
expect(TEMPLATE_KEYS.length).toBeGreaterThan(0);
// Named so a rename is loud rather than silent. `plugin` is the survivor of
// the two #14824 reported; `example` was retired in #16483.
// the two templates commit cf6b67164 repaired; `example` was retired in #16483.
expect(TEMPLATE_KEYS).toEqual(expect.arrayContaining(['plugin']));
});

Expand Down Expand Up @@ -214,7 +214,7 @@ describe.each(TEMPLATE_KEYS)('os create %s --in-repo — the platform-work emiss
*
* ## The defect
*
* #14824 pointed the default emission at a developer outside this monorepo and
* Commit cf6b67164 pointed the default emission at a developer outside this monorepo and
* the name did not move with the audience: `os create plugin my-thing` kept
* writing `"name": "@objectstack/plugin-my-thing"` — a scope its new owner
* cannot publish to — and no `private` flag. ⚠️ Nothing here could see it. The
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/test/docs-cli-enumeration-parity.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
*
* #8965 an earlier under-inclusive drift on this page.
* #16892 ① the scaffolded-scripts sentence said "these" of THREE commands
* and named TWO npm scripts. Under-inclusive from #16330, and
* for all four scaffolders from #16350 / PR #16888.
* and named TWO npm scripts. Under-inclusive from commit 4998efa71, and
* for all four scaffolders from commit 68aee4c99 (PR #16888).
* #16892 ② `os lint` declares ELEVEN flags; the page documented FOUR.
* One of the seven missing was `--include-platform`, which the
* command NAMES IN ITS OWN HINT — so a reader following that
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/test/extract-hook-body.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ describe('extractHookBody', () => {
expect(() => extractHookBody(fn, 'hook bad')).toThrow(/eval/);
});

// ── the `@capabilities` directive, RETIRED (#10917) ─────────────────────
// ── the `@capabilities` directive, RETIRED (commit 7940de5e0) ───────────
//
// Ruled under ADR-0049 enforce-or-remove: the comment-borne override was read
// off `String(fn)`, and every ordinary authoring path (`.ts`, `.js`, `.mjs`,
Expand Down Expand Up @@ -171,7 +171,7 @@ describe('extractHookBody', () => {
});

// The #4391 sibling that pinned `crypto.hash` being filtered OUT of an
// explicit `@capabilities` override went with the directive (#10917): with no
// explicit `@capabilities` override went with the directive (commit 7940de5e0): with no
// override branch there is no token list to filter, so the guarantee is now
// structural rather than a case. The inference half of #4391 is still pinned
// by the test above, which is the route `crypto.hash` could still arrive on.
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/test/fixtures/option-b-reader-probe.ts
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ function makeRecorder(rec: Recording) {
name: 'com.objectstack.probe.option-b-recorder',
// No `type`: `PluginSchema` defaults an absent `type` to `standard`, and
// `'service'` is not a member of the declared closed set — `ObjectKernel`
// refused this object already, and since #16721 `LiteKernel.use()` (the
// refused this object already, and since commit 51ae73123 `LiteKernel.use()` (the
// kernel `bootAndRecord` boots) runs the same contract. Nothing here reads
// `.type`; the recorder IS the subsystems, not a typed plugin.
version: '1.0.0',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

/**
* The #14858 crash class, manufactured INSIDE the published entry point's own
* The crash class commit 0c5e97368 fixed, manufactured INSIDE the published entry point's own
* process — driven by `published-entry-stderr-error-listener.test.ts`.
*
* Loaded with `node --import <this> bin/run.js …` against a read end the parent
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/test/fixtures/unbuilt-spec-dist.hook.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
/**
* A BUILT checkout, made to answer like an unbuilt one for `@objectstack/spec`
* and nothing else — the environment `run-dev-unbuilt-workspace.e2e.test.ts`
* needs and CI cannot otherwise have (#12964).
* needs and CI cannot otherwise have (commit e6fd1caf7).
*
* Loaded with `node --import`, so it is in place before `@oclif/core` walks the
* command directory. It is a `resolve` hook and NOT a file operation on purpose:
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/test/generate-agent-retired.e2e.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

/**
* PIN (#10359) — `os g agent` is gone, and its refusal names the replacement.
* PIN (commit 15b63e85a) — `os g agent` is gone, and its refusal names the replacement.
*
* The generator scaffolded into `src/agents`, a surface ADR-0063 §2 withdrew:
* the kernel ships exactly two agents (`ask`, `build`) and the runtime catalog
Expand All @@ -27,7 +27,7 @@
*
* The refusal's pointer at skills is asserted here only as TEXT. That the
* command it now names actually exists and writes a loadable file is pinned
* next door, in `generate-skill.e2e.test.ts` (#11025) — when this message was
* next door, in `generate-skill.e2e.test.ts` (commit 1c3a46f87) — when this message was
* first written there was no `os g skill` to point at, and it said so.
*/

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

/**
* PIN (#11071) — a generated file's NAME matches the pattern the registry
* PIN (commit 50fb191dc) — a generated file's NAME matches the pattern the registry
* declares for its type.
*
* ## Why the property and not six string comparisons
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/test/generate-scaffold-validates.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
* Those four were a separate card by triage's own fence — a census of the
* other artifacts was explicitly NOT folded into #14087 — so this file first
* RECORDED them, in the shrink-only shape this repo uses elsewhere
* (`KNOWN_UNALIASED_TEST_IMPORTS`, the type-check debt ledger). #14336 then
* (`KNOWN_UNALIASED_TEST_IMPORTS`, the type-check debt ledger). Commit 79c71d29d then
* repaired all four templates and deleted all four entries, which is the whole
* lifecycle the ledger was built to have. Two properties held throughout, and
* both are still asserted below:
Expand Down Expand Up @@ -105,7 +105,7 @@ import { BUNDLE_REQUIRE_EXTERNALS } from '../src/utils/config.js';
* — see the header. Adding an entry to silence a failure is the one edit this
* table must never receive; the assertions below make a stale entry fail too.
*
* EMPTY since #14336 repaired the last four (`object` / `view` / `action` /
* EMPTY since commit 79c71d29d repaired the last four (`object` / `view` / `action` /
* `app`), which means every generator on the roster is held to the clean pin.
* Keep it that way: a red here is a template to fix, never a line to add.
*/
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/test/generate-schema-retired.e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* (#17873), which pinned the document the command wrote — the very file the
* ruling withdrew.
*
* The shape follows `generate-agent-retired.e2e.test.ts` (#10359): the
* The shape follows `generate-agent-retired.e2e.test.ts` (commit 15b63e85a): the
* assertions are about the CONTENT of the refusal, not only about a non-zero
* exit, because a bare "unknown type" or "missing argument" also exits 1 and
* leaves the author hunting for a spelling of something that no longer
Expand Down
18 changes: 9 additions & 9 deletions packages/cli/test/generate-skill.e2e.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.

/**
* PIN (#11025) — `os g skill` writes a file the loader actually FINDS, and
* PIN (commit 1c3a46f87) — `os g skill` writes a file the loader actually FINDS, and
* that file parses.
*
* ## Why "it writes a file" is the wrong assertion
Expand All @@ -17,7 +17,7 @@
* `NAME.ts`, so a naive skill scaffold lands as `lead_qualification.ts`,
* matches neither pattern, and then type-checks, validates and publishes with
* nothing anywhere saying it was skipped. That is the silent-strip shape
* ADR-0063's retirement of `os g agent` closed (#10359), re-entering through
* ADR-0063's retirement of `os g agent` closed (commit 15b63e85a), re-entering through
* the scaffolder that replaced it.
*
* So the two pins below are:
Expand All @@ -32,20 +32,20 @@
* process: the template calls `defineSkill(…)` at module scope, so the
* import IS `SkillSchema.parse`. This is the pin that fails if anyone
* ever copies the template from `SkillSchema`'s or `defineSkill`'s
* `@example` blocks — both pass `triggerPhrases`, a `retiredKey()`
* tombstone that rejects on parse (#11026).
* `@example` blocks — both passed `triggerPhrases`, a `retiredKey()`
* tombstone that rejects on parse, until commit 3c418c498 rewrote them.
*
* `matchesGlob` comes from `node:path` on purpose. Hand-rolling a glob
* matcher here would re-introduce the restatement the first pin exists to
* avoid, one layer down: the whole point is that nothing in this file decides
* what `**` + `*.skill.ts` mean.
*
* ## The control this file also holds (#11071)
* ## The control this file also holds (commit 50fb191dc)
*
* `os g object` is exercised here as a CONTROL, and what it controls for
* changed. #11025 scoped the filename fix to `skill` and fenced the repo-wide
* changed. Commit 1c3a46f87 scoped the filename fix to `skill` and fenced the repo-wide
* route, so the control pinned `customer.ts` and a `'./customer'` barrel line.
* #11071 measured the loader rather than assuming — the mechanism, and the
* Commit 50fb191dc measured the loader rather than assuming — the mechanism, and the
* precondition that keeps it from firing in this repo today, are stated once
* in `metadata-file-name.ts` (#12075), not restated here — and the
* per-generator override was replaced by a default derived from the
Expand Down Expand Up @@ -102,7 +102,7 @@ const RUN_TIMEOUT_MS = 180_000;
/** The contract under test, read from the registry — never restated. */
const SKILL_ENTRY = DEFAULT_METADATA_TYPE_REGISTRY.find(entry => entry.type === 'skill');

/** Same, for the generator this file exercises end-to-end as a control (#11071). */
/** Same, for the generator this file exercises end-to-end as a control (commit 50fb191dc). */
const OBJECT_ENTRY = DEFAULT_METADATA_TYPE_REGISTRY.find(entry => entry.type === 'object');

interface Run {
Expand Down Expand Up @@ -268,7 +268,7 @@ describe('[#11025] the generated skill parses', () => {

it('carries no `triggerPhrases` — the retired key both spec `@example` blocks still pass', () => {
// Textual, deliberately: the parse above already refuses the tombstone, so
// this assertion exists to name the specific copy-source hazard (#11026)
// this assertion exists to name the specific copy-source hazard (commit 3c418c498 removed it at its source)
// for whoever edits the template next.
expect(writtenSource).not.toContain('triggerPhrases');
});
Expand Down
6 changes: 3 additions & 3 deletions packages/cli/test/helpers/serve-process.ts
Original file line number Diff line number Diff line change
Expand Up @@ -596,7 +596,7 @@ export function portDriftError(

/**
* The variables vitest sets on its own WORKER process, which must never reach a
* spawned `os serve` child (#11267).
* spawned `os serve` child (commit 1ddda1d00).
*
* ## Why this exists — measured, not defensive
*
Expand Down Expand Up @@ -628,7 +628,7 @@ export function portDriftError(
*
* | child env | answer |
* |---|---|
* | `{ ...process.env }` (this helper, before #11267) | `401 INVALID_EMAIL_OR_PASSWORD` — origin ACCEPTED, validation never ran |
* | `{ ...process.env }` (this helper, before commit 1ddda1d00) | `401 INVALID_EMAIL_OR_PASSWORD` — origin ACCEPTED, validation never ran |
* | family below stripped | `403 INVALID_ORIGIN` — validation ran and rejected |
* | only `TEST` stripped | `403 INVALID_ORIGIN` |
*
Expand Down Expand Up @@ -853,7 +853,7 @@ export function runServe(
const child = spawn(TSX, [CLI, 'serve', opts.config ?? 'objectstack.config.ts', ...args], {
cwd,
// `childEnv`, never a bare `...process.env` — see its header for the
// measured reason (#11267).
// measured reason (commit 1ddda1d00).
env: childEnv({
NO_COLOR: '1',
// Keep the fixture self-contained: no file written, no port conflict
Expand Down
Loading
Loading