Skip to content

Wave 1 — Contracts & schemas#7

Merged
rickylabs merged 44 commits into
feat/package-qualityfrom
feat/package-quality-wave1-contracts
Jun 6, 2026
Merged

Wave 1 — Contracts & schemas#7
rickylabs merged 44 commits into
feat/package-qualityfrom
feat/package-quality-wave1-contracts

Conversation

@rickylabs

@rickylabs rickylabs commented Jun 5, 2026

Copy link
Copy Markdown
Owner

Wave 1 — Contracts & schemas (Implementation Complete — READY FOR MERGE)

Run ID: feat-package-quality-wave1-contracts--contracts
Branch: feat/package-quality-wave1-contracts
Base: feat/package-quality
PLAN-EVAL:PASS (adjusted) — see comment

Units (3)

Unit Archetype Slow types deno doc --lint README /docs Tests
@netscript/runtime-config 1 — Small Contract 0 ✅ clean 346 LOC ✓ 8 files ✓ 8 passed
@netscript/config 1 — Small Contract 0 ✅ clean 255 LOC ✓ 7 files ✓ 10 passed
@netscript/contracts 1 — Small Contract 0 ✅ clean 424 LOC ✓ 7 files ✓ 4 passed

Changes

  • @netscript/runtime-config: Split 415-line mod.ts into src/domain/, src/application/, src/diagnostics/. Added README, docs, tests, deno.json tasks. Removed console.* from package code (structured diagnostics via summarizeRuntimeConfig()).
  • @netscript/config: Renamed helpers.tssrc/domain/saga-inputs.ts. Fixed private-type-ref on subpaths. Added JSDoc to all exported types. Removed Zod internal (z.ZodType) from public schema signatures. Expanded docs.
  • @netscript/contracts: Moved helpers/src/application/. Exported referenced types (ContractSchema, ContractObjectSchema, BaseContractProcedure) to fix subpath private-type-ref. Added getting-started.md and advanced/extending.md.
  • Cross-cutting: Consumer validation passed on packages/cli, plugins/sagas, plugins/workers.

Review feedback addressed

  • runtime-config loader: hardened isVersionPointer guard, added test for malformed pointer paths (e4353a3)
  • runtime-config watcher: fixed unhandled rejection in setTimeout callback, cleared debounceTimer on abort (1ae5ca2)
  • config mod.ts: fixed JSDoc example to use real inspectConfig API
  • config schema: replaced z.unknown().transform() with explicit SagasConfigSectionSchema / TriggersConfigSectionSchema

Gate results (all 3 packages)

Gate Result
deno publish --dry-run ✅ 0 slow types (all 3)
deno doc --lint ✅ clean (all entrypoints)
deno check ✅ 0 errors
deno lint ✅ 0 errors
deno fmt --check ✅ 0 errors
deno test --allow-all ✅ all pass
F-14 Console-log lint ✅ 0 hits in src/
F-17 Abstract-derived co-location ✅ no violations

Architecture debt

  • Closed: runtime-config single-file refactor, config AP-16 (helpers.ts), contracts AP-16 (helpers/)
  • Created: contracts/crud/ at root (inconsistent layout — acceptable for subpath stability), config/src/domain/mod.ts justified barrel (arch:barrel-ok)

Merge readiness

Per AGENTS.md, the full CLI E2E suite is the merge-readiness gate. It has completed successfully.

Gate Result
deno task e2e:cli ✅ passed — passed=41 failed=0 skipped=0
Runtime cleanup docker ps empty afterward; aspire ps reported no running apphost

The full suite exercised project scaffold, plugin add/list, DB init/generate/seed, generated checks, Aspire launch/waits, worker/saga/trigger runtime gates, plugin doctor, OTEL webhook, OTEL trace-chain validation, and cleanup.


Plan & Design phase: see original PR description

rickylabs and others added 3 commits June 5, 2026 23:52
…config

Re-baselined all three units against feat/package-quality. Real dry-run
shows 0 slow types for all (stale audit claimed 35/30/1). Locked 8
decisions, 27 commit slices, archetype = 1 for all three.

