Skip to content

feat: add Devnet frontend package foundations - #1330

Open
schickling-assistant wants to merge 10 commits into
mainfrom
schickling-assistant/2026-09-20-schickling-assistant-2026-09-20-storybook-devnet
Open

schickling-assistant wants to merge 10 commits into
mainfrom
schickling-assistant/2026-09-20-schickling-assistant-2026-09-20-storybook-devnet

Conversation

@schickling-assistant

@schickling-assistant schickling-assistant commented Sep 20, 2026

Copy link
Copy Markdown
Collaborator

Problem

Devnet needs one exact pnpm runtime across composed repositories and an exact Storybook listener port. Storybook 10.6 passes its selected port only to Vite HMR, so the HTTP listener can still choose another port and cannot participate in socket-ownership readiness.

Goal

Provide the canonical pnpm 12.4.1 runtime and a single reusable downstream patch authority that makes Storybook's Vite HTTP listener use options.port while retaining Storybook's HMR server.

Decisions

  • Keep the Storybook patch in @overeng/utils and export the same registry object to the workspace and downstream consumers. This avoids two patch authorities.
  • Match the exact Storybook 10.6 bundle source and require exactly one replacement in the test. Upstream drift therefore fails closed.
  • Set pnpm 12 pnpm_config_pm_on_fail=ignore in the Nix wrapper. The wrapper already supplies the exact authoritative pnpm, so runtime self-download would duplicate authority and fail in Nix sandboxes.

Verification

  • CI=1 packages/@overeng/utils/node_modules/.bin/vitest run packages/@overeng/utils/src/node/storybook/builder-vite-patch.unit.test.ts — 1 file and 1 test passed.
  • Built flake.lib.mkPnpm with Nix, then ran its pnpm --version from a fresh home with registry proxies pointed at a closed local port — exit 0, 12.4.1, no stderr.
  • pnpm install --frozen-lockfile completed with the committed lockfile unchanged.
  • The branch-owned lint:fix:format changed only completion-reporter.ts; .devenv/profile/bin/oxfmt --check passes that file.
  • git diff --check passed.

Pre-flip deviation: devenv tasks run check:quick is blocked before project checks by mr:setup, which rejects this legacy flat composition worktree. Creating a replacement worktree also failed under schickling/dotfiles#2954. Johannes approved committing the formatter-only repair with the exact local checks above and requiring full PR CI before merge.

Complexity

No new runtime dependency. The patch registry and exact-bundle test are the minimum compatibility boundary until Storybook ships the listener-port fix.

Concerns

The patch intentionally fails when Storybook changes the targeted bundle. A Storybook update must refresh or remove the patch with source-level verification.

Friction & bottlenecks

  • Megarepo composition incident schickling/dotfiles#2954 prevents the mandatory aggregate quick check in both the existing and newly requested validation worktrees.
  • gh-ci-utils logs currently fails its GitHub App token request with an administrative 403; raw GitHub logs were used under the documented exit-4 fallback.

Follow-ups

  • Remove the Storybook patch after the equivalent upstream fix is released and adopted.
  • Re-run check:quick after schickling/dotfiles#2954 clears.

References

  • Refs schickling/dotfiles#2954
Posted on behalf of @schickling
field value
agent_identity dev3.direct.omp.dezb8g5k
session unknown
agent_persona generalist
agent_supervisor unavailable
agent_tool OMP
agent_tool_version 18.2.6
agent_runtime OMP 18.2.6
agent_model openai-codex/gpt-5.6-sol
worktree unknown
tooling_profile dotfiles@965ef7e-dirty

@schickling-assistant schickling-assistant added area:storybook Storybook configuration and stories · Set: manual type:feature New user-visible or system capability · Set: manual area:nix Nix flakes, derivations, FOD hashes, builders · Set: manual labels Sep 20, 2026
@schickling-assistant
schickling-assistant marked this pull request as ready for review September 22, 2026 06:51
@schickling
schickling enabled auto-merge (squash) September 22, 2026 08:19
agent-identity: dev3.direct.omp.48kxgqmb
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.2.6
agent-runtime: OMP 18.2.6
agent-model: openai-codex/gpt-5.6-sol
tooling-profile: dotfiles@965ef7e-dirty
agent-identity: dev3.direct.omp.48kxgqmb
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.2.6
agent-runtime: OMP 18.2.6
agent-model: openai-codex/gpt-5.6-sol
tooling-profile: dotfiles@965ef7e-dirty
agent-identity: dev3.direct.omp.48kxgqmb
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.2.6
agent-runtime: OMP 18.2.6
agent-model: openai-codex/gpt-5.6-sol
tooling-profile: dotfiles@965ef7e-dirty
@schickling-assistant
schickling-assistant force-pushed the schickling-assistant/2026-09-20-schickling-assistant-2026-09-20-storybook-devnet branch from 15d73b5 to cfc10ba Compare September 22, 2026 08:52
agent-identity: dev3.direct.omp.48kxgqmb
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.2.6
agent-runtime: OMP 18.2.6
agent-model: openai-codex/gpt-5.6-sol
tooling-profile: dotfiles@965ef7e-dirty
agent-identity: dev3.direct.omp.48kxgqmb
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.2.6
agent-runtime: OMP 18.2.6
agent-model: openai-codex/gpt-5.6-sol
tooling-profile: dotfiles@965ef7e-dirty
agent-identity: dev3.direct.omp.48kxgqmb
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.2.6
agent-runtime: OMP 18.2.6
agent-model: openai-codex/gpt-5.6-sol
tooling-profile: dotfiles@965ef7e-dirty
agent-identity: dev3.direct.omp.48kxgqmb
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.2.6
agent-runtime: OMP 18.2.6
agent-model: openai-codex/gpt-5.6-sol
tooling-profile: dotfiles@965ef7e-dirty
agent-identity: dev3.direct.omp.dezb8g5k
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.2.6
agent-runtime: OMP 18.2.6
agent-model: openai-codex/gpt-5.6-sol
tooling-profile: dotfiles@965ef7e-dirty
agent-identity: dev3.direct.omp.dezb8g5k
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.2.6
agent-runtime: OMP 18.2.6
agent-model: openai-codex/gpt-5.6-sol
tooling-profile: dotfiles@965ef7e-dirty
agent-identity: dev3.direct.omp.dezb8g5k
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.2.6
agent-runtime: OMP 18.2.6
agent-model: openai-codex/gpt-5.6-sol
tooling-profile: dotfiles@965ef7e-dirty

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:nix Nix flakes, derivations, FOD hashes, builders · Set: manual area:storybook Storybook configuration and stories · Set: manual type:feature New user-visible or system capability · Set: manual

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant