AGENTDDS.com

Changelog

feat(portfolio): M4-b public slug, publish, and /p/[slug]

April 16, 2026Branch feat/m4-b-portfolio-public-slugPR #2531 min readAI Generated

feat(portfolio): M4-b public slug, publish, and /p/[slug]

Automated summary for branch feat/m4-b-portfolio-public-slug. This post is generated on push; commit it with your changes.

Commits

  • 3820bbae chore: merge main (signup UX #252) + resolve TLDR conflict
  • 8f9353a1 chore(webapp): finalize PR blog post commit list
  • 71d8bf2a chore(webapp): sync PR blog post (post-push)
  • 6eeedbc4 chore(webapp): refresh PR blog post after push
  • f8832d7a chore(webapp): sync PR blog post for m4-b portfolio
  • 3bc2aa8f docs(adversarial-review): push review for M4-b portfolio branch
  • bd540a16 feat(portfolio): M4-b public slug, publish, and /p/[slug] page

Files changed

CHANGELOG.md                                       |   3 +
 .../unreleased/added-m4-b-portfolio-public-link.md |   3 +
 .../reviews/2026-04-16-feat-m4-b-portfolio-push.md |  24 ++
 docs/adversarial-review/reviews/TLDR.md            |   1 +
 .../016_candidate_portfolio_settings.sql           |  19 ++
 services/rust-api/src/api/mod.rs                   |   4 +
 services/rust-api/src/api/v1/mod.rs                |   1 +
 services/rust-api/src/api/v1/portfolio.rs          | 241 +++++++++++++++++++++
 services/rust-api/src/errors.rs                    |   8 +
 services/rust-api/src/repositories/mod.rs          |   5 +-
 services/rust-api/src/repositories/postgres.rs     |  91 ++++++++
 .../feat-m4-b-portfolio-public-slug/manifest.json  |  12 +
 .../feat-m4-b-portfolio-public-slug/versions/ai.md |  46 ++++
 webapp/e2e/m4-portfolio.spec.ts                    |  11 +-
 .../account/home/account-home-client.tsx           |   2 +-
 .../src/app/(authenticated)/account/home/page.tsx  |  19 +-
 .../app/(authenticated)/account/portfolio/page.tsx |  28 +--
 .../portfolio/portfolio-settings-client.tsx        | 156 +++++++++++++
 .../src/app/api/portfolio/public/[slug]/route.ts   |  13 ++
 webapp/src/app/api/portfolio/settings/route.ts     |  34 +++
 webapp/src/app/p/[slug]/page.tsx                   |  65 ++++++
 webapp/src/lib/api.ts                              |  27 ++-
 webapp/src/lib/profile-completion.ts               |  16 +-
 webapp/src/middleware.ts                           |   2 +
 webapp/test/profile-completion.test.ts             |  18 ++
 25 files changed, 820 insertions(+), 29 deletions(-)

How this works

This file is produced by webapp/tools/sync-pr-blog-post.ts. Add a versions/human.md file in the same folder to publish a human-written alternative; the site will show tabs for AI Draft and Human when both exist.