Artifacts:
- research.md: verified findings with per-unit dry-run output
- plan.md: locked decisions, open-decision sweep, risk register, gates
- worklog.md: Design checkpoint with public surface, 27 slices
- drift.md: re-baseline drift logged
- context-pack.md: run status updated
@rickylabs

Copy link
Copy Markdown
Owner Author

@copilot use harness run evaluator pass on the plan phase above, proceed to adjustment before giving verdict if surface of change is reasonable.

Comment your verdict with a summary on the PR

Copilot AI commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

@copilot use harness run evaluator pass on the plan phase above, proceed to adjustment before giving verdict if surface of change is reasonable.

Comment your verdict with a summary ...

PLAN-EVAL verdict: ✅ PASS (adjusted)

Ran a separate-session PLAN-EVAL pass over the Wave 1 plan (config, contracts, runtime-config) against gates/plan-gate.md. Walked the checklist, ran my own open-decision sweep, and spot-checked load-bearing findings against the tree.

Checklist

Plan-Gate box Result
Research present & current (re-baselined vs feat/package-quality) PASS
Decisions locked (L1–L8 w/ rationale) PASS
Open-decision sweep (4 defer + 1 must-resolve, resolved) PASS
Commit slices (27, ordered, gate+files each) PASS
Risk register PASS
Gate set selected PASS after adjustment
Deferred scope explicit PASS
jsr-audit surface scan PASS

Adjustment applied (surface reasonable → fixed in place rather than FAIL_PLAN)

The selected Archetype-1 gate set omitted two gates the matrix marks required:

  • F-14 Console-log lint — directly material: it's the proving gate for L5 (runtime-config console → return-value diagnostics). Added and mapped into the validation plan (grep console. after slices 3–5).
  • F-17 Abstract-derived co-location — added as PENDING_SCRIPT, no violation (all three are type-only + factory surfaces).

Edits landed in plan.md §Fitness Gates + Validation Plan, worklog.md gate table, with a drift.md entry and plan-eval.md verdict.

Spot-checks confirmed

config/helpers.ts, contracts/helpers/{paginated-query,transform}.ts, contracts/crud/ at root, runtime-config/mod.ts = 415 LOC with console.* at 334–405 and no README/docs/tests, config/src/domain/mod.ts barrel — all match the plan's findings.

Caveat for IMPL-EVAL

The deno publish --dry-run = 0 slow types re-baseline could not be independently re-run here (deno unavailable / not installable in this sandbox). All structural findings the plan rests on were verified; IMPL-EVAL must still confirm F-6 (0 slow types on all three) at the implement gate.

Implementation may begin. No slice should be committed beyond this point without the F-14/F-17 additions in the gate sweep.

Copilot AI changed the title Wave 1 — Contracts & schemas (Plan & Design — READY FOR REVIEW) Wave 1 — Contracts & schemas (Plan & Design — PLAN-EVAL PASS) Jun 5, 2026
rickylabs added 2 commits June 6, 2026 01:04
Evaluator PASS (adjusted). Added:
- F-14 Console-log lint (proving gate for L5 runtime-config console removal)
- F-17 Abstract-derived co-location (PENDING_SCRIPT, no violation)

Updated plan.md Fitness Gates, Validation Plan, worklog.md gate table.
Wrote plan-eval.md verdict.
@rickylabs

Copy link
Copy Markdown
Owner Author

Implementation update — slice 1

Run: feat-package-quality-wave1-contracts--contracts
Commit: d0be0ad (refactor(runtime-config): scaffold domain types)
Pushed: feat/package-quality-wave1-contracts

Work completed

  • Added packages/runtime-config/src/domain/types.ts.
  • Documented runtime override domain types and finite runtime/topic constants.
  • Updated harness worklog.md and context-pack.md with slice 1 evidence.

Gate evidence

  • PASS: cd packages/runtime-config && deno doc --lint src/domain/types.ts
  • Note: Deno emitted unrelated workspace-config warnings from examples/playground/deno.json.

Next slice

  • Slice 2: extract src/application/loader.ts from runtime-config mod.ts and run deno check src/application/loader.ts.

@rickylabs

Copy link
Copy Markdown
Owner Author

Implementation update — slice 2

Run: feat-package-quality-wave1-contracts--contracts
Commit: 31b1464 (refactor(runtime-config): extract loader application module)
Pushed: feat/package-quality-wave1-contracts

