Skip to content

Feature/bej 125 add dog specific kokeet laaja page#316

Merged
asku1990 merged 13 commits into
developfrom
feature/bej-125-add-dog-specific-kokeet-laaja-page
Jun 25, 2026
Merged

Feature/bej 125 add dog specific kokeet laaja page#316
asku1990 merged 13 commits into
developfrom
feature/bej-125-add-dog-specific-kokeet-laaja-page

Conversation

@asku1990

@asku1990 asku1990 commented Jun 25, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a “Kokeet laaja” page to the public dog profile, allowing users to view all trial results in a dedicated page instead of the compact profile section.

Changes

  • Add /beagle/dogs/[dogId]/kokeet-laaja page.
  • Add a dedicated API endpoint for loading dog trial data.
  • Add a dedicated server/database read path for dog trials.
  • Add a React Query hook for the new endpoint.
  • Reuse existing trial data and copy-to-clipboard functionality.
  • Add responsive desktop and mobile layouts.
  • Add loading, error and not-found states.
  • Add tests for the new page, API, query hook, server and database layers.
  • Update documentation and changelog.

Notes

To avoid loading the full dog profile for this page, the implementation uses a dedicated dog trials endpoint that returns only the data required by the detailed trials view.

ref bej-125

asku1990 added 2 commits June 25, 2026 19:12
  Add a dedicated dog-specific Kokeet laaja view from the dog profile, with
  legacy-style trial rows, clipboard copy support, and responsive desktop/mobile
  layouts. The page now carries trial type and class size through the profile DTO
  so sijoitus can be rendered as 1 / 12, KK, or PK in the laaja table.

  Files:

  - CHANGELOG.md
  - apps/web/app/(public)/beagle/dogs/[dogId]/kokeet-laaja/page.tsx
  - apps/web/components/beagle-dog-profile/__tests__/beagle-dog-profile-page.test.ts
  - apps/web/components/beagle-dog-profile/__tests__/dog-profile-trials-card.test.ts
  - apps/web/components/beagle-dog-profile/__tests__/dog-profile-trials-laaja-page.test.ts
  - apps/web/components/beagle-dog-profile/beagle-dog-profile-page.tsx
  - apps/web/components/beagle-dog-profile/dog-profile-trials-card.tsx
  - apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-page-container.tsx
  - apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-page.tsx
  - apps/web/components/beagle-dog-profile/index.ts
  - apps/web/lib/i18n/messages/beagle/dogs/profile.ts
  - apps/web/lib/public/beagle/dogs/profile/profile-route.ts
  - docs/app-usage-and-features.md
  - docs/features/beagle-dog-profile.md
  - packages/contracts/dogs/profile/beagle-profile.ts
  - packages/db/trials/get-beagle-trials-for-dog.ts
  - packages/db/trials/types.ts
  - packages/server/dogs/profile/get-beagle-dog-profile.ts

  Ref BEJ-125
@vercel

vercel Bot commented Jun 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
beagle-db-v2 Ignored Ignored Preview Jun 25, 2026 7:01pm

@kilo-code-bot

kilo-code-bot Bot commented Jun 25, 2026

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Overview

All previously identified issues have been addressed in the latest commits:

  • Clipboard format mismatch (line 286): Fixed - clipboard now uses shared formatPlacement() and formatDogProfilePoints() for consistent output with table display.
  • Unreachable catch block (route.ts): Fixed - route handler simplified to remove dead code; test updated to validate service return values.
  • Loads full dog profile graph (get-beagle-dog-trials.ts): Fixed - now uses lightweight getBeagleDogProfileIdentityDb for minimal identity lookup.
Files Reviewed (6 files)
  • packages/server/dogs/profile/get-beagle-dog-trials.ts - refactored to use identity db
  • apps/web/app/api/beagle/dogs/[dogId]/trials/route.ts - simplified error handling
  • apps/web/app/api/beagle/dogs/[dogId]/trials/__tests__/route.test.ts - updated test expectations
  • apps/web/lib/public/beagle/trials/clipboard.ts - uses shared formatters
  • apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-table.tsx - uses shared formatters
  • apps/web/lib/public/beagle/trials/display-formatters.ts - new shared module
Previous Review Summaries (6 snapshots, latest commit 40adb21)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 40adb21)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (6 files)
  • packages/db/dogs/index.ts
  • packages/db/dogs/profile/__tests__/get-beagle-dog-profile-identity.test.ts
  • packages/db/dogs/profile/get-beagle-dog-profile-identity.ts
  • packages/db/index.ts
  • packages/server/dogs/profile/__tests__/get-beagle-dog-trials.test.ts
  • packages/server/dogs/profile/get-beagle-dog-trials.ts

Previous review (commit 87da94f)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
WARNING 1
Issue Details (click to expand)

