Skip to content

Commit 73c816c

Browse files
committed
fix(cli,scripts): import DevLogin from the system subpath; devLogins is not a metadata collection (#17556)
Claude-Session: https://claude.ai/code/session_01JbZnqu8bt6YqfJsr9vaFb3 Co-authored-by: Claude <noreply@anthropic.com>
1 parent a993cf2 commit 73c816c

3 files changed

Lines changed: 15 additions & 3 deletions

File tree

‎content/docs/getting-started/quick-reference.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ Plugin architecture, manifests, and kernel runtime.
8585
| **[Metadata Loader](/docs/references/kernel/metadata-loader)** | `metadata-loader.zod.ts` | MetadataLoaderContract | Metadata loading |
8686
| **[Package Registry](/docs/references/kernel/package-registry)** | `package-registry.zod.ts` | InstalledPackage, InstallPackageRequest | Package resolution |
8787

88-
## System Protocol (16 of 33 schemas)
88+
## System Protocol (16 of 34 schemas)
8989

9090
Runtime environment, logging, jobs, caching, and observability.
9191

‎packages/cli/src/utils/format.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import type { TenancyPosture } from '@objectstack/spec/security';
99
// drift the day a suppression reason is added, and the whole point of asking
1010
// through the contract is that the two sides cannot disagree.
1111
import type { SeedSettlementSnapshot } from '@objectstack/spec/contracts';
12-
import type { DevLogin } from '@objectstack/spec';
12+
import type { DevLogin } from '@objectstack/spec/system';
1313
import { writeStdoutDirect } from './json-stdout.js';
1414
import { authoringRuleUnionStack } from './stack-collections.js';
1515

‎scripts/check-stack-collection-maps.mjs‎

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,20 @@ export function tupleFirstItems(body) {
332332
* Every one of the eight sites is correct to omit it, so counting it would
333333
* manufacture eight simultaneous deviations and drive eight waiver rows that
334334
* each assert the opposite of the truth.
335+
* - `devLogins` (#17556) carries what the DEVELOPMENT BOOT BANNER prints — the
336+
* first-run credentials an application contributes so an operator is pointed
337+
* at an account that actually shows something. Its one reader is the CLI
338+
* banner, off the top level of the definition it booted. It names no metadata
339+
* type, registers nothing, persists nothing and creates no account: an entry
340+
* is presentation about accounts the application seeds by other means. Like
341+
* `packages` it has no singular name in `PLURAL_TO_SINGULAR`, no artifact
342+
* subdirectory, no `registerInMemory` kind and no map form — and it is an
343+
* artifact ENVELOPE key besides (`ASSEMBLED_PACKAGE_BODY_ENVELOPE_KEYS`), so
344+
* it is refused inside `packages[].manifest` exactly as `devPlugins` is. All
345+
* eight sites are correct to omit it, so the same eight-contradictory-waivers
346+
* outcome applies.
335347
*/
336-
const NON_COLLECTION_ARRAY_KEYS = new Set(['packages']);
348+
const NON_COLLECTION_ARRAY_KEYS = new Set(['packages', 'devLogins']);
337349

338350
/**
339351
* The stack-collection set: top-level `ObjectStackDefinitionSchema` keys whose

0 commit comments

Comments
 (0)