Work completed

  • Added packages/runtime-config/src/application/loader.ts.
  • Extracted runtime directory resolution, pointer parsing, runtime config loading, and accessor functions from the current root module shape.
  • Preserved existing public loader/accessor signatures.
  • Updated harness worklog.md, context-pack.md, and committed the prior commits.md append.

Gate evidence

  • PASS: cd packages/runtime-config && deno check src/application/loader.ts
  • Note: Deno emitted unrelated workspace-config warnings from examples/playground/deno.json.

Next slice

  • Slice 3: extract src/application/watcher.ts, remove runtime-config console.*, and run deno check plus console grep.

@rickylabs

Copy link
Copy Markdown
Owner Author

Implementation update — slice 3

Run: feat-package-quality-wave1-contracts--contracts
Commit: 617e7d4 (refactor(runtime-config): extract watcher application module)
Pushed: feat/package-quality-wave1-contracts

Work completed

  • Added packages/runtime-config/src/application/watcher.ts.
  • Extracted debounced file-watch reload behavior behind watchRuntimeConfig.
  • Removed package-level console emission from the new src/ watcher path; callers own presentation and diagnostics.
  • Updated harness worklog.md, context-pack.md, and committed the prior commits.md append.

Gate evidence

  • PASS: cd packages/runtime-config && deno check src/application/watcher.ts
  • PASS: Get-ChildItem src -Recurse -File | Select-String -Pattern 'console\.' returned 0 matches.
  • Note: Deno emitted unrelated workspace-config warnings from examples/playground/deno.json.

Next slice

  • Slice 4: add src/diagnostics/summary.ts with summarizeRuntimeConfig(...) returning structured summary data.

@rickylabs

Copy link
Copy Markdown
Owner Author

Implementation update — slice 4

Run: feat-package-quality-wave1-contracts--contracts
Commit: 23e1480 (feat(runtime-config): add structured config summary)
Pushed: feat/package-quality-wave1-contracts

Work completed

  • Added packages/runtime-config/src/diagnostics/summary.ts.
  • Replaced the planned console-oriented summary shape with summarizeRuntimeConfig(config, prefix?) returning typed summary data.
  • Included caller-owned messages lines for presentation surfaces without emitting from package code.
  • Updated harness worklog.md, context-pack.md, and committed the prior commits.md append.

Gate evidence

  • PASS: cd packages/runtime-config && deno check src/diagnostics/summary.ts
  • Note: Deno emitted unrelated workspace-config warnings from examples/playground/deno.json.

Next slice

  • Slice 5: rewrite packages/runtime-config/mod.ts as a thin public barrel and run deno doc --lint mod.ts.

@rickylabs

Copy link
Copy Markdown
Owner Author

Implementation update — slice 5

Run: feat-package-quality-wave1-contracts--contracts
Commit: f59f9ef (refactor(runtime-config): expose thin public barrel)
Pushed: feat/package-quality-wave1-contracts

Work completed

  • Rewrote packages/runtime-config/mod.ts as a documented thin public barrel.
  • Exported the planned domain types, loader/accessor functions, watcher, and structured summary API.
  • Kept logRuntimeConfigSummary out of the new public surface per locked decision L5.
  • Updated harness worklog.md, context-pack.md, and committed the prior commits.md append.

Gate evidence

  • PASS: cd packages/runtime-config && deno doc --lint mod.ts
  • PASS: Get-ChildItem src -Recurse -File | Select-String -Pattern 'console\.' returned 0 matches.
  • Note: Deno emitted unrelated workspace-config warnings from examples/playground/deno.json.

Next slice

  • Slice 6: add runtime-config standard deno.json tasks, description, and publish config; run deno publish --dry-run.

@rickylabs

Copy link
Copy Markdown
Owner Author

Implementation update — slice 6

Run: feat-package-quality-wave1-contracts--contracts
Commit: f413fde (chore(runtime-config): add package tasks and publish config)
Pushed: feat/package-quality-wave1-contracts

Work completed

  • Updated packages/runtime-config/deno.json with description and MIT license.
  • Added standard local tasks: check, test, lint, fmt, and publish:dry-run.
  • Added publish include/exclude config for README/docs, entrypoint, and src/**/*.ts.
  • Updated harness worklog.md, context-pack.md, and committed the prior commits.md append.