WARNING

File Line Issue
packages/server/dogs/profile/get-beagle-dog-trials.ts 40 Loads full dog profile graph unnecessarily
Files Reviewed (10 files)
  • apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-table.tsx
  • apps/web/lib/public/beagle/dogs/profile/__tests__/trials-laaja-formatters.test.ts
  • apps/web/lib/public/beagle/dogs/profile/trials-laaja-formatters.ts
  • apps/web/lib/public/beagle/trials/clipboard.ts
  • packages/db/dogs/index.ts
  • packages/db/dogs/profile/__tests__/get-beagle-dog-trials.test.ts
  • packages/db/dogs/profile/get-beagle-dog-trials.ts
  • packages/db/index.ts
  • packages/server/dogs/profile/__tests__/get-beagle-dog-trials.test.ts
  • packages/server/dogs/profile/get-beagle-dog-trials.ts - 1 issue

Fix these issues in Kilo Cloud

Previous review (commit 30ce98a)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (5 files)
  • apps/web/app/api/beagle/dogs/[dogId]/trials/__tests__/route.test.ts
  • apps/web/app/api/beagle/dogs/[dogId]/trials/route.ts
  • apps/web/lib/public/beagle/trials/__tests__/clipboard-actions.test.ts
  • apps/web/lib/public/beagle/trials/__tests__/clipboard.test.ts
  • apps/web/lib/public/beagle/trials/clipboard.ts

Previous review (commit cf01648)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (1 file)
  • packages/server/dogs/profile/get-beagle-dog-trials.ts

Previous review (commit 2d89c2f)

Status: 2 Issues Found | Recommendation: Address before merge

Overview

Severity Count
WARNING 1
SUGGESTION 1
Issue Details (click to expand)

WARNING

File Line Issue
apps/web/app/api/beagle/dogs/[dogId]/trials/route.ts 27 Unreachable catch block creates inconsistent error shape. getBeagleDogTrialsService never throws — all errors are returned as ServiceResult. The catch block is dead code, and its error shape { ok: false, error: "...", code: "INTERNAL_ERROR" } doesn't match the service's 500 shape { ok: false, error: "..." } (no code field).

SUGGESTION

File Line Issue
apps/web/app/api/beagle/dogs/[dogId]/trials/__tests__/route.test.ts 48 Test validates unreachable catch-block behavior. The real service never throws, so mockRejectedValue exercises dead route code rather than production behavior. Consider testing the service's actual return values instead.
Files Reviewed (20 files)
  • apps/web/app/api/beagle/dogs/[dogId]/trials/__tests__/route.test.ts - 1 issue
  • apps/web/app/api/beagle/dogs/[dogId]/trials/route.ts - 1 issue
  • apps/web/components/beagle-dog-profile/__tests__/dog-profile-trials-laaja-page.test.ts
  • apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-page-container.tsx
  • apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-page.tsx
  • apps/web/queries/public/beagle/dogs/index.ts
  • apps/web/queries/public/beagle/dogs/profile/__tests__/use-beagle-dog-trials-query.test.ts
  • apps/web/queries/public/beagle/dogs/profile/dog-trials-query-keys.ts
  • apps/web/queries/public/beagle/dogs/profile/use-beagle-dog-trials-query.ts
  • packages/contracts/dogs/index.ts
  • packages/contracts/dogs/profile/beagle-profile.ts
  • packages/contracts/index.ts
  • packages/db/dogs/index.ts
  • packages/db/dogs/profile/__tests__/get-beagle-dog-trials.test.ts
  • packages/db/dogs/profile/get-beagle-dog-trials.ts
  • packages/db/index.ts
  • packages/server/dogs/index.ts
  • packages/server/dogs/profile/__tests__/get-beagle-dog-trials.test.ts
  • packages/server/dogs/profile/get-beagle-dog-trials.ts
  • packages/server/dogs/search/service.ts

Fix these issues in Kilo Cloud

Previous review (commit cee91d9)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
WARNING 1
Issue Details (click to expand)

WARNING

File Line Issue
apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-table.tsx 286 Clipboard export for rank and numeric scores doesn't match the table display. formatPlacement() and formatNumber() format values for display, but the clipboard uses raw row.rank and unformatted numbers.
Files Reviewed (3 files)
  • apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-page.tsx
  • apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-table.tsx
  • apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-formatters.ts

Fix these issues in Kilo Cloud


Reviewed by laguna-m.1-20260312:free · Input: 849K · Output: 3.9K · Cached: 235.1K

