Skip to content

feat(analytics): expose private operator recommendation quality report - #331

Merged
JSONbored merged 9 commits into
JSONbored:mainfrom
Crystora:feat/305-private-recommendation-quality-report
Jun 5, 2026
Merged

feat(analytics): expose private operator recommendation quality report#331
JSONbored merged 9 commits into
JSONbored:mainfrom
Crystora:feat/305-private-recommendation-quality-report

Conversation

@Crystora

@Crystora Crystora commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Closes #305

  • Adds a private operator-only recommendation quality report to the operator dashboard.
  • Shows aggregate quality, role-aware surfaces, trends, and failure categories without exposing raw private scoring context.
  • Keeps public exports unavailable by default.

Scope

  • This PR is focused and does not mix unrelated backend, UI, MCP, docs, dependency, and deploy changes.
  • This follows CONTRIBUTING.md and does not reintroduce GitHub Pages, VitePress, site/, or CNAME.
  • I linked an issue, or this is small enough that the summary explains why an issue is not needed.

UI Evidence

The screenshots below are GitHub-hosted evidence captured from the operator dashboard route with deterministic API fixtures matching the implemented report states.

State Evidence
Populated report: role surfaces, trend bars, and failure categories are visible. Populated private recommendation quality report
Sparse report: sparse badge and warning are shown for low sample size. Sparse private recommendation quality report
Empty report: empty badge, zero totals, no role-specific outcomes, and empty warnings are shown. Empty private recommendation quality report

Validation

  • git diff --check
  • npm run actionlint
  • npm run typecheck
  • npm run test:coverage locally; global coverage stays at or above 97% for lines, statements, functions, and branches
  • npm run test:workers
  • npm run build:mcp
  • npm run test:mcp-pack
  • npm run ui:openapi:check
  • npm run ui:lint
  • npm run ui:typecheck
  • npm run ui:build
  • npm audit --audit-level=moderate
  • New or changed behavior has unit/integration tests for new branches, fallback paths, and sanitizer boundaries

If any required check was skipped, explain why:

  • None. All listed checks were run locally.
  • npm run test:coverage passed with branch coverage at 97.06%.
  • Screenshot states were reconfirmed against the implementation: populated, sparse, and empty recommendation-quality report states.

Safety

  • No secrets, wallet details, hotkeys, coldkeys, user PATs, private keys, raw trust scores, private rankings, or private maintainer evidence are exposed.
  • Public GitHub text stays sanitized, low-noise, and does not imply compensation guarantees or optimization tactics.
  • Auth, cookie, CORS, GitHub App, Cloudflare, or session changes include negative-path tests.
  • API/OpenAPI/MCP behavior is updated and tested where needed.
  • UI changes use live API data or real empty/error/loading states, not production mock/demo fallbacks.
  • Visible UI changes include screenshots or a short recording.
  • Public docs/changelogs are updated where needed; changelogs are only edited for release-prep PRs.

Notes

  • Adds an operator-only recommendation quality report inside /v1/app/operator-dashboard.
  • Separates miner, maintainer, repo-owner, and operator recommendation surfaces where data exists.
  • Reports populated, empty, sparse, trend, and failure-category states.
  • Public export is unavailable by default for the recommendation quality report.
  • No OpenAPI/generated JSON changes were introduced.

@JSONbored JSONbored left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

@bittoby this is close, but some changes should be made:

A few notes:

  • The private operator report direction matches #305.
  • The API/test surface looks directionally aligned with the role-aware recommendation-quality work.
  • The blocker is PR hygiene/evidence, not the general feature direction.

Required changes:

  • Retitle the PR to a scoped Conventional Commit title, for example feat(analytics): expose private operator recommendation quality report.
  • Replace the local screenshot path in the PR body with actual GitHub-hosted PR-description evidence (review our contribution guidelines).
  • Add a clear UI Evidence or Screenshots section with small clickable thumbnails and captions/state labels for the relevant report states.

Validation expected:

  • Keep the current green validation.
  • Reconfirm the report states covered by the screenshots match the implementation.

@JSONbored JSONbored changed the title feat: expose private operator recommendation quality report feat(api): expose private operator recommendation quality report Jun 3, 2026
@Crystora Crystora changed the title feat(api): expose private operator recommendation quality report feat(analytics): expose private operator recommendation quality report Jun 3, 2026
@Crystora

Crystora commented Jun 3, 2026

Copy link
Copy Markdown
Contributor Author

@JSONbored I've updated. pls review again. thx

@JSONbored
JSONbored self-requested a review June 4, 2026 05:35
JSONbored
JSONbored previously approved these changes Jun 4, 2026

@JSONbored JSONbored left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

@bittoby this looks ready from this pass.

A few notes:

  • The report stays operator-only and keeps public export unavailable by default, which is the right boundary for recommendation quality data.
  • The populated, sparse, and empty screenshot states are now in the PR description.
  • The tests cover the report builder and API integration path.

No code changes are requested from this review pass.

@dosubot dosubot Bot added the lgtm label Jun 4, 2026
@JSONbored

Copy link
Copy Markdown
Owner

Hi @bittoby - can you please fix the merge conflicts. Thanks!

@Crystora

Crystora commented Jun 4, 2026

Copy link
Copy Markdown
Contributor Author

@JSONbored fixed merge conflicts. Pls review again.

@JSONbored
JSONbored self-requested a review June 5, 2026 06:43

@JSONbored JSONbored left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

@bittoby this looks ready from this pass.

A few notes:

  • The report stays private/operator-only and keeps public export unavailable, which is the right boundary for recommendation quality data.
  • The PR description now has organized UI evidence for populated, sparse, and empty states.
  • The service and UI tests cover the report behavior well enough for this scope.

No code changes requested.

@JSONbored
JSONbored merged commit 3335265 into JSONbored:main Jun 5, 2026
4 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in gittensory - v1 roadmap Jun 5, 2026
@JSONbored JSONbored added the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jun 10, 2026
@JSONbored JSONbored added gittensor:feature Gittensor-scored feature linked to a feature issue — scores a 0.25x multiplier. and removed feature gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. labels Jun 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:feature Gittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.

Projects

No open projects
Status: Done

Development

Successfully merging this pull request may close these issues.

feat(app): expose private recommendation quality report

2 participants