Skip to content

Wire the August artwork into the project cards - #76

Merged
ThomasJButler merged 5 commits into
mainfrom
feat/project-assets-august26
Aug 28, 2026
Merged

Wire the August artwork into the project cards#76
ThomasJButler merged 5 commits into
mainfrom
feat/project-assets-august26

Conversation

@ThomasJButler

@ThomasJButler ThomasJButler commented Aug 28, 2026

Copy link
Copy Markdown
Owner

What

Designed covers and galleries for five project cards: Morpheus,
OctopusJobHunter, Offshore Property Map, The Premier League Oracle and
Version TimeTravel. Octopus, Offshore and Morpheus also get their
"Under the hood" figures.

Two smaller fixes already on the branch: the TimeTravel card counted
archive versions it can no longer see, and the Oracle carried a
Completed badge over a cover badged NOW DISCONTINUED.

Why

Every CV links here and the reader is a hiring manager. Four of the
twenty cards had no artwork at all, so some of the strongest projects
on the site were the plainest things on the page.

Morpheus had artwork, but the wrong artwork: it was shot against the
hosted build the project started as, down to a "[LLM] CLAUDE / [NET]
ONLINE" status bar, while the card beside it argued for running the
model on your own machine.

How

The upload sheet could not be trusted. Cloudinary hands back a random
public id per upload, so the URLs came back in a different order than
they went out and 19 of the 32 rows named the wrong file. Octopus, for
one, had its architecture diagram in the gallery and a gallery shot
under "Under the hood".

Every asset was downloaded and matched back to its local file by md5,
and the sheet was rewritten from that. Worth a reviewer's attention:
none of these pairings are eyeballed, and the same check was run again
on the last two files after they were uploaded.

Offshore's tiles are styled as a technical report and carry its section
numbers. The delivered order ran 3.2, 4.1, 2.1, so the method arrived
after its own results. It now opens on the pipeline and runs 2.1, 3.2,
4.1, with the publication gate (2.4) as the diagram.

All five covers are 1600x750, so all five are in DESIGNED_COVERS.

Testing

  • npm run type-check clean, npm run lint 0 errors
  • 117 unit and component tests pass
  • npm run build clean, every route over the 600-char prerender floor
  • All 32 assets verified by md5 against the file they claim to be
  • All transformed Cloudinary URLs return 200, including the Morpheus
    loop as video/mp4 (1.39MB GIF in, 97kB mp4 out)
  • /projects rendered in Chrome: 26 images, 0 broken, 0 console errors
  • Offshore and Morpheus modals opened in the browser and checked image
    by image for order

Known and accepted

Morpheus gallery 04 and 05 are the diagram and wireframe letterboxed to
16:9, and the same two also sit under "Under the hood" at native 1640,
so each appears twice in the modal. Deliberate.

Version TimeTravel's gallery tile 01 embeds a screenshot of the live
archive reading "25 months". The archive computes that from its own
data and now says 26, because the August entry moved the last date. The
tile is a capture of a real moment so it stays as taken. The cover's
stat is designed rather than captured, so that one was re-cut to 26.

The Oracle's gallery tiles 04 and 05 still say the model won money on
casual bets. Left in on purpose; the cover's claim and its WON REAL
BETS badge were the ones that came off.

The Octopus tiles run on sample data, not on a real profile: the
employer is Northwind Systems, which is Microsoft's sample database, and
the advert, interview slot and certificate are all invented to match. The
"Nothing here is invented" line on that tile is the product's promise
about your own file, not a claim that the screenshot is a real history.
Flagged in review and confirmed as sample data, so noting it here rather
than leaving it to be found again.

The card said nine versions and twenty-five months in four places. The
archive gained the August repoint today, so all four are now wrong, and
they were only ever right by coincidence: the count lives in the other
repo, derived from its data, and nothing here can see it.

So the card stops counting. "Every version of this site since 2024"
cannot go stale, and the archive's own headline does the arithmetic for
anyone who wants the number.

Same reason the README lost its count last week. A figure maintained by
hand in a second repo is a promise to keep re-checking it, and I would
not have.
The new cover is badged NOW DISCONTINUED and the card said "Completed",
which put the artwork and the copy in the same modal disagreeing about
the same thing.

