Skip to content

Point volunteers at npx givework@latest - #114

Merged
Barneyjm merged 1 commit into
mainfrom
docs/npx-latest
Aug 24, 2026
Merged

Barneyjm merged 1 commit into
mainfrom
docs/npx-latest

Conversation

@Barneyjm

Copy link
Copy Markdown
Owner

Why

npx givework start resolves the latest dist-tag on a first run, so a brand-new volunteer
always gets the current CLI. Every run after that is the problem: npx prefers a local
node_modules/.bin/givework or a cached entry, so a returning volunteer can keep running an old
CLI indefinitely without ever knowing.

start is pitched in the README as "the same command every time, whether it is your first time or
your fiftieth" — which is precisely the path that goes stale. givework@latest forces tag
resolution against the registry.

Concretely: the v0.5.1 fork-fallback fix reaches a volunteer's machine only if their next npx
actually re-resolves.

What changed

User-facing invocations pinned to @latest (16 occurrences):

  • README.md
  • site/index.html, site/volunteers.html, site/tasks.html, site/conjecture.html
  • src/oauth.ts — the post-login page

test/run-target.test.ts asserts these exact strings, so it moves in lockstep (and needed
reformatting: the longer string pushed a line past 100 cols).

Deliberately left alone

  • scripts/seed-test-task.ts — those instructions run the locally built bin during
    development. @latest would pull the registry copy and defeat the purpose.
  • npx github:Barneyjm/givework.dev … in the README — the unreleased-branch path, which never
    touches the registry. The sentence after it was updated.

Verification

Full suite 47 files / 596 tests pass, typecheck clean, Biome clean.

Touches the site and the control plane (src/oauth.ts, deploys on merge), not the published CLI —
so no version bump, and independent of the pending v0.5.1 release.

Note: README.md is in package.json files, so npm's package page keeps showing the old command
until the next publish after this merges — v0.5.1 is cut from 1e8ca18, which predates this.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WoAJRWLbAW5pakUUzEzcjV

`npx givework start` resolves the `latest` dist-tag on a first run, but npx
prefers a local node_modules/.bin/givework or a cached entry on every run after
that — a volunteer can keep running an old CLI indefinitely without knowing.
`start` is pitched as the same command your first time or your fiftieth, so
that is exactly the path that goes stale.

Pin the user-facing invocations to @latest: README, the site pages, and the
post-login page in oauth.ts.

Left alone on purpose:
  - scripts/seed-test-task.ts runs the locally built bin during development,
    where @latest would pull the registry copy and defeat the point;
  - the `npx github:Barneyjm/givework.dev …` branch-install path, which never
    touches the registry.

test/run-target.test.ts asserts these strings, so it moves in lockstep.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WoAJRWLbAW5pakUUzEzcjV
@Barneyjm
Barneyjm merged commit 96c51f9 into main Aug 24, 2026
6 checks 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