Repository navigation
docs(spec): correct the stale cloud/environment.zod.ts attribution in the discovery-environment subset pin - #18586
Merged
os-bill merged 1 commit intoSep 17, 2026
Conversation
…in the discovery-environment subset pin The pin test's docblock told a reader that `EnvironmentTypeSchema` is declared by `cloud/environment.zod.ts`, while the file's own import 28 lines below reads `./discovery.zod`. `packages/spec/src/cloud/` was removed when the `./cloud` subpath left `@objectstack/spec` (#16325, landed by #17372 / 776d64c) and the enum was re-declared in `api/discovery.zod.ts:434`, where it lives today. Two residues of that move are corrected, both prose: - the declaration table row, now naming `api/discovery.zod.ts`, with one added sentence recording why both rows name one module — so the next reader does not read the repetition as a copy-paste slip; - the reverse cross-reference note, which named the two carrier FILES; it now names the two DECLARATIONS, which is what the sentence is actually about and what survives the next move. Re-derived rather than copied forward: both member lists are unchanged and correct (`production sandbox development` / those three plus `test staging preview trial`, `discovery.zod.ts:473` and `:434`), and the two folds the docblock cites (`staging` -> `sandbox`, `test` -> `development`) match `NODE_ENV_TO_DISCOVERY_ENVIRONMENT`. No assertion, message or schema is touched. Claude-Session: https://claude.ai/code/session_01JbZnqu8bt6YqfJsr9vaFb3 Co-authored-by: Claude <noreply@anthropic.com>
Contributor
📓 Docs Drift CheckNothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 0 changed package(s)), so this run has no opinion about the docs. What this run could not see
Coarse fallback — 0 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
This was referenced Sep 17, 2026
os-bill
marked this pull request as ready for review
September 17, 2026 05:10
os-bill
deleted the
claude/issue-17730-stale-environment-schema-citation
branch
September 17, 2026 05:35
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.
Fixes #17730
Clause-②: no
The pin test's docblock told a reader that
EnvironmentTypeSchemais declared bycloud/environment.zod.ts, while the file's own import 28 lines below reads./discovery.zod. Class (b): a declared statement contradicted by measurable behaviour in the same file. Only prose moves here — no schema, no assertion, no assertion message.Premise, re-verified first-hand on
origin/main(not taken from the card)Deletion traced to a commit, with a firing control:
So
#16325is the ruling and#17372/776d64cd3dis the landing. The in-tree prose atapi/discovery.zod.ts:412already attributes the move to#16325("Until #16325 this enum was declared bycloud/environment.zod.ts"), and this docblock now matches that convention.Line numbers were taken off the tree, not off the card: the card says the import is at
:39and the second residue at:27-28; onorigin/main@5ed7ad9df8they are at:40and:26-27.What changed — two residues, both in the docblock
:12) now namesapi/discovery.zod.ts. One sentence is added below the table recording why both rows name one module, so the repetition does not read as a copy-paste slip and does not get "repaired" back.:26-27) named the two carrier FILES, one of which no longer exists. It now names the two DECLARATIONS — which is what that sentence is actually about, and what survives the next move.Both cross-reference claims were re-derived rather than copied forward:
DiscoveryEnvironmentSchema's.describe()since #4828git log -S'a richer 7-member taxonomy'->77022a99ce= #4828 (PR #5682)EnvironmentTypeSchema's JSDoc since this pingit log --diff-filter=Aon the pin file ->0261016601(PR #6288), the same commit that introduced the reverse citation; carried intoapi/discovery.zod.tsby776d64cd3dThe member lists were re-derived, not copied forward
The table's factual claim about each enum's vocabulary is correct and is unchanged by this PR:
DiscoveryEnvironmentSchema(discovery.zod.ts:473) =productionsandboxdevelopment— 3.EnvironmentTypeSchema(discovery.zod.ts:434) = those three plusteststagingpreviewtrial— 7.The two folds the docblock cites also hold against
NODE_ENV_TO_DISCOVERY_ENVIRONMENT(discovery.zod.ts:591):staging->sandbox,test->development.Tests and gates
pnpm --filter @objectstack/spec exec vitest run --project local src/api/discovery-environment-subset.pin.test.ts— 4 passed, VERDICT command-exit 0.pnpm --filter @objectstack/spec test— 483 files / 13775 tests passed, VERDICT command-exit 0.pnpm --filter @objectstack/spec typecheck— exit 0 (tsc --noEmit+check:scripts-typecheck+check:test-typecheck; the last compiles the test layer undertsconfig.test.json, which is what reaches this file).pnpm --filter '@objectstack/spec^...' build-> "No projects matched the filters" —packages/spechas no workspace dependencies, so step 1 is an empty run.packages/specitself was built before everydist/-reading gate, and laterpnpm build(73/73 tasks successful) before the four gates that refuse without one.node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands-> 78 commands, each run with its exit code landed to disk before any pipe, reconciled with--ran: 78 derived, 78 run, 0 NOT-MEASURED, 0 UNRUN (reconciler exit 0).pnpm check:cross-package-test-inputs(exit 1), and it is the known, already-filed local-only signature: it flags@objectstack/clidescendingpackages/spec/dist/, which exists only on a tree wherepackages/spechas been built — cards [finding] check:cross-package-test-inputs passes in CI and fails on a built tree — its verdict is a function of gitignored build state #18353 / [finding]check:cross-package-test-inputsanswers 1 or 0 depending on whetherpackages/spechas been BUILT — the author who follows AGENTS.md is the only one who sees the red, and CI never does #18440. Not re-filed, and not caused by this diff.pnpm lintequivalent, run whole rather than narrowed:eslint . --no-inline-config --format jsonover the repo -> 6803 files, 0 errors, 0 warnings, exit 0. The population figure is eslint's own count from its--format jsonoutput, not an estimate.grep -naPover the changed file finds none, andpnpm check:nul-bytesis green.Changeset —
skip-changeset, measuredpackages/spec'sfiles[]isdist · json-schema · liveness · prompts · llms.txt · README.md · src/**/*.zod.ts · CHANGELOG.md · api-surface · spec-changes.json. After a full build, grepping every one of those paths:src/**/*.zod.ts;EnvironmentTypeSchema: 12 files in the published paths, 1 insrc/**/*.zod.ts— the instrument fires;.pin.test.tsis not a*.zod.tsand nothing namedpinis emitted intodist/.A comment inside a test file publishes nothing from any released package, so
skip-changesetis the right label andpatchwould be wrong.Acceptance notes
Noted, not folded in — the same
#16325root, one line inside the test body, which this card's dispatch explicitly ring-fences ("do not change what the test asserts")::61of the same file, in the failure message of the second assertion, reads "if a bucket was renamed on the cloud side, rename it here". Post-#16325 the enum is declared here, in the open-source spec, so as a statement about where a rename happens it is stale. It is also arguably still true as a statement about where a rename originates — thesys_environmentrow and its taxonomy remain the cloud control plane's, andDiscoveryEnvironmentSchema's own.describe()still says "that issys_environment/ EnvironmentTypeSchema". Ambiguous enough that it is a reading for the seat, not a silent edit in a prose-only PR. Reported, not filed by this seat.Generated by Claude Code