Gate evidence

  • PASS: cd packages/runtime-config && deno publish --dry-run --allow-dirty
  • PASS: dry-run reported 0 slow-type errors.
  • Published file list currently includes deno.json, mod.ts, and src/**/*.ts; README/docs will enter the list when slices 7–8 add them.
  • Note: Deno emitted unrelated workspace-config warnings from examples/playground/deno.json.

Next slice

  • Slice 7: write packages/runtime-config/README.md with at least 150 LOC and run the line-count gate.

@rickylabs

Copy link
Copy Markdown
Owner Author

Implementation update — slice 7

Run: feat-package-quality-wave1-contracts--contracts
Commit: 45a276b (docs(runtime-config): add package README)
Pushed: feat/package-quality-wave1-contracts

Work completed

  • Added packages/runtime-config/README.md.
  • Covered install/imports, runtime directory resolution, pointer file layout, quick start, watcher usage, structured diagnostics, public functions/types, permissions, examples, testing pattern, compatibility, stability, and related packages.
  • Updated harness worklog.md, context-pack.md, and committed the prior commits.md append.

Gate evidence

  • PASS: cd packages/runtime-config && (Get-Content README.md).Count
  • Result: 346 lines, satisfying README >= 150 LOC.

Next slice

  • Slice 8: scaffold packages/runtime-config/docs/ per STANDARDS § 7 and run the docs file-list gate.

@rickylabs

Copy link
Copy Markdown
Owner Author

Implementation update — slice 8

Run: feat-package-quality-wave1-contracts--contracts
Commit: df8d087 (docs(runtime-config): scaffold package docs)
Pushed: feat/package-quality-wave1-contracts

Work completed

  • Added packages/runtime-config/docs/.
  • Included overview, architecture, concepts, getting started, recipes/basic usage, recipes/testing, reference index, and advanced/extending pages.
  • Used STANDARDS §7 frontmatter on each docs page.
  • Updated harness worklog.md, context-pack.md, and committed the prior commits.md append.

Gate evidence

  • PASS: cd packages/runtime-config && Get-ChildItem docs -Recurse -File
  • Result: 8 docs files listed under docs/, docs/recipes/, docs/reference/, and docs/advanced/.

Next slice

  • Slice 9: add runtime-config tests for loader, accessors, and summary; run deno test --allow-all.

@rickylabs

Copy link
Copy Markdown
Owner Author

Implementation update — slice 9

Run: feat-package-quality-wave1-contracts--contracts
Commit: 7b83766 (test(runtime-config): cover loader accessors and summary)
Pushed: feat/package-quality-wave1-contracts

Work completed

  • Added packages/runtime-config/tests/loader_test.ts.
  • Added packages/runtime-config/tests/accessors_test.ts.
  • Added packages/runtime-config/tests/summary_test.ts.
  • Covered empty defaults, JSON pointer loading, plain pointer loading, accessor lookups/misses, feature defaults, and structured summary messages.
  • Updated harness worklog.md, context-pack.md, and committed the prior commits.md append.

Gate evidence

  • PASS: cd packages/runtime-config && deno test --allow-all
  • Result: 8 passed, 0 failed.
  • Note: Deno emitted unrelated workspace-config warnings from examples/playground/deno.json.

Next slice

  • Slice 10: runtime-config gate sweep across the Arch-1 F-* gates.

@rickylabs

Copy link
Copy Markdown
Owner Author

Implementation update — slice 10

Run: feat-package-quality-wave1-contracts--contracts
Commit: a8a7caf (test(runtime-config): complete package gate sweep)
Pushed: feat/package-quality-wave1-contracts

Work completed

  • Completed the runtime-config Arch-1 gate sweep.
  • Fixed sweep findings: versioned test @std/assert imports, require-await issues in summary tests, formatting drift, and a root mod.ts example console. hit.
  • Recorded runtime-config closure evidence in .llm/harness/debt/arch-debt.md.
  • Updated harness worklog.md, context-pack.md, and committed the prior commits.md append.

