Skip to content

v0.9.0

Choose a tag to compare

@boriskaiser boriskaiser released this 13 Aug 12:48
· 82 commits to main since this release
f3208c6

Added

  • refs tells you when a newer version is published. refs sync and refs doctor ask npm at most
    once a day and cache the answer; refs sync mentions a newer release in its warnings, and
    refs doctor reports it as a cli-update check. refs --version is untouched — it stays exactly
    one version line on stdout, because the skill's capability gate and any script parse it.

    Both switches live in [updates] in config.toml and default to on: check governs the registry
    request everywhere, notify the routine path only. notify = false with check = true is
    "don't interrupt me, but answer when I ask" — refs sync neither asks nor mentions, refs doctor
    still does both. REFS_UPDATE_CHECK overrides check (0 off, 1 on), and the check is off in
    CI. The table is absent from a config that wants the defaults, and refs never writes one.

    Nothing about it is load-bearing: an unreachable registry, a malformed answer or an unwritable
    cache all mean "we don't know" and are never reported as a fault. The registry host is hardcoded
    rather than read from npm configuration, only a plain x.y.z is accepted from the response, and
    the update command is printed for you to run — refs does not install itself.

Fixed

  • A ref can be recorded without a tag_format. Finalizing an add used to reject a proposal whose
    tag_format_candidate was null, which left one option for a repository that publishes no tags:
    invent a convention. A real user hit this and was asked to confirm v{version} for two
    repositories that have no tags at all — a claim nobody had verified, written into config.toml
    where later agents read it as fact. The candidate now survives finalize as an absent field.

    refs tag is the only command that reads it, and it exits 3 (validation) when there is none,
    naming the ref — or the package, with the --package form of the fix. The distinction from 4
    carries information: 3 means this ref cannot resolve any version, 4 means this particular
    version was never tagged. The skill's add flow gained an explicit branch for the null case, so
    an agent reports the absence instead of proposing something to fill the gap.

    A format already recorded can only be removed by editing config.toml directly; refs edit can
    set one but has no way to unset it.