Repository navigation
chore: move the workspace from mnci (Nx) to MonoSmith - #316
Merged
Merged
Conversation
`smith convert` (1.8.1) replaced Nx: projects, tasks and release tags continue in smith.toml and the manifests, rollup builds became esbuild plus tsc declarations, and ci.yml and the devcontainer are generated by smith. By hand, with the fixes smith 1.9.2 now makes itself: - declaration-specifiers.mjs gives the library declarations their .js specifiers, as mnci's rollup plugin did (monosmith #280) - studio-ui's tsconfigs use vite/client instead of @nx/react typings (#279) - studio-desktop gets a package:dir task for desktop-package.yml - core keeps its prepublishOnly guard Configuration: the vertical-slices and playwright conventions (the Python client excepted until its rewrite), Vitest for new Node projects, the devcontainer, and @monosmith/eslint-config instead of @mnci/eslint-config. The Playwright suites install their browsers first and studio's open windows under xvfb-run; the workflows install smith, and ci.yml pins npm 12. Docker stays off until its registry is configurable (monosmith #285). Refs #313 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01TjR6eM2tUwU3NGnKXsmEap
AGENTS.md's commands are smith's, the slice rules are enforced by @monosmith/eslint-config and smith's vertical-slices convention, and the Python client records why it is exempt from that convention until its rewrite over the driver. Refs #313 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01TjR6eM2tUwU3NGnKXsmEap
…indows CI found what the local tree hid, its old rollup and Nx outputs still in place: - office-reader builds all seven entries (index, xlsx, pptx, docx, ods, odt, odp) in one esbuild run with shared chunks, as its rollup input map did; convert built index only (monosmith #291) - the VS Code extension bundles to dist/extension.cjs again, the outExtension convert dropped (#291) - the workflows add install.sh's folder to PATH in its Windows form, so cmd and PowerShell steps find smith (#290) - the examples are excluded from smith's workspace ([workspace] exclude, smith 1.10.0): standalone folders, as they were before the move; the manifests convert marked are restored The workflows and ci.yml move to smith 1.10.0. From a clean tree, every task passes, and the extension packages. Refs #313 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01TjR6eM2tUwU3NGnKXsmEap
Release preview
Unchanged: agent, opencraw |
…with The test bundles the built package for Chromium with rollup and @rollup/plugin-node-resolve; both came through @nx/rollup, which the move removed. They are root devDependencies now, at the versions main had. Refs #313 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01TjR6eM2tUwU3NGnKXsmEap
This was referenced Oct 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase M of #313 (
docs/research/driver-and-language-packages.md): OpenCraw moves from mnci (Nx) to MonoSmith. It'ssmith convertplus the hand edits it left, with every gap found along the way filed and fixed in MonoSmith.What changes
smith.toml. The cross-projectdependsOnsurvive: the extension'spackagestill builds cli, mcp, ocr-tesseract, agent, studio and studio-ui first.@opencraw/<name>@<version>tags.smith release --dry-runsays "Nothing to release" and lists all 11 packages unchanged.esbuildplustscdeclarations, written to the samedist/index.esm.jsanddist/src/index.d.tsthat package.json publishes.declaration-specifiers.mjsgives the declarations their.jsspecifiers, as mnci's rollup plugin did; without it, every type becameanyfor nodenext consumers (monosmith#280). 0 extensionless specifiers remain.ci.ymland.devcontainer/devcontainer.jsonare generated bysmith ci generate(smith 1.9.2). Itsbefore-setupslot pins npm 12, as the old workflow did.e2e,desktop-packageand the three VS Code workflows install smith, since their npm scripts call it.studio/studio-desktoprun underxvfb-runthemselves.smith.toml.vertical-slicesconvention. The Python client is excepted until its rewrite, and the exception is written in its README.playwrightconvention,node-vitestas the default for new projects, and the devcontainer.packagetask.@monosmith/eslint-config^1.0.0 replaces@mnci/eslint-config. Four files smith generates are ignored until they pass it (monosmith#286). Nothing checks declared dependencies any more since@nx/dependency-checkswent (monosmith#284).studio-uiusesvite/clientinstead of@nx/reacttypings.studio-desktopgets apackage:dirtask fordesktop-package.yml.npm ci --dry-runpasses.Verified locally (Windows, smith 1.9.2)
smith run lint typecheck test build: 74/74 tasks succeeded.npm run lint:workspace(the root files): passes.smith ci generate --check: pipelines up to date.smith doctor: 29 passed. The 10 failures are "npm workspaces include examples/*". OpenCraw's examples are standalone on purpose, and smith is adding[workspace] excludefor that (monosmith#278).Not verified
MonoSmith issues from this conversion
#278, #279, #280 (fixed in 1.9.2, applied here by hand), #283 (playwright detection and overrides), #284, #285, #286.
🤖 Generated with Claude Code
https://claude.ai/code/session_01TjR6eM2tUwU3NGnKXsmEap