Skip to content

feat(vscode): restore the extension source from rac-core [roadmap:rac-editors-buildout]#3

Merged
tcballard merged 2 commits into
mainfrom
claude/rac-editors-review-nm7rzw
Jul 2, 2026
Merged

feat(vscode): restore the extension source from rac-core [roadmap:rac-editors-buildout]#3
tcballard merged 2 commits into
mainfrom
claude/rac-editors-review-nm7rzw

Conversation

@tcballard

@tcballard tcballard commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements initiative 1 (and the battery half of initiative 2) of rac/roadmaps/rac-editors-buildout.md (rac-core; the roadmap-intent PR is queued behind asdecided/core#250 and lands next).

Adds:

  • The complete VS Code / Cursor extension source under vscode/ — recovered from itsthelore/rac-core@168a02f (typescript/rac-vscode/, the last tree before the v0.22.5 removal eed463e), as a snapshot with provenance in the commit body rather than a replay of engine-scoped history onto the family trunk.
  • The SDK dependency repointed from file:../rac-sdk to the published @itsthelore/rac-sdk@^0.1.0 with a lockfile regenerated against the registry — completing the v0.22.5 repoint contract the removed tree never received.
  • .github/workflows/pr-checks.yml: the vscode merge-gate battery (ADR-027/ADR-075) — install, typecheck, bundle, @vscode/test-electron integration tests under xvfb with a PyPI-installed rac, VSIX packaging smoke, artifact upload.

Roadmap / ADR Trace

Roadmap:

Relevant ADRs (rac-core corpus):

  • ADR-063 — thin client over the published SDK and the rac CLI, never engine internals
  • ADR-092 — family repo, subdir per member
  • ADR-027 / ADR-075 — per-service battery; required merge gate on main
  • ADR-071 — Apache-2.0 relicense (governs the LICENSE resolution below)

Scope

Included

  • The 24-file extension tree: source, test harness + fixture corpus, esbuild bundling, packaging config, walkthroughs, icon.
  • The battery workflow, so this PR proves its own tests (this environment's network policy blocks the @vscode/test-electron VS Code download locally; CI is where the integration tests run).
  • out/ added to vscode/.gitignore (test-compile output; previously covered by rac-core's root ignore).

Excluded

  • Webview CSP/origin hardening and the release pipeline — the next iterations (roadmap initiatives 2b/3).
  • Any identity/branding change: package.json still carries the recovered pre-ADR-092 identity (publisher: "rac", "RAC — Requirements as Code"). The listing identity is a fenced human decision (deferred pending a possible brand re-decision) and blocks only the first publish.
  • The stale MIT LICENSE in the recovered tree is deliberately not restored — the family repo's Apache-2.0 LICENSE stands (ADR-071; the recovered package.json already declares Apache-2.0).

Product / Architecture Decisions

  • Snapshot-with-provenance over subtree/filter-repo history grafting: rac-editors' published trunk is not rewritten, and the source SHA (168a02f) is a durable pointer into rac-core where the full per-file history lives.
  • The battery ships in this PR rather than the next so the recovery claim ("it builds, tests, and packages from its new home") is verified by the PR itself, not asserted.
  • CI installs rac from PyPI (rac-core) rather than from source — rac-editors consumes the public contract only (ADR-063).

User-Facing Contract

No published-surface change: the extension is still unpublished (v0.21.10). The extension's behavior is unchanged from the recovered tree; only the SDK resolution and repository home moved.

Verification

Ran (locally)

  • npm install@itsthelore/rac-sdk@0.1.0 resolves from the registry; zero file: references in the lockfile
  • npm run check-types — clean against the published SDK (API surface compatible)
  • npm run compile + npm run compile-tests — bundle and test compile clean
  • npx vsce package — VSIX builds: 11 files, 39.77 KB, manifest sane (bundled dist/extension.js, no node_modules)

Not runnable locally, proven by this PR's CI

  • xvfb-run npm test — the @vscode/test-electron download is blocked by this environment's network policy; the pr-checks run on this PR is the verification.

Review Path

  1. vscode/package.json (dependency repoint, recovered identity untouched)
  2. .github/workflows/pr-checks.yml
  3. vscode/src/ (recovered verbatim from 168a02f — diffable against rac-core)
  4. Fixtures, walkthroughs, packaging config (recovered verbatim)

Notes For Reviewer

  • Verify-by-diff: git diff 168a02f:typescript/rac-vscode vscode/ in rac-core shows exactly three intentional deltas — the SDK dependency line, the regenerated lockfile, and .gitignore (+out/), plus the absent MIT LICENSE.
  • Required-check enrolment for pr-checks on main is an org action (ADR-075) — tracked in Epic: rac-editors build-out — recover the extension, gate it, publish it #2.

Implementation Process

Implemented with AI assistance under the roadmap contract; final scope, review, and acceptance decisions were made by the maintainer.

tcballard added 2 commits July 2, 2026 06:29
…-editors-buildout]

Recovered from asdecided/core@168a02f (typescript/rac-vscode/, the
last tree before the v0.22.5 removal, eed463e^). Full per-file history
remains permanently reachable in rac-core; this snapshot records the
provenance rather than replaying engine-scoped history onto the family
trunk.

Deviations from the recovered tree, both finishing recorded contracts:
- @itsthelore/rac-sdk resolves from npm (^0.1.0) instead of
  file:../rac-sdk, completing the v0.22.5 repoint the removed tree never
  received; the lockfile is regenerated against the registry.
- The stale MIT LICENSE is not restored: the family repo's Apache-2.0
  LICENSE stands (ADR-071; the recovered package.json already declares
  Apache-2.0). out/ joins the ignore list.
…ldout]

pr-checks.yml runs the recovered v0.21.9 gate per ADR-027/ADR-075:
install, typecheck, bundle, @vscode/test-electron integration tests
under xvfb with a PyPI-installed rac, and a VSIX packaging smoke with
the artifact uploaded. Adapted from rac-core's typescript.yml and
extension-release.yml gate steps.
@tcballard
tcballard merged commit 0630e21 into main Jul 2, 2026
1 check 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