Skip to content

[JUM-905][Fix] Dark canvas, sidebar and anchored mini-map on the Architecture tab - #539

Merged
web2solutions merged 3 commits into
devfrom
claude/fix/JUM-905-architecture-canvas-dark
Sep 26, 2026
Merged

web2solutions merged 3 commits into
devfrom
claude/fix/JUM-905-architecture-canvas-dark

Conversation

@web2solutions

@web2solutions web2solutions commented Sep 26, 2026 •

Copy link
Copy Markdown
Owner

Summary

The Architecture tab now renders on the designer's dark surfaces: its canvas and sidebar no longer resolve --jtx-surface to white, and its mini-map overlays the canvas instead of falling below it as a white strip. Links now join the facing card edges at mid-height instead of running through both titles, and the link list names services instead of internal ids (service-import-2).

Problem Statement

Measured in the running app (1440×900): #architecture-canvas computed background-color: rgb(255, 255, 255) and the sidebar rgb(255, 255, 255) — the designer is dark by its own literal palette and never sets :root.dark, so --jtx-surface stays #ffffff. .architecture-mini-map { position: relative; height: 80px } overrode .mini-map's absolute anchoring.

  • Related issue(s): JUM-905
  • Related PR(s): none
  • Related check run(s): none yet

Project Tracking (Required)

Branch Promotion Path (Required)

  • Source branch: claude/fix/JUM-905-architecture-canvas-dark
  • Target branch: dev
  • Required PR title format: [JUM-XXXX][Nature] <concise outcome>
  • The leading JUM-XXXX matches the single Linear Issue declared above.
  • This task PR targets dev.
  • If this PR targets main, it is a release promotion sourced from dev, references the task PRs/issues already merged into dev, and introduces no unreviewed changes.
  • This PR is not a direct task/topic branch promotion to main.

Bidirectional Traceability (Required)

  • Every linked issue already contains this PR URL.
  • Every linked issue already contains commit hash/range evidence.
  • PR description includes mapping of task -> commit(s).
  • Task -> commit(s) mapping:

Scope of Change

Domain / Business Rules

  • None.

Application / Use Cases

  • None.

Adapters / Infrastructure

  • apps/service-management/styles.css: architecture canvas uses the Domain Designer canvas colour and grid; sidebar uses the Domain Designer sidebar colour; .architecture-shell .canvas-workspace { position: relative }; mini-map styled as the Domain Designer overlay.
  • apps/service-management/test/unit/architectureCanvasTheme.test.ts: style contract (3 tests).
  • apps/service-management/src/ui/architectureCanvas.js: architectureLinkGeometry / architectureLinkLabel (exported, pure) used by the canvas and the link list.

API / Contracts (OpenAPI, DTOs, handlers, controllers)

  • None.

Detailed Technical Changes

Found while capturing JUM-896 screenshots; verified visually by injecting the rules into the running app before committing. Component owner (kimi-code-primary-001, Req 126) holds accountability, not exclusive edit rights (.agents/COMPONENT-OWNERSHIP.md).

Architecture and Design Alignment

  • Domain logic remains inside domain/application layers.
  • Controllers/handlers do not instantiate repositories/services directly.
  • Ports/adapters boundaries are respected.
  • No new circular dependencies introduced.
  • Event publishing/listening flow remains consistent.

Security Impact

  • Security impact: No security impact.
  • Secrets handling reviewed: [ ] Yes [ ] No [x] N/A
  • Input/output sanitization reviewed: [ ] Yes [ ] No [x] N/A
  • AuthN/AuthZ impact: [ ] Yes [x] No
  • Data exposure risk (password/salt/token/PII): [ ] Yes [x] No
  • Sonar security findings addressed or unaffected: [x] Yes [ ] No

Data and Migration Impact

  • Data model impact: none.
  • Migration required: [ ] Yes [x] No
  • Rollback strategy: revert the PR.

Breaking Changes

None.

Acceptance Criteria

  • Feature/bug behavior matches expected functional outcome.
  • Error paths and edge cases are covered.
  • API contract changes (if any) are documented and validated.
  • Architecture boundaries remain enforced.
  • No regression in existing workflows.

Test Plan (Evidence)

  • bun test apps/service-management/test/unit/architectureCanvasTheme.test.ts — 5 pass
  • bun run test:unit — task gate: Tests: 2204 passed, 2204 total

Extra evidence:

getComputedStyle(#architecture-canvas).backgroundColor → rgb(255, 255, 255)   # before
rgb(7, 7, 7)                                                              # after

Feedback Resolution (Required)

  • Every GitHub review thread is resolved natively.
  • Every general comment has a visible resolution response by the PR author or a repository maintainer.
  • Each resolution response uses exactly one marker and, for resolved, a SHA from this PR.

Coverage

  • Project coverage >= 95%: [x] Yes [ ] No
  • Patch coverage >= 95%: [x] Yes [ ] No
  • Codecov status passing: [ ] Yes [ ] No (pending CI)

SonarQube Cloud

  • Quality Gate passing: [ ] Yes [ ] No (pending CI)
  • New vulnerabilities introduced: [ ] Yes [x] No
  • New security hotspots reviewed: [ ] Yes [ ] No [x] N/A

Performance / Reliability Impact

No measurable impact.

Observability

  • Logs updated: [ ] Yes [x] No
  • Metrics/Tracing updated: [ ] Yes [ ] No [x] N/A

Deployment and Rollout

  • Deployment notes: none.
  • Feature flag needed: [ ] Yes [x] No
  • Rollout strategy: merge to dev, promote with the next release.
  • Rollback steps: revert the PR.

Risks and Mitigations

  1. Risk: none material.\n Mitigation: n/a.

Documentation Updates

  • README updated (if needed)
  • Additional docs updated (if needed)
  • Changelog untouched; GitHub Actions synchronizes it only after the validated main merge

Reviewer Checklist

  • Changes are clear and scoped.
  • Acceptance criteria are testable and satisfied.
  • Tests are sufficient for risk level.
  • Security and data impacts are addressed.
  • CI checks pass fully.

🤖 Generated with Claude Code

…n the Architecture tab

JUM-905. The designer is dark by its own palette and never sets :root.dark,
so --jtx-surface resolves to white; the Architecture tab used it for its canvas
and sidebar (white field behind dark service cards) and forced its mini-map to
position: relative, dropping it below the canvas as a white strip. Use the
Domain Designer's surfaces and overlay placement; pin them with a style
contract suite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Sep 26, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_3a86d051-0397-4080-ae8e-64c3c436c47b)

@cursor

cursor Bot commented Sep 26, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_b6edf2be-452d-4393-88be-d5bc174c8df3)

…their services

JUM-905. Links were drawn centre-to-centre at y + 20, straight through both
cards' titles, and the link list printed internal ids (service-import-2).
Extract architectureLinkGeometry / architectureLinkLabel, join facing edges at
mid-height, label with service names, and pin both in the suite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Sep 26, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_dece22e9-5169-4e76-9c34-74e19901a442)

@web2solutions
web2solutions merged commit ee05afe into dev Sep 26, 2026
36 of 37 checks passed
@web2solutions
web2solutions deleted the claude/fix/JUM-905-architecture-canvas-dark branch September 26, 2026 21:09
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