Gate evidence

  • PASS: deno check mod.ts
  • PASS: deno doc --lint mod.ts
  • PASS: deno publish --dry-run --allow-dirty with 0 slow-type errors
  • PASS: deno test --allow-all with 8 passed, 0 failed
  • PASS: deno lint
  • PASS: deno fmt --check
  • PASS: README line count = 339; docs file-list = 8 files
  • PASS: manual F-1/F-8/F-11/F-12/F-14/F-15/F-16/F-17/F-18 scans
  • Note: Deno emitted unrelated workspace-config warnings from examples/playground/deno.json.

Next slice

  • Slice 11: rename packages/config/helpers.ts to src/domain/saga-inputs.ts, update imports/exports, and run deno check mod.ts.

Copilot AI changed the title Wave 1 — Contracts & schemas (IMPL-EVAL complete — FAIL_FIX: config ./paths doc-lint) Fix JSR isolated declaration failures across config, CLI, and plugins Jun 6, 2026
@rickylabs

Copy link
Copy Markdown
Owner Author

Fixed the Deno 2.8.2 JSR/type-check failures.

Summary of fixes:

Added explicit z.ZodType annotations to @netscript/config exported schemas to satisfy --isolatedDeclarations.
Updated config authoring input types so defaulted saga/trigger group shapes type-check correctly.
Added explicit return/parameter/type annotations across CLI, maintainer CLI, service, KV, queue, sagas, and workers surfaces.
Fixed sagas/workers router exports and handler maps so publish dry-runs no longer fail on inferred oRPC handler types.
Added explicit worker cron and KV-key factory types.
Validation:

packages/config: publish dry-run PASS; tests PASS; lint PASS.
packages/cli: publish dry-run PASS; check PASS.
plugins/sagas: publish dry-run PASS; check PASS.
plugins/workers: publish dry-run PASS; check PASS.
CodeQL: 0 alerts.
plugins/sagas / plugins/workers test tasks currently report “No test modules found.”

@rickylabs

Copy link
Copy Markdown
Owner Author

CLI E2E merge-readiness gate completed.

Command run from feat/package-quality-wave1-contracts worktree:

deno task e2e:cli run scaffold.plugins --cleanup --format pretty

Result: PASS, exit code 0.

Gate summary:

  • preflight.deno: passed
  • scaffold.init: passed
  • scaffold.plugin.worker: passed
  • scaffold.plugin.saga: passed
  • scaffold.plugin.trigger: passed
  • scaffold.plugin.stream: passed
  • scaffold.plugin-list: passed
  • generated.plugins-check: passed
  • behavior.plugins-health: passed

Summary reported by runner: passed=9 failed=0.

Also pushed 936209a to correct .agents/docs/README.md; it now documents the full scaffold plugins E2E command instead of the bare deno task e2e:cli runner invocation. The only warnings observed were the existing examples/playground/deno.json workspace-scope warnings for nodeModulesDir, unstable, and workspace.

@rickylabs

Copy link
Copy Markdown
Owner Author

CLI E2E follow-up

Pushed f6bf743 (test(cli): restore full scaffold runtime e2e) to close the remaining CLI E2E gap.

Result

deno task e2e:cli now runs the full merge-readiness suite and passed locally:

passed=41 failed=0 skipped=0

Cleanup also completed: docker ps returned no containers afterward, and aspire ps reported no running apphost.

Coverage exercised

The bare task now runs the full scaffold.runtime path with cleanup, covering project scaffold, plugin add/list, DB init/generate/seed, plugin registry generation, generated deno check, Aspire restore/start/waits/describe, worker/saga/trigger runtime gates, plugin doctor, OTEL webhook, OTEL trace-chain validation, and cleanup.

Fixes made while adapting the suite

  • Changed bare deno task e2e:cli to run full scaffold.runtime, not the narrow scaffold.plugins smoke.
  • Tightened runtime gates for workers, sagas, triggers, webhook/event validation, worker executions, and OTEL trace linkage.
  • Ported the relevant .llm/tools scripts/docs, including scaffold-e2e-test.ts, parse-deno-check-errors.ts, entry.md, and README, while leaving old-repo-specific tooling out.
  • Updated AGENTS.md, .agents/docs/README.md, and packages/cli/e2e/README.md so the full-suite command is explicit.
  • Fixed generated background workspace import rewriting for official plugins.
  • Fixed worker generated sample typing, trigger sample routes, Garnet/Redis detection, Redis queue delivery, worker runtime Redis adapter registration, Windows local module file URLs, and queue trace propagation.

