Skip to content

feat(aluno): dashboard UI polish — remove fake stats, fix spacing, clean up#193

Merged
EmiyaKiritsugu3 merged 5 commits into
mainfrom
feat/aluno-dashboard-ui-ux
Jul 7, 2026
Merged

feat(aluno): dashboard UI polish — remove fake stats, fix spacing, clean up#193
EmiyaKiritsugu3 merged 5 commits into
mainfrom
feat/aluno-dashboard-ui-ux

Conversation

@EmiyaKiritsugu3

@EmiyaKiritsugu3 EmiyaKiritsugu3 commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Changes

  • Remove fake "Meta Semanal 80%" stat (no real prior-period data backing it)
  • Remove fake "Power Index 752" stat (no real metric — was dead UI)
  • Remove non-functional "Ver Todas" button on achievements section
  • Fix JSX broken tree from dangling grid-closing div (typecheck error)
  • Remove unused Button import (TS6133)
  • Fix workoutsThisMonth i18n interpolation (was using .replaceAll(': ', '') hack)
  • Clean up pb-20 double padding on container

Why

The ALuno dashboard had accumulated fake/mock stats that mislead users. Removing them aligns with the mobile-first premium polish roadmap — honest KPI display (PRD-2 brand consistency principle). The "Ver Todas" button was dead (no route). Cleaner, truthful, lighter.

QA

  • 1137/1137 tests pass
  • Typecheck 0 errors
  • Lint 0 errors

🤖 Generated with Claude Code


Summary by cubic

Polished the Aluno dashboard by removing fake stats and dead UI, fixing the monthly workouts label/spacing, and making the next‑workout card render its exercise list. The seed now creates Supabase Auth users, upserts E2E users with stable IDs, and logs missing envs; .env* is ignored for safety.

  • Bug Fixes

    • Removed fake "Meta Semanal 80%" and "Power Index 752" cards.
    • Deleted non-functional "Ver Todas" in achievements.
    • Fixed workoutsThisMonth i18n interpolation and label.
    • Remapped Prisma Exerciciosexercicios so CardTreino shows exercises.
    • Repaired a stray grid-closing div; removed unused Button; dropped extra pb-20.
    • .gitignore: ignore .env* and tmp-output.json.
  • New Features

    • Seed: creates Supabase Auth users for seed and E2E accounts; uses SEED_DEFAULT_PASSWORD (seed users) and E2E_DEFAULT_PASSWORD (E2E), with clear logs when NEXT_PUBLIC_SUPABASE_URL/SUPABASE_SERVICE_ROLE_KEY/SEED_DEFAULT_PASSWORD are missing; .env.example documents the new var.
    • Seed: adds HistoricoTreino to delete order and wraps execution in an async IIFE for idempotent runs; upserts E2E users in Prisma with fixed IDs.

Written for commit 56dcac5. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Documentation
    • Added PRD e especificações de audit/design para aprimoramentos da UI do painel do aluno, com plano em fases e critérios de aceitação.
  • Bug Fixes
    • Corrigido o texto de “treinos no mês” para exibir o valor corretamente.
    • Removidos elementos de dashboard que estavam extras ou não funcionais (incluindo blocos de estatísticas e o botão “Ver Todas”).
    • Ajustado espaçamento do layout para melhor encaixe na tela.
  • Chores
    • Melhorado o seed para, quando configurado, criar usuários no Auth; adicionada sugestão de senha em .env.example.

…ean up unused imports

- Remove fake "Meta Semanal 80%" stat (no prior-period data)
- Remove fake "Power Index 752" stat (no real metric)
- Remove non-functional "Ver Todas" button on achievements
- Remove dangling grid-closing div causing JSX broken tree
- Remove unused Button import (TS6133)
- Fix workoutsThisMonth i18n interpolation
- Clean up pb-20 double padding
@vercel

vercel Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

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

Project Deployment Actions Updated (UTC)
smartmanagementsystem Ready Ready Preview, Comment Jul 7, 2026 1:29pm

@ecc-tools

ecc-tools Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

This PR updates the ALUNO dashboard cleanup and planning docs, adds change-tracking metadata, and extends seeding to create fixed test users and Supabase Auth accounts. It also adds a seed password example to the environment template.

