Skip to content

Hide unclaimed profile and Dev Card details in admin - #84

Merged
abhi1693 merged 2 commits into
masterfrom
fix/admin-user-unclaimed-dev-card
Oct 4, 2026
Merged

abhi1693 merged 2 commits into
masterfrom
fix/admin-user-unclaimed-dev-card

Conversation

@abhi1693

@abhi1693 abhi1693 commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

What changes and why?

Admin user Details showed reader-profile fields and default Dev Card styling for accounts without a configured username. Both sections are now omitted until the account has a nonblank username. Existing stored bio, profile links, stack, and card styling do not cause those sections to appear for an unclaimed account.

Account details, reading activity, personalization, reader preferences, and technical identifiers remain available. For accounts without usernames, the recommendation-refresh and personalization panels fill the desktop grid instead of leaving an empty profile column. Claimed private profiles remain inspectable by admins; the condition depends on the username, not public visibility.

Changes are isolated on fix/admin-user-unclaimed-dev-card, separate from the leaderboard fix. The admin README documents the resulting behavior.

Validation

Updated against master after #83, preserving leaderboard top-ten and touch-remount regressions, account query boundaries, all reader changes, backend coverage and CodeQL/Sonar integration.

  • 24 focused admin user-details regressions passed, and normal merge commit hooks passed. Cases cover null, omitted, empty and whitespace-only usernames, claimed private profiles, and username removal/restoration with populated profile/card data.
  • Original implementation validation included production admin build and actual browser checks for claimed/unclaimed details, keyboard disclosures, responsive light/dark themes, panel alignment and existing Must Reads journeys. Current-head CI will repeat those browser checks; earlier run counts do not represent this revision.
  • GitHub native screenshot attachment upload is unavailable through the configured tools. Screenshots were captured and reviewed during the original implementation and remain local and untracked.
  • Current-head CI passed on 8e25d469: 39 jobs passed, ten expected skips, including CI required, all CodeQL analyses and SonarQube. 653 admin, 852 reader, 3,007 backend unit and 1,139 PostgreSQL integration tests passed, with no skips.
  • Current-head admin browser journeys passed claimed/unclaimed profile visibility, username restoration, keyboard disclosures, desktop panel alignment, responsive light/dark layouts and Must Reads. Web, Chrome and Edge reader browser parity also passed, including both touch-remount regressions.
  • The live backend coverage comment was verified against this commit: 67.79% combined across all 273 backend source files, above the unchanged 67.60% minimum.
  • Fresh Sonar MCP verification after analysis: quality gate OK, 100.0% new-code coverage, 0.0% new duplication and zero open/confirmed issues. No rules, exclusions, thresholds or quality gates were relaxed. Auto-merge is disabled.
  • GitHub's separate managed AI findings scan remains unavailable because its monthly quota is exceeded (HTTP 402); standard CodeQL completed successfully.

Merge after #83, after all current-head checks pass.

Rollout notes

Admin rendering change only; no API contract, generated-client, or database migration changes. Deployment remains pending release.

Ready for review

  • The description explains the change and the validation results, including any gaps.
  • Relevant documentation and regression tests are updated, or the description explains why they aren't needed.

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

PR reader API performance

Result: INCONCLUSIVE

5 inconclusive · 3 within threshold. Zero request failures across all six runs.

Base f4312bd5725ff835645d1ea57d229c3b97966baf → PR 8e25d4697360deaef66705cefe549103de6c3722

Three independent runs per revision, each on a fresh GitHub-hosted ARM64 runner. 16 users, 60 seconds/run, 1,000 synthetic articles, cache off, five PgBouncer slots.

Latency comparison

All latency values are in milliseconds; lower is better. Values are medians of three runs.

Route Base p95 PR p95 Change Result
All requests 99 100 +1 (+1.0%) Within threshold
Latest feed 140 130 -10 (-7.1%) Within threshold
Feed pagination 85 94 +9 (+10.6%) Within threshold
Article detail 73 73 +0 (+0.0%) Inconclusive
Source feed 93 100 +7 (+7.5%) Within threshold
Topic feed 95 93 -2 (-2.1%) Inconclusive
Feed filters 90 89 -1 (-1.1%) Inconclusive
Sources 40 32 -8 (-20.0%) Inconclusive
Topics 51 40 -11 (-21.6%) Inconclusive
Additional latency and throughput metrics

