Skip to content

v1.0.13 - #46

Merged
yilmaztayfun merged 2 commits into
release-v1.0from
master
Sep 5, 2026
Merged

yilmaztayfun merged 2 commits into
release-v1.0from
master

Conversation

@yilmaztayfun

@yilmaztayfun yilmaztayfun commented Sep 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary by Sourcery

Enable the CLI to manage multiple domain solutions per workspace with isolated processing, profile resolution, and consolidated reporting.

New Features:

  • Support multiple domain-specific solution files in a single workspace, each with independent component roots and connection profiles.
  • Add global --domain filtering and per-solution command execution with banners, sequential processing, and aggregated workspace summaries.
  • Enforce component-to-solution domain matching and report DOMAIN_MISMATCH failures.

Bug Fixes:

  • Scope component discovery, Git-changed file detection, folder resolution, and CSX-to-JSON updates to each solution's components root.
  • Prevent workspace commands from changing the persisted active CLI domain while selecting the correct profile for each solution.

Enhancements:

  • Refactor configuration and command processing around stateless solution objects and domain-specific API/DB profiles.
  • Centralize file ignore patterns and improve multi-domain error reporting with domain and error-code details.

Documentation:

  • Document multi-solution workspace configuration, domain profiles, --domain usage, domain validation, and updated command behavior.

yilmaztayfun and others added 2 commits September 5, 2026 23:21
A workspace can now hold several solution files side by side:
vnext.config.json (default) plus vnext.{domain}.config.json per extra
domain, each with its own componentsRoot. Workspace commands (check,
csx, sync, update, reset) run once per solution, sequentially, using
the CLI domain profile that matches the solution's `domain` field.

- New src/lib/solutions.js: solution-file discovery, solution objects,
  --file ownership by componentsRoot, and the shared runForEachSolution
  loop with per-domain banners and a WORKSPACE SUMMARY.
- Global --domain <name> option (forwarded by the preAction hook) to
  restrict any command to one solution.
- config.js: getDomainConfig/buildDbConfig/buildApiConfig; the
  resolveWorkspaceDomain side effect that persisted ACTIVE_DOMAIN on
  every run is removed. ACTIVE_DOMAIN now only affects `wf domain` and
  `wf config`.
- vnextConfig.js becomes a stateless, file-name-aware parser (cache
  removed); discover/workflow/csx take a solution object instead of
  projectRoot; git-changed detection is scoped to the solution's
  componentsRoot.
- Components must declare `domain` equal to their solution's domain;
  mismatches fail with DOMAIN_MISMATCH and are skipped.
- Solutions whose domain has no CLI profile are skipped with a
  `wf domain add` hint (csx does not need a profile).
- update --all confirms once for all domains; reset asks which domain
  first when several exist.
- Shared JSON/CSX ignore-pattern constants; dead processComponent
  removed; README and CLAUDE.md updated.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
feat: multi-solution (multi-domain) workspace support
@yilmaztayfun yilmaztayfun self-assigned this Sep 5, 2026
@yilmaztayfun
yilmaztayfun requested review from a team September 5, 2026 20:23

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @yilmaztayfun, you've used your own review budget of 250,000 diff characters for the last 7 days.

You can request another review in 1 day and 11 hours by commenting @sourcery-ai review. Upgrade to get a review now.

@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: c7e09cf0-dc43-4dea-92a0-3ce55abd84c6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@yilmaztayfun
yilmaztayfun merged commit cedb890 into release-v1.0 Sep 5, 2026
3 of 4 checks passed
@sourcery-ai

sourcery-ai Bot commented Sep 5, 2026

Copy link
Copy Markdown

Reviewer's Guide

Version 1.0.13 replaces single-project/active-domain execution with a multi-solution workspace model: solution files are discovered and processed sequentially using matching domain profiles, while all component discovery, Git/file routing, publishing safeguards, summaries, and documentation are updated to remain solution-scoped.

Sequence diagram for sequential solution processing

sequenceDiagram
    participant User
    participant CLI
    participant Runner as runForEachSolution
    participant Config as getDomainConfig
    participant Core as CoreSolution
    participant Partner as PartnerSolution

    User->>CLI: update
    CLI->>Runner: runForEachSolution(options)
    Runner->>Config: getDomainConfig(core)
    Runner->>Config: getDomainConfig(partner)
    Runner->>Core: updateSolution(core)
    Core-->>Runner: success, failed, errors
    Runner->>Partner: updateSolution(partner)
    Partner-->>Runner: success, failed, errors
    Runner-->>CLI: WORKSPACE SUMMARY
    CLI-->>User: Combined results
Loading

State diagram for solution profile selection

stateDiagram-v2
    [*] --> Discovered
    Discovered --> ProfileMatched: getDomainConfig
    Discovered --> NoProfile: profile missing
    ProfileMatched --> Selected: no --domain
    ProfileMatched --> Selected: --domain matches
    ProfileMatched --> Rejected: --domain differs
    NoProfile --> Skipped: profile required
    NoProfile --> Selected: csx command
    Selected --> Processing
    Processing --> Completed
    Skipped --> [*]
    Rejected --> [*]
    Completed --> [*]
Loading

Flow diagram for solution-scoped component publishing

flowchart TD
    Start[Component JSON discovered] --> Metadata[getJsonMetadata]
    Metadata --> DomainCheck{checkComponentDomain}
    DomainCheck -->|mismatch| Error[Record DOMAIN_MISMATCH and skip]
    DomainCheck -->|valid| Type[detectComponentType]
    Type --> DBCheck[getInstanceId]
    DBCheck -->|existing| Delete[deleteWorkflow]
    DBCheck -->|missing| Publish[publishComponent]
    Delete --> Publish
    Publish --> Reinit[reinitializeSystem]
Loading

File-Level Changes

Change Details Files
Introduce multi-solution workspace discovery and sequential command execution.
  • Discover default and domain-qualified solution files and construct isolated solution objects.
  • Resolve each solution to its own components root, component types, warnings, and CLI profile.
  • Add shared filtering, file ownership routing, profile skipping, domain selection, per-solution banners, and workspace summaries.
src/lib/solutions.js
src/lib/vnextConfig.js
src/lib/discover.js
src/lib/ui.js
bin/workflow.js
Change workspace commands to operate on solution-scoped profiles and paths.
  • Refactor check, csx, sync, update, and reset into workspace orchestration plus per-solution handlers.
  • Build API/DB settings from the solution domain profile without changing ACTIVE_DOMAIN.
  • Support global --domain, multi-solution --all confirmation, reset domain selection, and --file routing.
src/commands/check.js
src/commands/csx.js
src/commands/sync.js
src/commands/update.js
src/commands/reset.js
src/lib/config.js
Enforce solution boundaries and component-domain correctness during discovery and publishing.
  • Scope discovery, folder resolution, CSX processing, and Git-changed detection to each solution's componentsRoot.
  • Require component domain metadata to match the owning solution and report DOMAIN_MISMATCH without aborting the batch.
  • Centralize JSON and CSX ignore patterns and enhance aggregated error output with domain and error-code fields.
src/lib/workflow.js
src/lib/csx.js
src/lib/discover.js
src/lib/ui.js
Document the multi-solution configuration model and revised command semantics.
  • Describe solution file naming, authoritative domain fields, separate component roots, profile requirements, routing, and duplicate-domain behavior.
  • Update command examples, troubleshooting guidance, architecture notes, and migration behavior away from automatic ACTIVE_DOMAIN switching.
CLAUDE.md
README.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

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