Skip to content

[JUM-906][Fix] Breadcrumb names the module and tab and links to real locations - #540

Merged
web2solutions merged 3 commits into
devfrom
claude/fix/JUM-906-breadcrumb-route-pattern
Sep 26, 2026
Merged

web2solutions merged 3 commits into
devfrom
claude/fix/JUM-906-breadcrumb-route-pattern

Conversation

@web2solutions

@web2solutions web2solutions commented Sep 26, 2026 •

Copy link
Copy Markdown
Owner

Summary

The frontend breadcrumb now reads Home / Users / Dashboard and links to real locations instead of Home / Home pointing at /#/m/:moduleId/:tab?. Also fixes the frontend typecheck, which failed on dev.

Problem Statement

AppBreadcrumb.vue rendered route.matched[].path — route patterns — and the Module route reuses titleKey: 'nav.home'. Measured on /#/m/users/dashboard: links /#/ and /#/m/:moduleId/:tab?, both labelled Home. bun run typecheck (apps/frontend) → src/data/canaSchema.ts(35,57): error TS2550: Property 'findLast' does not exist on type 'string[]' (lib ES2022).

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

Project Tracking (Required)

Branch Promotion Path (Required)

  • Source branch: claude/fix/JUM-906-breadcrumb-route-pattern
  • 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/frontend/src/components/AppBreadcrumb.vue: crumbs from resolved locations; Module route → module title + active tab label.
  • apps/frontend/src/data/canaSchema.ts: .at(-1).
  • apps/frontend/test/component/AppBreadcrumb.test.ts: 2 tests (labels; no :moduleId href).

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

  • None.

Detailed Technical Changes

Not fixed here (recorded on the Issue): the dashboard shows organization UUIDs instead of names.

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/frontend/test — 313 pass, 0 fail
  • bun run typecheck (apps/frontend) — clean
  • bun run test:unit — task gate: Tests: 1158 passed, 1158 total

Extra evidence:

breadcrumb before: Home (/#/) / Home (/#/m/:moduleId/:tab?)
after:  Home / Users (/m/users) / Dashboard

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


Note

Low Risk
Navigation UI and a one-line schema helper change only; behavior is covered by new component tests with no auth or data impact.

Overview
Fixes JUM-906 by rebuilding AppBreadcrumb so crumbs use resolved labels and hrefs instead of raw route.matched[].path patterns. On module URLs, the trail is now Home / module title / tab (from the module manifest or nav.dashboard), with links like /m/users rather than /#/m/:moduleId/:tab?. Breadcrumbs are driven by a computed on useRoute() instead of ref + afterEach/onMounted.

Also replaces findLast with .at(-1) in canaSchema.ts so frontend typecheck passes on the current TS lib target. Adds component tests for labels and hrefs, and syncs cli-init templates and test-map registration.

Reviewed by Cursor Bugbot for commit ba5e95e. Bugbot is set up for automated code reviews on this repo. Configure here.

…locations

JUM-906. AppBreadcrumb rendered route.matched[].path — the route pattern — so a
module page read "Home / Home" and linked to /#/m/:moduleId/:tab?. Crumbs now
resolve to real locations and the Module route shows the module title and the
active tab. Also fix the frontend typecheck, which failed on dev with
findLast (ES2023) under an ES2022 lib.

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_54578d8f-7b3f-430f-aa9a-eec571709a3c)

@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_98b114d8-48b5-498d-ad75-24696c7be196)

…mb fix

The frontend seed changed (AppBreadcrumb.vue, canaSchema.ts), so the packaged
templates were stale and `cli:check-template-freshness` failed the branch gate
(CircleCI job 2630).

Refs: JUM-906

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_c37edb23-5a9a-4f31-bd81-7943d143f41c)

@web2solutions
web2solutions merged commit 2120b03 into dev Sep 26, 2026
37 checks passed
@web2solutions
web2solutions deleted the claude/fix/JUM-906-breadcrumb-route-pattern branch September 26, 2026 21:36
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