Changes

Dashboard client fixes and planning docs

Layer / File(s) Summary
Dashboard client cleanup
src/app/aluno/dashboard/dashboard-client.tsx
Removes the unused icon import, bottom padding, the sidebar stats block, and the “Ver Todas” button, and simplifies the month-workouts label formatting.
Change-tracking metadata
tmp-output.json
Adds the dashboard edit list, related test-change notes, and flags for fake-data and “Ver Todas” removal.
Planning and audit documents
docs/PRODUTO/PRD-UI-Aluno-Aprimoramento.md, docs/superpowers/specs/2026-07-07-aluno-dashboard-ui-audit-design.md
Adds a PRD for aluno UI improvement and a dashboard audit/spec with phased task plans and acceptance criteria.

Seed auth and E2E user setup

Layer / File(s) Summary
Auth helper and seed config
prisma/seed.ts, .env.example
Adds Supabase client imports, a shared default seed password helper, and a commented seed password example in the environment template.
Database and auth seeding flow
prisma/seed.ts
Refactors staff insertion, adds fixed-ID Prisma upserts for E2E users, creates Supabase Auth users when credentials are present, and wraps execution in an async IIFE.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning It explains the changes, why, and QA, but it does not follow the required template sections for type, related documents, or checklist. Add the template sections for Type of Change, Related Documents, and Checklist, and fill in the required items or mark them explicitly as not applicable.
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title matches the main dashboard UI cleanup and fake-stat removal work.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/aluno-dashboard-ui-ux

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.

@coderabbitai coderabbitai 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.

🧹 Nitpick comments (1)
tmp-output.json (1)

1-43: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove this scratch/planning artifact from the PR.

This file appears to be an internal change-tracking/planning artifact (task list, rationale, region hints) generated during development, not application code or configuration consumed by the app. It shouldn't be committed to the repository.

🧹 Suggested fix
-tmp-output.json

