Repository navigation
♻️ Clarify domain ownership and simplify workflows - #388
Merged
Merged
Conversation
Robdel12
force-pushed
the
rd/domain-organization
branch
from
November 1, 2026 18:35
11dd2bd to
3a87b54
Compare
Robdel12
added a commit
that referenced
this pull request
Nov 1, 2026
## Why Finding one feature currently means moving between commands, API endpoints, services, and utilities. That spreads ownership across technical folders and makes it easy to put the next change in the wrong place. ## Approach Group CLI behavior and tests by domain, with explicit files for commands, local routes, data operations, validation, rules, normalization, and serialization. Give the reporter the same ownership pattern inside its browser build. Keep shared capabilities narrow and preserve published CLI, SDK, and plugin contracts. Remove the old internal barrels and paths, centralize packaged resource lookup, and document the ownership rules. Lint now checks imports, module cycles, pure-file I/O boundaries, and browser/server separation without adding a runtime framework. ## Evidence All 2,058 Node tests pass with six existing skips; 96 reporter browser tests pass with two existing skips. Build, lint, formatting, and published type checks pass. Reporter CSS and four rendered HTML fixtures are byte-identical to the previous layout. A packed-package check imports all four public entrypoints without source files, installs the bundled agent skill, captures through a real local daemon, and generates a static report. Source and compiled HTTP asset delivery also pass. An independent simplification review found no remaining move-related behavior issues. ## Final review Architecture checks now resolve compiled imports to their source owners, so lint works in a clean checkout before a build. Direct clean-checkout architecture and lint validation pass. The complete stack also passed the final Node 22/24, desktop/mobile browser, and installed-package manual QA pass described in #388.
Share baseline installation and review mutation handling, fix lifecycle and HTTP error paths exposed by real boundaries, and replace duplicate internal mocks with focused colocated tests and CLI/browser/package workflows.
Move report persistence, baseline writes, and context contracts to their owners. Preserve credential identity during refresh, finalize setup failures, and keep new server data when optimistic review actions fail.
Keep product routes with their domains and collect CLI, client, SDK, HTTP, and plugin wiring under adapters. Colocate public declarations, preserve package entrypoints, and share screenshot serialization and SDK types. Replace route mocks with real HTTP workflows, fix workspace asset serving and logged-out project responses, and reexecute updates through the public CLI executable. Enforce the new shared-code boundary in architecture checks.
Preserve per-action logging and reset counts while using one safe deletion path. Exercise built import resolution without output files, including missing targets and shared dependency violations.
Robdel12
force-pushed
the
rd/domain-simplification
branch
from
November 1, 2026 18:39
6bea8fa to
9beca4f
Compare
Vizzly - Visual Test ResultsCLI Reporter - Waiting for buildNo builds received yet for this pull request.
|
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.
Builds on #387, which is now merged into main.
Why
Domain folders still competed with separate client, SDK, server, service, and error roots. Following ownership through those folders also exposed repeated workflows and tests that replaced the code they meant to verify. Real boundary tests found failures those fakes concealed.
Approach
domains/,adapters/,shared/, and the separately builtreporter/. Move product HTTP routes to their domains, keep hosting and cross-domain wiring in adapters, and colocate declarations and focused tests. Preserve public package specifiers, exports, and plugin contracts.Evidence
The full Node suite passes 1,909 tests with six existing skips on both Node 22 and Node 24: 149 fewer cases than the base. All 98 desktop/mobile browser cases pass with two existing skips at the normal limits. Build, architecture, lint, formatting, and published types pass.
Test-first regressions reproduced stale rollback losing a new capture, refresh using an unrelated saved session, unfinished builds after setup failure, success after failed report writes, missing workspace images, and a logged-out cloud route returning 500. The package workflow checks all four public entrypoints, errors/output, bundled guidance, daemon capture/assets, and static HTML without source files. Interactive setup/update workflows verify executable paths through a simulated installation.
The final six-area simplifier review found no remaining verified behavior regressions. Manual QA used the packed package without source: interactive/quick setup, captures/matches/diffs, offline review, local Context, daemon lifecycle/assets, child exit codes, controlled cloud-command/device-login workflows, SDK lifecycle and CommonJS/ESM imports, and real configured plugins under Node 22 and 24.
The architecture check's clean-checkout failure is fixed in merged #387. This branch is rebased onto main with the Dependabot-only policy from #389; the tested source tree is unchanged.