Skip to content

sync: merge main (0.1.34) into refactor/clean-kitchen - #3423

Merged
Serhan-Asad merged 30 commits into
refactor/clean-kitchenfrom
refactor/d3-sync-main
Nov 15, 2026
Merged

Serhan-Asad merged 30 commits into
refactor/clean-kitchenfrom
refactor/d3-sync-main

Conversation

@Serhan-Asad

@Serhan-Asad Serhan-Asad commented Nov 15, 2026 •

Copy link
Copy Markdown
Collaborator

This PR merges origin/main (0.1.34, 27 commits) into refactor/clean-kitchen. It is a merge commit, with no rebase and no force push. Two main changes matter here:

Only test/runtime-seam.test.mjs conflicted, in 5 hunks, all inside SEAM5. Main rewrote SEAM5 inline, while #3392 had moved its probes to test/helpers/seam-loads.mjs and its data to test/fixtures/seam-loads.txt.

Lines

  • Whole PR against refactor/clean-kitchen: +7,804 / -70,110 lines in 580 files. Almost all of this is main. For example, main deleted src/runtime/ and test/runtime-package/.
  • Hand-written lines (my edits after choosing a side in each hunk): +30 / -24.
    • test/runtime-seam.test.mjs: +10 / -10
    • test/helpers/seam-loads.mjs: +14 / -12
    • test/tools/ratchet.mjs: +6 / -2 (its own commit)
  • Generated: test/fixtures/seam-loads.txt +4 / -13 (from node test/tools/record-seam-loads.mjs).

How each hunk was resolved

I resolved each hunk by hand. No side was taken whole.

Hunk Main side Kept
1 BASE_SRC_CATALOG and RECORDED_BASE_ENTRIES data (78 lines) none. The data lives in the record, which I regenerated.
2 inline Tarjan function, plus main's static graph over the package files main's comment, pkgRuntimeDir and staticFiles. Tarjan stays in the helper.
3 inline ASYNC_SEAM_BRIDGE_PROBES, analyzer and runProbe (68 lines) none here; ported to the helper (see below).
4 inline probe list (51 lines) none here; the helper's list drops the same probes.
5 main's hand-picked rejection checks the derived checks from #3392, without the checks for the removed approve --automatic.

The lines around the hunks auto-merged to main's version. These include ALLOWED_BASE_CYCLES without the interface-draft cycle, coveredLocals with accounts and without interface-draft, and ACYCLIC_ENTRIES without cli:interface-draft.

Main's Runtime logic in the helper-based SEAM5

  • Static graph. This is main's code. It reads the package files node_modules/@promptdriven/runtime-client/src/runtime/*.mjs under src/runtime/ names, and the specifier '@promptdriven/runtime-client' gives an edge to src/runtime/index.mjs.
  • Probe names. These work the same way as on main: the package entry becomes runtime/index.mjs, and the package's src/runtime/x.mjs becomes runtime/x.mjs (src/runtime/x.mjs in the cycle strings).
    • The helper finds the entry as the file that src/runtime-seam.mjs loads from outside src/, so the helper never writes the package name. SEAM24 forbids that name in every test file except test/runtime-seam.test.mjs, and SEAM1 makes the seam the only importer of the package.
    • The test still names the package paths, as main does.
  • Load-failure checks. These now find the package file for a runtime/... name. runtime/index.mjs rejects both the package entry and its src/runtime/index.mjs. The light-entry checks now also reject package modules outside the record.
  • ASYNC_SEAM_BRIDGE_PROBES is as on main (no approve-automatic entries).
  • Removed probes. cli:interface-draft, cli:approve-automatic and cli:approve-automatic-tests are dropped, because the commands are gone. Their guards are dropped too.
  • setup guard kept (review fix). Main's check rejected only interface-draft.mjs, which is gone. The test: make layout-sensitive tests safe for file moves and splits #3392 guard is wider: it rejects each of the 15 modules that setup loads beyond --help, one at a time. Every run still exits 1 with REVIEW_LOAD_FAILURE in stderr. An earlier head of this PR dropped this guard by mistake.
  • Base map. In SEAM_LOAD_BASES, test, lint, simulate and mcp now have product status as their base. Their old base, approve --automatic, is gone.
  • Hand-written heavy-module guard. It is kept. The only change is to drop src/runtime/interface-draft.mjs, because the package has no such file any more. src/runtime/runtime-client.mjs and src/runtime/runtime-output.mjs now come from the package under the same names.

Every changed record line

Lines Why
-cli:interface-draft … (6 lines) The probe is removed. #3417 removed pdd interface draft.
-cli:approve-automatic runtime-exit.mjs The probe is removed. #3417 removed --automatic.
+cli:test, +cli:lint, +cli:simulate, +cli:mcp runtime-exit.mjs No load change. These 4 commands loaded runtime-exit.mjs before, through their old base approve --automatic. Now their base is product status, so the line is written for each command.
-cli:setup runtime/contract-refs.mjs, runtime/interface-draft.mjs, runtime/runtime-markdown.mjs, runtime/runtime-preflight.mjs, runtime/scenario-json.mjs A real import change. Before, pdd setup ran draftInterfaces({ all: true }) through a lazy seam import (src/pdd-cli.mjs:336), and #3417 removed it.
-lib:product.mjs runtime/interface-draft.mjs A real import change. The package no longer has interface-draft.mjs, so runtime-bindings no longer loads it. Main also dropped the interface-draft <-> runtime-bindings <-> runtime-client <-> runtime-slots cycle. This one line covers every probe based on lib:product.mjs.