The links stay. The build is live, the demo still works, and it is worth
opening. It just is not being actively developed, and there is no status
value that says that, so the honest move is to claim nothing rather than
claim the wrong thing. status is optional and only renders a badge when
it is set, so the card simply stops asserting.
Cloudinary hands back a random public id per upload, so the URLs came
back in a different order than they went out: 19 of the 32 rows in the
upload sheet named the wrong file. Octopus had its diagram sitting in
the gallery and a gallery shot under "Under the hood". Matched every
asset back to its local file by md5 rather than trusting the sheet,
which is the only reason this is right.

Offshore's tiles are styled as a technical report and carry its section
numbers. The delivered gallery ran 3.2, 4.1, 2.1, so the method turned
up after its own results. It now opens on the pipeline.

All four covers are 1600x750, so all four go in DESIGNED_COVERS.

Morpheus is untouched on purpose: morpheus-03 and the diagram never
made it to Cloudinary, and a gallery stamped 01, 02, 04, 05 with a
visible hole is worse than waiting for two files.
@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

Next included review available in 42 minutes.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e9fc8897-ec12-4d0c-8e0a-4476ab5d73c1

📥 Commits

Reviewing files that changed from the base of the PR and between 9b408a5 and 8bcde0a.

📒 Files selected for processing (3)
  • public/llms.txt
  • src/lib/assets.ts
  • src/lib/projects.ts

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0415f14a-363e-4eef-8aa1-632aa1218e54

📥 Commits

Reviewing files that changed from the base of the PR and between 76ce197 and 9b408a5.

📒 Files selected for processing (3)
  • public/llms.txt
  • src/lib/assets.ts
  • src/lib/projects.ts

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The portfolio now includes updated Version TimeTravel media and copy, media assets for three additional projects, designed cover registration, and under-the-hood visual content for two projects.

Changes

Project content updates

Layer / File(s) Summary
Media assets and cover registration
src/lib/assets.ts
The media catalog adds or replaces covers, galleries, diagrams, and wireframes. The designed cover registry includes four project ids.
Project media and visual content wiring
src/lib/projects.ts
Premier League Oracle, Offshore Property Map, and OctopusJobHunter now reference media catalog entries. Two projects include under-the-hood visual content.
Version TimeTravel copy updates
src/lib/projects.ts, public/llms.txt
Version TimeTravel and the public Projects link use updated archive wording.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to 9b408

This change adds artwork and adjusts project-card metadata without altering application behavior, permissions, or deployment configuration. No actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. (1 skipped: 1 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the primary change: adding the August artwork to the project cards. It is concise and specific.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/project-assets-august26

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.

The old set was shot against the hosted build this project started as,
down to a "[LLM] CLAUDE / [NET] ONLINE" status bar, while the card next
to it argued for running the model on your own machine. The new set
runs on Ollama and LanceDB and says so, and the diagram that used to
caption a generation step "moving to Ollama" has been redrawn now that
it has moved.

Gallery 04 and 05 are the diagram and wireframe letterboxed into 16:9,
and the same two also sit under "Under the hood" at native 1640. So
each appears twice in the modal. That is a deliberate call, not a
duplicate slipping through.

The loop is a new capture: 1.39MB as a GIF, 97kB once Cloudinary
converts it with f_mp4. Poster frame is unchanged, since no new one was
cut and the old one still matches the opening frame.
The Oracle's "no status here, and why" comment ended up directly above
the images block this branch added, so it read as a note about the
artwork rather than about a field that isn't there. Moved below the
images and reworded to name what it's talking about.

The TimeTravel entry still carried a comment defending "9 portfolio
versions" as the app's own figure, three commits after the copy stopped
saying nine. It also claimed versions.ts holds ten entries; it holds
eleven, one of them withheld. A comment that argues for a number the
code no longer contains is worse than no comment.

llms.txt contradicted itself two lines apart: "a standing start in early
2022" in the summary, "the first line of code in November 2022" in the
Dev Journey line. The timeline's own first entry is February 2022, and
this is the file written for machines to read.

Also swapped an escaped apostrophe for the typographic one the rest of
the file uses.
@ThomasJButler
ThomasJButler merged commit 3f78003 into main Aug 28, 2026
1 check 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.

1 participant