Additional focused checks run before the final full E2E pass:

deno check --unstable-kv packages/cli/e2e/mod.ts packages/cli/e2e/cli.ts packages/telemetry/src/instrumentation/queue.ts packages/queue/adapters/redis.adapter.ts packages/kv/core/auto-detect.ts plugins/workers/bin/runtime.ts plugins/workers/worker/job-execution.ts plugins/workers/worker/worker.ts plugins/triggers/src/runtime/trigger-runtime-processor.ts

deno test --allow-all packages/cli/e2e/tests packages/cli/src/maintainer/features/sync/plugin/copy-official-plugin-copy_test.ts

deno test --allow-env packages/kv/tests/auto-detect_test.ts

@rickylabs

Copy link
Copy Markdown
Owner Author

AGENTS.md follow-up

Pushed b96ba0d (docs(agents): port durable claude guidance).

I reviewed C:\Dev\repos\netscript\output\test-app\CLAUDE.md and ported only the guidance that still applies to this repo into AGENTS.md:

  • Doctrine/harness sources of truth using current repo paths (docs/architecture/doctrine/, .agents/skills/*, .llm/harness/).
  • Separate evaluator-session rule for harness work.
  • Durable operating rules: doctrine first, contract first, wrap upstream APIs, research before writing, explicit drift logging, and no lock/cache deletion or deno cache --reload without approval.
  • Current read order for this repo, avoiding stale .claude/ and old-repo layout references.
  • Tooling preference for MCP/repo-native tools, .llm/tools/, tools/, focused shell, then web.
  • Validation guidance, including --unstable-kv for targeted workspace deno check commands.

I intentionally did not port stale old-repo references such as .claude/, .resources/, contracts/versions/v1/, services/, background/, apps/frontend/, or dotnet/AppHost/.

Validation: deno fmt --check AGENTS.md passed.

@rickylabs

Copy link
Copy Markdown
Owner Author

Playground example removal

Pushed 2a80508 (chore(examples): remove playground scaffold).

What changed

  • Removed the tracked examples/playground tree entirely.
  • Removed the release-eject path that would recreate examples/playground during producer repo generation.
  • Removed the now-unused examples post-processing helper tied to that scaffold path.
  • Updated stale apps/playground examples in the ported .llm/tools script headers to use current package paths.

Verification

  • git grep -n "examples/playground" -- ':!examples/playground' ':!.llm/tmp' returned no matches.
  • git grep -n "apps/playground" -- '.llm/tools' returned no matches.
  • deno fmt --check .llm/tools/find-import-patterns.ts .llm/tools/find-lines.ts .llm/tools/find-symbol-usages.ts .llm/tools/list-exports.ts packages/cli/src/maintainer/features/release/eject/release-eject.ts packages/cli/src/maintainer/features/release/eject/producer-root-files.ts passed.
  • deno check --unstable-kv packages/cli/src/maintainer/features/release/eject/release-eject.ts passed.
  • deno task check passed, and the prior workspace warnings from examples/playground/deno.json are gone.

@rickylabs rickylabs changed the title Fix JSR isolated declaration failures across config, CLI, and plugins Wave 1 — Contracts & schemas Jun 6, 2026
@rickylabs

Copy link
Copy Markdown
Owner Author

Config doc-lint merge blocker fixed

Pushed cb35d73 (docs(config): export trigger input types).

What changed

  • Exported TriggerDefinitionConfigInput, TriggerGroupInput, and TriggersConfigInput from the root @netscript/config surface so NetScriptConfigInput["triggers"] no longer references a private type.
  • Kept the config types.ts public type barrel aligned with the domain inputs.
  • Added JSDoc to @netscript/config/paths exported interface properties, which the full config doc-lint sweep requires.

Verification

  • deno doc --lint mod.ts src/merge/mod.ts src/paths/mod.ts src/schema/plugins/mod.ts passed from packages/config.
  • deno check --unstable-kv packages/config/mod.ts packages/config/types.ts packages/config/src/paths/mod.ts passed.
  • deno fmt --check mod.ts types.ts src/paths/mod.ts passed from packages/config.

Worktree is clean after the push.

@rickylabs
rickylabs merged commit 4c57867 into feat/package-quality Jun 6, 2026
@rickylabs
rickylabs deleted the feat/package-quality-wave1-contracts branch June 22, 2026 21:34
rickylabs added a commit that referenced this pull request Jul 11, 2026
…ries polish (#684)

* docs(storefront): add typed storefront UI chapter, renumber deploy (proposal #6)

Add 06-storefront-ui.md showcasing the frontend typed spine the storefront
series never touched: a bound route contract (createRouteReference /
defineRouteContract / bindRoutePattern), a per-service createServiceClient +
createServiceQueryUtils clients module, and a Fresh island reading with
useIslandQuery and beginning checkout with useIslandMutation. Deploy renumbered
06 -> 07; prev/next/learningPath/xref navigation rewired across the series.

Every API grounded via deno doc + two scratch deno checks against packages/sdk
and packages/fresh; the island uses contract-derived keys with typed client
calls (the SDK queryOptions/mutationOptions result is not raw-spreadable into
the zero-arg island hooks).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VifzAytcxBk5odEMaCXihM

* docs(storefront): index differentiator lede, deploy one-command framing, PORT note

- index.md: name the differentiator the series proves + a 'what this replaces'
  contrast sentence (proposal #17).
- 02-catalog-service.md: note that Aspire injects PORT and services.<name>.port
  in netscript.config.ts is the typed source of truth (proposal #7).
- 07-deploy.md one-command scaffold-to-Aspire framing shipped with commit 1;
  worklog records the full run.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VifzAytcxBk5odEMaCXihM

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
rickylabs added a commit that referenced this pull request Jul 11, 2026
Aspire injects PORT at runtime; netscript.config.ts services.<name>.port
(apps.<name>.port for Fresh apps) is the typed source of truth the scaffold
wires as the fallback default. One shared sentence at each first parseInt
occurrence so the raw-env read no longer reads as the canonical pattern.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VifzAytcxBk5odEMaCXihM
rickylabs added a commit that referenced this pull request Jul 11, 2026
…-tos, auth example (#686)

* docs: clarify PORT/typed-config relationship across 8 pages (#660 #7)

Aspire injects PORT at runtime; netscript.config.ts services.<name>.port
(apps.<name>.port for Fresh apps) is the typed source of truth the scaffold
wires as the fallback default. One shared sentence at each first parseInt
occurrence so the raw-env read no longer reads as the canonical pattern.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VifzAytcxBk5odEMaCXihM

* docs: reference showcase ledes, see-it-live links, streams framing (#660 #8 #9 #10 #15)

- reference/ai: explicit note that AI provider keys have no typed config
  surface; raw Deno.env.get is the supported path (#8).
- reference/queue + reference/kv: See-it-live link blocks to the queue-kv-cron
  how-to and data-persistence concept page (#9).
- reference/contracts + reference/sdk: showcase sentence per lede — contracts
  obviate manual req.json() validation; defineServices() wires the whole typed
  stack in one call (#10).
- durable-workflows/streams: one sentence reframing no in-process subscribe()
  as an intentional single HTTP/SSE surface (#15).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VifzAytcxBk5odEMaCXihM

* docs: add runnable end-to-end blocks to three decision how-tos (#660 #11)

discover-services, choose-a-queue-provider, and add-a-task-runtime-adapter
each gain one copy-pasteable end-to-end block (resulting file + full command
sequence) at deploy-local-aspire density, demonstrating the pluggability the
pages previously only asserted. All commands/APIs grounded in package source.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VifzAytcxBk5odEMaCXihM

* docs: add complete route-protection example to better-auth-plugins (#660 #12)

A real Fresh routes/*.tsx handler gated on an active session and an admin role,
at sibling auth.md's depth: resolves the session via backend.sessions.getSession,
maps to a Principal with principalMapper, and fails closed on both checks.
Grounded in packages/auth-better-auth + @netscript/service/auth exports.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VifzAytcxBk5odEMaCXihM

* chore(run): docs-660b sweep worklog (#660)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VifzAytcxBk5odEMaCXihM

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants