~ 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

The pages say what to do on the page, not which command to run

Merged
Merged chadtmiller.com asked to merge into main from chadtmiller.com/knotless:web/no-cli-in-messages

What changes

Ejected pulls. The runner no longer ends an ejection's reason with Their logs: knotless checks … --log. The pull page and the queue page already link the checks that failed beside it. Records written before this keep that sentence, so the pages strip it (ejectedWhy in web/src/lib/format.ts). knotless show now prints the command on a logs: line of its own after where the pull stands: --pull <pull> for a failed pre-flight, --queue <branch> for a failed batch. A gateway refusal's reason now points to Delegated writes in the owner's settings, without knotless delegate.

Pages. These drop the CLI command they showed next to a control that does the same:

  • Email settings and Delegated writes lose their "From the command line" lines.
  • The access settings' delegate hint now links to your settings only.
  • The theme editor drops its knotless theme publish hint.
  • An asked-for workflow on the checks page no longer shows a knotless rerun command. Its empty state now points the owner to Run workflow.
  • The empty merge queue points to Add to merge queue on the pull's page.
  • Queueing on a repository whose owner has not delegated writes now names only the setting.

These stay: the git push empty states and /start, the merge-conflict "From the command line" fold, the release install and publish commands, and the pages of a server with no logins.

Why

Apart from the first push, the pages should say how to do things on the pages. A command in a message reads like the only way to do it.

How it was checked

A unit test covers queue::logs. The runner's queue tests now expect the logs: line and no "Their logs". The shots world and its recording use the reason the runner writes now. Building, svelte-check and the shots are left to CI.

Shots-moved: pull-ejected, queue, settings-access

Shortcomings

The merge and queue refusals from forge.rs (checks failed, draft, no runners) still name CLI commands. The CLI shares that wording, and the page disables the button whenever one would apply, so the page shows them only in a race.

🤖 Generated with Claude Code

Approved

This pull takes CLI commands out of page copy and runner-written reasons. knotless show now prints the logs command on its own logs: line. The pages strip the old "Their logs" sentence from records written before this.

I found nothing that must change.

  • queue::logs skips old-format reasons, ejections with no failed checks, and ejections that aren't checks failures.
  • --pull is used for pre-flight failures and --queue <branch> for batch failures.
  • The ejectedWhy regex only strips the exact old runner wording.
  • The new checks-page copy depends on owns and the RunWorkflow "Run workflow" button, and both exist on that page.
  • The unit test, the runner tests, the docs and the changeset all match the new behaviour.

I did not run the build, svelte-check or the shots. The pull leaves them to CI.

Approved

Since my last review the pull only gained two commits, and both loosen assertions in crates/knotless-run/tests/run.rs. The tests now check for a logs: line that starts a line and contains --queue main --log, with no trailing newline. That fits knotless show printing the logs line on its own and doesn't change behaviour. My earlier approval still stands and I have nothing new to ask for.

Merged as db8eed1