Skip to content

v1.18.0 — new-coverage notes, Astro support, recursive stack detection

Latest

Choose a tag to compare

@fullymiddleaged fullymiddleaged released this 29 Aug 09:46
· 2 commits to main since this release

Added

  • Clawness tells you when an update brings rule coverage your project can use.
    When Clawness gains detection or rules for a stack you already work in, those rules
    start applying by themselves — but nothing used to say so, and a capability you were
    waiting for could sit unnoticed. On the first session after an update, Clawness now
    compares what your project matches against what it matched before and names anything
    new. It stays silent on a project's first ever session (everything is new then), on
    every session where the version hasn't changed, and once a domain has been announced.
    It rides the existing project scan, so it costs no extra work. Silence it with
    CLAW_NO_UPGRADE_NOTE=1.

  • Astro projects are now recognised, with a rule set of their own. An astro.config.*
    file or an astro dependency detects the project as Astro (and TypeScript, and CSS —
    scoped <style> blocks in a component are invisible to a filename scan), the session
    note reads the version ("Astro 5.2"), and seven new rules cover island hydration
    directives, state across islands, content collections, static vs server output,
    astro:env secrets, scoped styles, and the server-only frontmatter fence.

Fixed

  • Detection by file extension now sees your whole project, not just its top folder.
    Rules for a language were only triggered when a matching file sat in the project root,
    so a site with its stylesheets in src/styles/ got no CSS rules, and the same held for
    *.py, *.sh, *.sql, *.tex and *.jl. Clawness now walks the project (skipping
    node_modules, build output and other vendored trees, bounded so it stays a few
    milliseconds) and detects those files wherever they live. Expect some projects to start
    matching domains they never did before — that is the bug being fixed. A handful of
    weak signals stay root-only on purpose: a main.py at the top of a project suggests a
    web app, a main.py three folders down does not.

Changed

  • Ranked rules must now match on a rule's curated fields, not just its prose. Rules
    are indexed twice: once over everything, and once over only the hand-written
    tags/triggers/when. A rule that matches your prompt purely through an ordinary
    word buried in its explanation is no longer injected — the case that put a Julia
    dispatch rule in front of someone editing an Astro site. Tune with CLAW_MIN_CURATED
    (default 0.03); CLAW_MIN_RELEVANCE=0 disables it along with the other floors.
  • Rules for narrow stacks stay out of projects that show no sign of them. The higher
    relevance bar for cfd/julia/fortran/matlab/r previously applied only when Clawness had
    recognised your stack; a project it couldn't identify — one in a subdirectory, say — got
    no filtering at all. "Nothing detected" now means "not Fortran" rather than "no opinion".
    Asking about those languages directly still works, and their rules are unaffected in
    their own projects.