Skip to content

Improve portfolio accessibility, blog discovery, release reliability and admin recovery - #23

Merged
modhack2003 merged 3 commits into
mainfrom
feat/portfolio-backlog-improvements
Oct 16, 2026
Merged

modhack2003 merged 3 commits into
mainfrom
feat/portfolio-backlog-improvements

Conversation

@modhack2003

@modhack2003 modhack2003 commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

Implements issue #20 items 1, 2, 4, 5, 6, 7, 8, 9 and 10 while retaining the Naruto/cyber design.

  • Scope 90-day retention to ledger-backed imported Security Insights; preserve original write-ups.
  • Use a static entrance dialog with trapped/restored focus, immediate safe mode and reactive reduced-motion support; add direct mobile project links and keyboard preview selection.
  • Add blog summary-only pagination, title/excerpt search and exact-tag filtering, canonical/social/article metadata, escaped JSON-LD, sitemap and robots/noindex handling.
  • Fail content checks and builds when the source database/profile/projects are unavailable rather than publishing an empty portfolio. Existing successful releases remain active.
  • Keep four font families while reducing requested weights from 15 to 9 and subsetting Japanese UI glyphs; include a reproducible mobile laboratory measurement script.
  • Add transactional before/after content history, reversible Trash, conflict-checked revision restore and validated content-backup export/import in the admin panel. Backup restores merge by durable ID and roll back on conflicts.

Validation: 37 Jest suites / 372 tests, TypeScript, targeted ESLint and production build pass. Disposable MongoDB tests pass for archive preservation, all 11 content collections, atomic audit failure rollback, soft deletion, stale restore rejection, backup round trips, import ledger and unique-conflict rollback. All 12 desktop/mobile browser scenarios passed, including real API/database publishing, contact persistence, Trash/restoration, backup download/upload and revoked sessions; the mobile admin scenario was rerun after adding a hydration readiness assertion. CI now runs these integrations and browser scenarios.

Operational details: optional deletedAt fields and a ContentRevision collection/indexes; use the normal prisma db push setup for indexes. Builds require a reachable populated DATABASE_URL. Backups are content-only, limited to 3 MB / 1,000 records; they include private bounty details and exclude credentials, sessions, inbox/client requests, old revision history and media binaries. Tests use synthetic localhost databases and do not write production content. See docs/portfolio-improvements.md.

Authentication upgrades and portfolio case-study content from #20 remain separate.

Additional validation: the existing concurrent throttle/import suite also passes after ensuring nested interactive callers share one content/history transaction; a regression test checks rollback of both. Mobile laboratory observation: LCP 888 ms, CLS 0.0167, five font requests / 131,626 bytes, no page errors or horizontal overflow; observed long-task blocking remains 2,268 ms under 4× CPU throttling with synthetic local data. These are not production field metrics. The diagnostic captures only the viewport to avoid oversized full-page GPU allocations.

Final verification for 0e45f64: GitHub Checks run #32 passed, including all 12 browser scenarios in one run (35.8 seconds), all database integrations, TypeScript, lint, unit tests and production build. Vercel preview READY: https://bikram-6mw6gq2pq-modhack2003s-projects.vercel.app . PR is open and mergeable; production has not been promoted.

@vercel

vercel Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
bikram Ready Ready Preview Oct 16, 2026 12:16pm UTC

@modhack2003
modhack2003 merged commit 2f75af1 into main Oct 16, 2026
3 checks passed

This branch was successfully deployed

1 active deployment
Preview – bikram — 0e45f64e Deployed Oct 16, 2026 by vercel[bot]
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