Cross-check. I expanded the new record and folded it the old way (src/runtime/x → src/x, the old skip list). It equals main's own updated RECORDED_BASE_ENTRIES for all 47 entries, so the record takes in no load change that main did not record itself. The generator gave the same record in 3 runs.

Other refactor tools on the merged tree

  • test/tools/ratchet.mjs runs (exit 0) against the clean-kitchen base.
    • Before the fix, "Test-only exports" read 32 → 92. The 60 extra names were the seam's pass-throughs of package names, for example TEST_SCHEMA, tarFiles and withExactIntegers. The report skips src/runtime/ re-exports, but not names from a package specifier.
    • The fix (own commit) marks those names and skips them. The row now reads 32 → 32, and the base is unchanged.
    • Still reported, not fixed here: 6 modules have no box. accounts-cli.mjs is new from main. The other 5 were already missing on the base.
  • test/golden/run.mjs capture: 34 of 34 cases were captured on base and head. 30 are identical. The 4 that differ all come from main:

Focused tests (laptop)

The package was installed with npm ci --ignore-scripts.

File Tests
test/runtime-seam.test.mjs 23 pass, 0 fail (rerun after the setup fix). The names are the same as main's; main removed SEAM22.
test/new-command-names.test.mjs 8 pass
test/name-the-interpreter.formal.test.mjs 3 pass
test/skills.test.mjs 51 pass
test/session-skills.test.mjs, test/skill-frontmatter.test.mjs 14 + 11 pass

I did not run the full suite, and I did not queue the VM suite. Do not merge until the lead does.

Note: main deleted test/runtime-package/. The two wording-scan copies listed "For Ishaan" in #3392 are gone with it.

🤖 Generated with Claude Code

Serhan-Asad and others added 30 commits November 13, 2026 18:34
…isual-rules-3380

docs(skills): guide pdd-product adapters, user-goal Stories and visual checks (#3380)
…ng-controls

fix(svg-layout): scope control warnings per view on multi-drawing prompts (#3394)
docs: identify product plan checks before Story tests
…tions (#3417)

* Remove local Runtime interface block authoring, drafting, and instructions

* Align help wording and CI tests with removed interface draft (#3367)
…-3193

feat(runtime): switch runtime seam to @promptdriven/runtime-client
…li-3252

# Conflicts:
#	prompts/cli/pdd-cli.prompt.md
#	prompts/cli/public-boundary.prompt.md
#	src/agent-adapters.mjs
#	src/autopilot-core.mjs
#	src/command-catalog.mjs
#	src/pdd-cli.mjs
#	test/autopilot-launcher.test.mjs
feat(accounts): add Cloud accounts CLI, step isolation overlay, and Stick-Until-100% rotation
…nd offline net/credit guards (#3420)

* feat(autopilot): harden runtime paperwork sync, slot cleanup, suite concurrency, and offline/credit guards

* fix(autopilot): read PDD_CHECK_CPUS only from explicit ports.env

* Address Round 1 review findings on process cleanup, per-test skip checks, credit guards, and npm test net guard

* Bound runStepAgentProcess Cloud lease loop on repeated or missing-ID credit accounts

* Copy test-net-guard.mjs into synthetic package.json fixture in test-session-isolation.test.mjs
Main moved Runtime from src/runtime/ into the installed package
@promptdriven/runtime-client and removed pdd interface draft and
approve --automatic (#3417).

test/runtime-seam.test.mjs conflicted in 5 hunks, all in SEAM5. The
data block and the inline probe code stay out, because SEAM5 keeps its
record in test/fixtures/seam-loads.txt and its probes in
test/helpers/seam-loads.mjs. Main's package logic is ported:
- the static graph reads the package files under src/runtime/ names and
  maps the package specifier to src/runtime/index.mjs (main's code);
- the probe analyzer names what the seam loads from outside src/ the
  same way, so the helper never names the package (SEAM24);
- rejected modules map back to their package files;
- the interface-draft and approve --automatic probes and guards are
  gone, as on main, and so is the setup guard;
- the heavy-module guard drops runtime/interface-draft.mjs, which the
  package no longer has.

The regenerated record changes 17 lines, all from main's imports.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The seam now re-exports Runtime names from an installed package, not
from src/runtime/. Mark exports whose name comes from a package
specifier and skip them, as the report already skips src/runtime/
re-exports. Test-only exports on the merged tree go from 92 to 32
(base 32).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main's setup check rejected only interface-draft.mjs, which is gone.
The derived guard from #3392 is wider: it rejects each module that
pdd setup loads beyond --help (15 modules on this tree), and each run
still exits 1 with REVIEW_LOAD_FAILURE in stderr. Restore it as it was.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Serhan-Asad
Serhan-Asad merged commit 6cc0187 into refactor/clean-kitchen Nov 15, 2026
11 checks passed
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.

1 participant