arch phase 2b scaffold hexagon - #10332
Draft
gatzjames wants to merge 2 commits into
Draft
Conversation
…cture/
Consolidates the compilerOptions duplicated verbatim across all 7 tsconfig
files (esModuleInterop, skipLibCheck, resolveJsonModule, moduleResolution,
isolatedModules, strict, noImplicitReturns, noUnusedLocals,
noUnusedParameters, noFallthroughCasesInSwitch, useUnknownInCatchVariables)
into .config/tsconfig.base.json. Every package now extends it, keeping only
its genuinely package-specific options (target/module, lib, jsx, paths,
rootDirs, allowJs, types, noEmit, sourceMap, verbatimModuleSyntax,
forceConsistentCasingInFileNames) locally. insomnia-data's own
tsconfig.base.json now extends the shared base too, cascading to its three
sub-tsconfigs.
Deliberately left eslint.config.mjs and vite.config.ts where they are -
each is already a single canonical file with nothing to deduplicate, and
physically relocating them into .config/ would break ESLint's directory
auto-discovery (it only walks upward, not into a sibling dir) and require
rewriting every __dirname-relative path in vite.config.ts, for zero benefit.
Scaffolds domain/, application/, infrastructure/ as three new top-level
workspace packages (one per layer, per the open decision on package
granularity), each with a placeholder src/index.ts to be populated
incrementally in Phase 2c. Wires three new dependency-cruiser rules in
warning mode enforcing the layer dependency direction (domain depends on
nothing; application depends on domain only; infrastructure depends on
domain plus external libs, never application). The apps/*-route-vs-bootstrap
boundary is deliberately deferred - there's no established bootstrap-file
convention yet to encode, and nothing consumes these packages yet to verify
against.
Note: naming the domain package literally "domain" creates a
node_modules/domain symlink that could shadow Node's deprecated core
`domain` module for a bare `require("domain")` in a bundled (non-Node)
context. Plain CommonJS require() always prioritizes core modules, so this
is inert today; flagging it since the plan's target folder structure
specifies this exact name.
Also fixes several extensionless-file path references (.prettierrc,
.prettierignore, .gitattributes, apps/cli/Dockerfile, two .insorc fixtures)
that Phase 2a's rename sweep missed because it only searched files with a
known extension.
Verified: lint, type-check, the full test suite (all workspaces), and
check-boundaries all pass clean. Re-verified apps/cli's unit tests and
esbuild bundle build after the tsconfig changes.
Config consolidation (a shared tsconfig.base.json) isn't earning its keep yet with only three empty scaffold packages depending on it - reverting to every tsconfig being fully self-contained, matching how the repo already worked before this phase. Re-evaluate consolidation once there's a real, populated set of consumers to shape it around, per the plan's own "re-evaluate at the end" framing for config files. domain/application/infrastructure's tsconfig.json files keep the same compilerOptions, just inlined instead of extended.
✅ Circular References ReportGenerated at: 2026-08-05T08:24:42.405Z Summary
Click to view all circular references in PR (13)Click to view all circular references in base branch (13)Analysis✅ No Change: This PR does not introduce or remove any circular references. This report was generated automatically by comparing against the |
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.
No description provided.