~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/knotless

git that lives in your Atmosphere account

knotless.dev
1 collaborator

knotless 0.13.0 Latest 2 packages, 1 image

1
10

Videos of a pull's way from push to deploy, and of the pages in use

Merged
Merged chadtmiller.com asked to merge into main from chadtmiller.com/knotless:marketing/video

What changes

A pull's way from push to deploy, as a video. just video-change <pull's page> reads the pull from the appview through knotless-mcp --read-only (marketing/video/change/story.mjs). That means its diff, each push's checks, each review and its line comment, the queue, the commit it landed as, and the run of the deploy workflow at that commit. The Change composition then tells it in order. First the git push and knotless pull create that opened it. Then its files and the hunk adding the most lines, each push's checks as a time-lapse of their real durations, and each review card. Then the branch landing on the base, the deploy steps, and how long it all took. A timeline of stages runs along the foot. A stage the pull never reached is left out. change/sample.json is the story of A profile's private repositories show their pushes to those who may read them (26 minutes from opening to deployed, with one round of changes asked).

The pages, filmed. just video-shoot review star seeds the e2e world through harness/e2e/setup.mjs and logs each scene's person in. It then films them using the pages, as opensocial's promo does: Chrome's screencast keeps each frame painted, a drawn cursor moves at a person's pace, and the scene sets marks to cut on. just video-feature review cuts a reel from those takes (REELS in video/Feature.tsx). The review scene has alice comment on a line of bob's pull, approve it and merge it. The star scene has bob star alice's notes.

Every video renders wide (1920×1080), square and tall (1080×1920) into marketing/video/out. In the narrower shapes the footage is cropped and pans to follow the clicks. The edit uses the pages' dark tokens, Inter, and the ~ knotless brand, all from crates/knotless-serve/fonts.

just fmt now formats marketing/video too. marketing/README.md says how to use it.

Why

To show what a change goes through on knotless (checks, review, queue, deploy) and what the pages do, in clips fit for posting. A change's video is drawn from the records of a real pull rather than filmed: it works for any pull, merged or not, after the fact, and needs nothing running.

How it was checked

Ran story.mjs on the pull above and rendered all three shapes of its video. Filmed review and star over the e2e world (cargo build --bins, web/build) and rendered the review reel in all three shapes and star wide. Looked at stills of each scene in each shape. tsc --noEmit passes. No page, crate or lexicon changes, so no check covers this directory.

Shortcomings

  • The Change video's terminal reconstructs the commands that open a pull as AGENTS.md describes them. It is not a recording of the author's session.
  • Stories read only public pulls, with whatever the appview has indexed.
  • The deploy is the deploy workflow's run at the landed commit (--deploy <workflow> for another name).
  • Filming runs here, not on the runner: the runner keeps only pictures under 1 MB as outputs, so it cannot hand back a video.
  • Remotion needs a company licence once a company using it has more than three people.
Approved

This adds a marketing/video Remotion project. story.mjs reads a pull through knotless-mcp --read-only and writes a story JSON. The Change video is rendered from that story. A Playwright camera films the e2e world into frames for the Feature reels. New Justfile recipes, .gitignore entries and a README section go with it.

I found nothing that must change. The code I read looks correct:

  • Justfile
  • .gitignore
  • package.json
  • render.mjs
  • story.mjs
  • shoot/shoot.mjs
  • shoot/camera.mjs

I did not read these, and no check covers them. They are the Remotion compositions and sample.json, plus the two scenes under shoot/scenes:

  • Change.tsx
  • Feature.tsx
  • Footage.tsx
  • Root.tsx
  • kit.tsx
  • look.ts
  • story.ts
  • assets.d.ts
  • index.ts
  • the change/*.tsx files
  • sample.json
  • review.mjs
  • star.mjs

The lockfile I did not review. Nothing under crates, web or lexicons changes, so the changeset and docs rules in AGENTS.md don't apply.

One small thing, not worth holding the pull for. The video-change recipe uses {{url}} unquoted in the shell, so a URL containing ? or & would break it.

Merged as ac86342