asku1990 added 2 commits June 25, 2026 20:46
  Adds a dedicated dog-trials read path for /beagle/dogs/[dogId]/kokeet-laaja so the laaja page no longer loads the full dog profile. The new flow uses an
  HTTP route handler, a smaller dog-trials DTO, and coverage tests for the route, hook, service, and repository. It keeps the existing profile page flow
  intact.

  Files:

  - apps/web/app/api/beagle/dogs/[dogId]/trials/route.ts
  - apps/web/app/api/beagle/dogs/[dogId]/trials/__tests__/route.test.ts
  - apps/web/queries/public/beagle/dogs/profile/use-beagle-dog-trials-query.ts
  - apps/web/queries/public/beagle/dogs/profile/dog-trials-query-keys.ts
  - apps/web/queries/public/beagle/dogs/profile/__tests__/use-beagle-dog-trials-query.test.ts
  - apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-page-container.tsx
  - apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-page.tsx
  - packages/server/dogs/profile/get-beagle-dog-trials.ts
  - packages/server/dogs/profile/__tests__/get-beagle-dog-trials.test.ts
  - packages/db/dogs/profile/get-beagle-dog-trials.ts
  - packages/db/dogs/profile/__tests__/get-beagle-dog-trials.test.ts
  - packages/contracts/dogs/profile/beagle-profile.ts
  - packages/contracts/dogs/index.ts
  - packages/contracts/index.ts
  - packages/db/dogs/index.ts
  - packages/db/index.ts
  - packages/server/dogs/index.ts
  - packages/server/dogs/search/service.ts
  - apps/web/queries/public/beagle/dogs/index.ts

  Ref BEJ-125
  Move dog trials normalization out of packages/db so the repository layer returns raw persistence values and the server layer owns DTO shaping. Keep award
  formatting, judge fallback, and date/decimal conversion in the service.

  Files:

  - packages/db/dogs/profile/get-beagle-dog-trials.ts
  - packages/db/dogs/profile/tests/get-beagle-dog-trials.test.ts
  - packages/server/dogs/profile/get-beagle-dog-trials.ts
  - packages/server/dogs/profile/tests/get-beagle-dog-trials.test.ts

  Ref BEJ-125
Comment thread apps/web/app/api/beagle/dogs/[dogId]/trials/route.ts Outdated
Comment thread apps/web/app/api/beagle/dogs/[dogId]/trials/__tests__/route.test.ts Outdated
asku1990 added 4 commits June 25, 2026 21:03
  This matches the staged change set best:

  - removes the duplicate dog-trials DB query
  - composes dog profile trials from the existing trials repo in packages/server
  - moves the shared wide-view formatter into apps/web/lib
  - updates clipboard output to reuse the same placement formatting
  - adds focused formatter coverage

  Files:

  - apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-table.tsx
  - apps/web/lib/public/beagle/dogs/profile/__tests__/trials-laaja-formatters.test.ts
  - apps/web/lib/public/beagle/dogs/profile/trials-laaja-formatters.ts
  - apps/web/lib/public/beagle/trials/clipboard.ts
  - packages/db/dogs/index.ts
  - packages/db/dogs/profile/__tests__/get-beagle-dog-trials.test.ts
  - packages/db/dogs/profile/get-beagle-dog-trials.ts
  - packages/db/index.ts
  - packages/server/dogs/profile/__tests__/get-beagle-dog-trials.test.ts
  - packages/server/dogs/profile/get-beagle-dog-trials.ts

  Ref BEJ-125
Comment thread packages/server/dogs/profile/get-beagle-dog-trials.ts Outdated
asku1990 added 3 commits June 25, 2026 21:44
  This matches the staged change set:

  - adds a minimal dog identity repo
  - switches the dog-trials service to use it instead of the full profile graph
  - keeps the full profile path unchanged
  - updates the related tests and exports

  Files:

  - packages/db/dogs/index.ts
  - packages/db/dogs/profile/__tests__/get-beagle-dog-profile-identity.test.ts
  - packages/db/dogs/profile/get-beagle-dog-profile-identity.ts
  - packages/db/index.ts
  - packages/server/dogs/profile/__tests__/get-beagle-dog-trials.test.ts
  - packages/server/dogs/profile/get-beagle-dog-trials.ts

  Ref BEJ-125
  This matches the staged change set best:

  - moves the shared wide-view formatter into the trial domain
  - updates the dog-profile table and clipboard to import from the shared trial formatter
  - updates the related test
  - includes the architecture doc clarification that supports this layout

  Files:

  - ARCHITECTURE.md
  - apps/web/components/beagle-dog-profile/dog-profile-trials-laaja-table.tsx
  - apps/web/lib/public/beagle/dogs/profile/__tests__/trials-laaja-formatters.test.ts
  - apps/web/lib/public/beagle/trials/clipboard.ts
  - apps/web/lib/public/beagle/trials/display-formatters.ts

  Ref BEJ-125
@asku1990 asku1990 merged commit bfc941e into develop Jun 25, 2026
5 checks passed
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