Each cell shows base → PR. Latencies are in milliseconds.

Endpoint p50 p99 Requests/s
Aggregated 29 → 28 150 → 160 30.14 → 30.35
/v1/feed [latest] 44 → 45 180 → 190 8.77 → 8.52
/v1/feed [page] 27 → 28 140 → 140 3.64 → 3.87
/v1/articles/[id] 18 → 19 120 → 120 6.44 → 6.29
/v1/feed [source] 28 → 28 110 → 160 1.94 → 1.78
/v1/feed [topic] 28 → 30 140 → 130 1.93 → 1.91
/v1/feed/options 22 → 20 100 → 120 2.53 → 2.80
/v1/sources 12 → 11 71 → 57 2.53 → 2.80
/v1/topics 12 → 13 78 → 59 2.53 → 2.80
Individual runs
Run Requests Failures Exit code
Base 1 1688 0 0
Base 2 1725 0 0
Base 3 1690 0 0
PR 1 1703 0 0
PR 2 1699 0 0
PR 3 1720 0 0
How to interpret this report

Regressed / Improved: a p95 regression needs >20% and >20 ms increase in the medians and at least two head samples versus the base median. Improvements use the inverse threshold. Within threshold means the change did not meet both thresholds.

Inconclusive: a within-revision p95 range >35% of its median and >20 ms is too noisy for a confident latency verdict.

Inconclusive latency comparisons are non-blocking: the check passes without claiming an improvement. Confirmed regressions and test/report errors fail the PR gate. Throughput is descriptive: paced users do not measure maximum capacity. This uncached public API test does not establish production health, browser performance or worker capacity. Separate runners can differ in hardware or host load; repetitions and noise checks reduce but cannot eliminate that uncertainty.

Full HTML/CSV reports and logs · attempt 1

@gitar-bot

gitar-bot Bot commented Oct 4, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

🟡 Medium risk · Admin user-detail rendering now conditionally omits profile and Dev Card sections

Hides unclaimed profile and Dev Card details in the admin user interface, showing these sections only when a username is configured. Account details, reading activity, and personalization remain available; the layout fills empty columns with recommendation and personalization panels for unclaimed accounts. No issues found.

Review coverage

📋 Rules No rules evaluated

🧪 Functional validation Not enabled · Set up

Options

Auto-apply is off → Gitar will not commit updates to this branch.
Display: compact → Counting what did not apply, without listing it.

Comment with these commands to change the behavior for this request:

Auto-apply Compact
gitar auto-apply:on         
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown

Backend unit coverage

PASS · minimum combined coverage 67.60%.

Tests: 3007 passed, 0 failed, 0 skipped. Source files: 273.

Workspace Lines Branches Combined
All backend code 71.64% 53.77% 67.79%
apps/admin-api 64.78% 35.76% 59.95%
apps/aggregator 73.60% 57.18% 69.86%
apps/api 68.94% 55.88% 66.48%
apps/article-enrichment-worker 80.00% 50.00% 71.43%
apps/cli 68.76% 42.93% 64.81%
apps/images-worker 80.00% 50.00% 71.43%
apps/mcp 79.90% 73.88% 78.77%
apps/notifications 83.33% 76.67% 81.75%
apps/search-indexer 85.48% 85.71% 85.53%
apps/source-discovery-worker 80.00% 50.00% 71.43%
apps/user-api 59.19% 32.90% 54.27%
packages/core 73.81% 56.67% 69.73%
packages/http 94.43% 86.47% 92.62%

Unit coverage includes every backend workspace. PostgreSQL/Redis integration tests run separately.

Commit: 8e25d46 · HTML, JSON, XML reports and job logs · attempt 1

@sonarqubecloud

sonarqubecloud Bot commented Oct 4, 2026

Copy link
Copy Markdown

@abhi1693
abhi1693 merged commit 729c7e3 into master Oct 4, 2026
51 checks passed
@abhi1693
abhi1693 deleted the fix/admin-user-unclaimed-dev-card branch October 4, 2026 18:41
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