Remove this file from the PR (add to .gitignore if it's a recurring tooling artifact).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tmp-output.json` around lines 1 - 43, This file is a scratch/planning
artifact rather than app code, so remove it from the repository and the PR.
Delete the generated change-tracking content entirely, and if this artifact is
produced repeatedly by tooling, update the relevant ignore rules so
tmp-output.json is not committed again.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@tmp-output.json`:
- Around line 1-43: This file is a scratch/planning artifact rather than app
code, so remove it from the repository and the PR. Delete the generated
change-tracking content entirely, and if this artifact is produced repeatedly by
tooling, update the relevant ignore rules so tmp-output.json is not committed
again.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 6d4c340c-3ec7-470b-abcf-a30549a1661b

📥 Commits

Reviewing files that changed from the base of the PR and between abbeb62 and da9d39b.

📒 Files selected for processing (4)
  • docs/PRODUTO/PRD-UI-Aluno-Aprimoramento.md
  • docs/superpowers/specs/2026-07-07-aluno-dashboard-ui-audit-design.md
  • src/app/aluno/dashboard/dashboard-client.tsx
  • tmp-output.json

@cubic-dev-ai cubic-dev-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.

3 issues found across 4 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="tmp-output.json">

<violation number="1" location="tmp-output.json:1">
P2: This looks like an accidentally committed temporary/output file. `tmp-output.json` contains change-planning metadata rather than application code or configuration, is not referenced by any build scripts or docs, and is not ignored by `.gitignore`. It should be removed from the repository before merge to avoid polluting the codebase with generated artifacts.</violation>
</file>

<file name="src/app/aluno/dashboard/dashboard-client.tsx">

<violation number="1" location="src/app/aluno/dashboard/dashboard-client.tsx:139">
P2: The workout-count card now duplicates the numeric count in both the small label and the large value. The `dashboard.workoutsThisMonth` translation template includes a `{count}` placeholder (`"{count} treinos no mês"`), so the label renders something like "12 treinos no mês" directly above the large "12". The previous code intentionally passed an empty count and stripped residual formatting specifically to avoid this duplication. To fix this cleanly without re-introducing the hack, consider adding a separate count-free translation key such as `dashboard.workoutsThisMonthLabel` ("treinos no mês") and using it here while keeping the interpolated key for contexts that need the count embedded.</violation>
</file>

<file name="docs/PRODUTO/PRD-UI-Aluno-Aprimoramento.md">

<violation number="1" location="docs/PRODUTO/PRD-UI-Aluno-Aprimoramento.md:192">
P2: Custom agent: **Flag AI Slop and Fabricated Changes**

This PRD contains a fabricated workflow script under "Workflow ultracode (opcional, para verificação adversarial)" that references multiple things that do not exist in the repository: the `.claude/workflows/` directory (and `aluno-ui-premium-exec-wf.js` file), the `phase()`, `parallel()`, and `agent()` orchestration functions, and an undefined `TASKS` variable. Shipping documentation that presents imaginary files, APIs, and paths as real misleads future readers and adds noise to the repo. Consider removing this section entirely, or replacing it with a reference to the project's actual CI/testing workflow.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread tmp-output.json Outdated
Comment thread src/app/aluno/dashboard/dashboard-client.tsx Outdated
Comment thread docs/PRODUTO/PRD-UI-Aluno-Aprimoramento.md Outdated
@ecc-tools

ecc-tools Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

Comment thread prisma/seed.ts Fixed

@cubic-dev-ai cubic-dev-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.

4 issues found across 2 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="prisma/seed.ts">

<violation number="1" location="prisma/seed.ts:31">
P1: The auth seeding in `createAuthUser` is non-idempotent and silently swallows errors. On every run the script deletes and recreates all `funcionario`/`aluno` rows with new random UUIDs, but existing Supabase Auth users are never removed. When re-run, `supabase.auth.admin.createUser` fails with "already exists" for the same email; the code merely logs `skipped` and continues, leaving the Auth user with its old UUID while the Prisma record now has a new one. Since the code explicitly passes the Prisma `id` into `createUser`, the intent is clearly that the IDs stay in sync, so reruns silently break that invariant. Actual auth creation errors are also only `console.warn`-ed, letting the script claim `✅ Seed complete!` even when no login credentials were created.

Consider making auth creation idempotent — for example, by reading the existing auth user and updating its UUID if needed, or by deleting and recreating auth users alongside the Prisma records. Also consider `throw`ing on unexpected errors so seed failures surface immediately rather than being buried in console output.</violation>

<violation number="2" location="prisma/seed.ts:179">
P2: The default seed duplicates E2E fixture logic that is already handled by the dedicated `prisma/seed-e2e.ts` script. injecting `@test.com` users into every seeded database (dev, demo, staging) and re-creating Supabase Auth credentials for fixed IDs that `seed-e2e.ts` owns. This creates two maintenance risks:
1. **Drift in passwords**: the auth helper and `seed-e2e.ts` use `E2E_DEFAULT_PASSWORD`, but the default seed uses `SEED_DEFAULT_PASSWORD`. If these env vars diverge, the same fixed IDs will end up with different passwords depending on which seed runs last.
2. **Polluted seed data**: anyone running the default seed now gets test users in their local or staging DB.

It would be safer to keep E2E fixtures isolated in `seed-e2e.ts` and remove section `6.` (and the matching auth creation in section `7.`) from the default seed. If you need parity in local dev, you can document running `npm run seed:e2e` after the default seed instead.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread prisma/seed.ts
...(id ? { id } : {}),
});

if (error) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1: The auth seeding in createAuthUser is non-idempotent and silently swallows errors. On every run the script deletes and recreates all funcionario/aluno rows with new random UUIDs, but existing Supabase Auth users are never removed. When re-run, supabase.auth.admin.createUser fails with "already exists" for the same email; the code merely logs skipped and continues, leaving the Auth user with its old UUID while the Prisma record now has a new one. Since the code explicitly passes the Prisma id into createUser, the intent is clearly that the IDs stay in sync, so reruns silently break that invariant. Actual auth creation errors are also only console.warn-ed, letting the script claim ✅ Seed complete! even when no login credentials were created.

Consider making auth creation idempotent — for example, by reading the existing auth user and updating its UUID if needed, or by deleting and recreating auth users alongside the Prisma records. Also consider throwing on unexpected errors so seed failures surface immediately rather than being buried in console output.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At prisma/seed.ts, line 31:

<comment>The auth seeding in `createAuthUser` is non-idempotent and silently swallows errors. On every run the script deletes and recreates all `funcionario`/`aluno` rows with new random UUIDs, but existing Supabase Auth users are never removed. When re-run, `supabase.auth.admin.createUser` fails with "already exists" for the same email; the code merely logs `skipped` and continues, leaving the Auth user with its old UUID while the Prisma record now has a new one. Since the code explicitly passes the Prisma `id` into `createUser`, the intent is clearly that the IDs stay in sync, so reruns silently break that invariant. Actual auth creation errors are also only `console.warn`-ed, letting the script claim `✅ Seed complete!` even when no login credentials were created.

Consider making auth creation idempotent — for example, by reading the existing auth user and updating its UUID if needed, or by deleting and recreating auth users alongside the Prisma records. Also consider `throw`ing on unexpected errors so seed failures surface immediately rather than being buried in console output.</comment>

<file context>
@@ -12,6 +13,35 @@ const pool = new Pool({ connectionString: process.env.DATABASE_URL });
+    ...(id ? { id } : {}),
+  });
+
+  if (error) {
+    if (
+      error.message.includes('already been registered') ||
</file context>

Comment thread prisma/seed.ts Outdated
Comment thread prisma/seed.ts
},
});

// 6. E2E Test Users — cria registros Prisma para usuários de teste

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: The default seed duplicates E2E fixture logic that is already handled by the dedicated prisma/seed-e2e.ts script. injecting @test.com users into every seeded database (dev, demo, staging) and re-creating Supabase Auth credentials for fixed IDs that seed-e2e.ts owns. This creates two maintenance risks:

  1. Drift in passwords: the auth helper and seed-e2e.ts use E2E_DEFAULT_PASSWORD, but the default seed uses SEED_DEFAULT_PASSWORD. If these env vars diverge, the same fixed IDs will end up with different passwords depending on which seed runs last.
  2. Polluted seed data: anyone running the default seed now gets test users in their local or staging DB.

It would be safer to keep E2E fixtures isolated in seed-e2e.ts and remove section 6. (and the matching auth creation in section 7.) from the default seed. If you need parity in local dev, you can document running npm run seed:e2e after the default seed instead.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At prisma/seed.ts, line 179:

<comment>The default seed duplicates E2E fixture logic that is already handled by the dedicated `prisma/seed-e2e.ts` script. injecting `@test.com` users into every seeded database (dev, demo, staging) and re-creating Supabase Auth credentials for fixed IDs that `seed-e2e.ts` owns. This creates two maintenance risks:
1. **Drift in passwords**: the auth helper and `seed-e2e.ts` use `E2E_DEFAULT_PASSWORD`, but the default seed uses `SEED_DEFAULT_PASSWORD`. If these env vars diverge, the same fixed IDs will end up with different passwords depending on which seed runs last.
2. **Polluted seed data**: anyone running the default seed now gets test users in their local or staging DB.

It would be safer to keep E2E fixtures isolated in `seed-e2e.ts` and remove section `6.` (and the matching auth creation in section `7.`) from the default seed. If you need parity in local dev, you can document running `npm run seed:e2e` after the default seed instead.</comment>

<file context>
@@ -146,6 +176,85 @@ async function main() {
     },
   });
 
+  // 6. E2E Test Users — cria registros Prisma para usuários de teste
+  // (IDs fixos batem com prisma/seed-e2e.ts e tests/e2e/helpers/auth.ts)
+  const e2eGerenteId = '550e8400-e29b-41d4-a716-000000000001';
</file context>

Comment thread prisma/seed.ts Outdated
@ecc-tools

ecc-tools Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

@ecc-tools

ecc-tools Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

@ecc-tools

ecc-tools Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

@sonarqubecloud

sonarqubecloud Bot commented Jul 7, 2026

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-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.

2 issues found across 6 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name=".gitignore">

<violation number="1" location=".gitignore:168">
P2: Custom agent: **Enforce Strict Maintainability Standards**

The trailing `.env*` pattern at the end of `.gitignore` overrides the existing `!.env.example` negation earlier in the file. Because gitignore applies the last matching rule, `.env*` will match `.env.example` and cause it to be ignored again — silently undermining the explicit decision to keep `.env.example` tracked. Consider either moving `!.env.example` after `.env*` or replacing `.env*` with narrower patterns that don't accidentally catch `.env.example`.</violation>
</file>

<file name="prisma/seed.ts">

<violation number="1" location="prisma/seed.ts:37">
P2: The seed script's `createAuthUser` function skips existing Supabase Auth users without verifying or updating their IDs or passwords. When re-seeding, non-E2E demo users get new random UUIDs in Prisma (`crypto.randomUUID()`), but the corresponding Auth users retain their old IDs. Because the app's RLS policies match `auth.uid()` directly against `funcionario.id` and `aluno.id`, these ID mismatches break login for demo users after a re-seed. Consider either using fixed UUIDs for non-E2E seed users (matching the E2E pattern), or calling the Supabase admin update API in the skip branch to keep the Auth record in sync.</violation>
</file>

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread .gitignore
qa/
.sisyphus/evidence/
.omo/
.env*

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: Custom agent: Enforce Strict Maintainability Standards

The trailing .env* pattern at the end of .gitignore overrides the existing !.env.example negation earlier in the file. Because gitignore applies the last matching rule, .env* will match .env.example and cause it to be ignored again — silently undermining the explicit decision to keep .env.example tracked. Consider either moving !.env.example after .env* or replacing .env* with narrower patterns that don't accidentally catch .env.example.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .gitignore, line 168:

<comment>The trailing `.env*` pattern at the end of `.gitignore` overrides the existing `!.env.example` negation earlier in the file. Because gitignore applies the last matching rule, `.env*` will match `.env.example` and cause it to be ignored again — silently undermining the explicit decision to keep `.env.example` tracked. Consider either moving `!.env.example` after `.env*` or replacing `.env*` with narrower patterns that don't accidentally catch `.env.example`.</comment>

<file context>
@@ -165,3 +165,5 @@ graphify-out/
 qa/
 .sisyphus/evidence/
 .omo/
+.env*
+tmp-output.json
</file context>

Comment thread prisma/seed.ts
error.message.includes('already been registered') ||
error.message.includes('already exists')
) {
console.log(` Auth user ${email} already exists (expected on re-seed)`);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: The seed script's createAuthUser function skips existing Supabase Auth users without verifying or updating their IDs or passwords. When re-seeding, non-E2E demo users get new random UUIDs in Prisma (crypto.randomUUID()), but the corresponding Auth users retain their old IDs. Because the app's RLS policies match auth.uid() directly against funcionario.id and aluno.id, these ID mismatches break login for demo users after a re-seed. Consider either using fixed UUIDs for non-E2E seed users (matching the E2E pattern), or calling the Supabase admin update API in the skip branch to keep the Auth record in sync.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At prisma/seed.ts, line 37:

<comment>The seed script's `createAuthUser` function skips existing Supabase Auth users without verifying or updating their IDs or passwords. When re-seeding, non-E2E demo users get new random UUIDs in Prisma (`crypto.randomUUID()`), but the corresponding Auth users retain their old IDs. Because the app's RLS policies match `auth.uid()` directly against `funcionario.id` and `aluno.id`, these ID mismatches break login for demo users after a re-seed. Consider either using fixed UUIDs for non-E2E seed users (matching the E2E pattern), or calling the Supabase admin update API in the skip branch to keep the Auth record in sync.</comment>

<file context>
@@ -33,12 +34,12 @@ async function createAuthUser(
       error.message.includes('already exists')
     ) {
-      console.log(`  Auth user ${email} already exists — skipped`);
+      console.log(`  Auth user ${email} already exists (expected on re-seed)`);
     } else {
       console.warn(`  ⚠️  Auth user ${email}: ${error.message}`);
</file context>

@EmiyaKiritsugu3
EmiyaKiritsugu3 merged commit c85342b into main Jul 7, 2026
14 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.

2 participants