Skip to content

Releases: dadwritestech/thisisfine

v0.2.0: promise everything

Choose a tag to compare

@dadwritestech dadwritestech released this 08 Oct 19:34
99b8495

thisisfine 0.2.0: promise everything, not just pages.

Until now a promise was a browser check. Now it can be about an HTTP API or a command-line tool, and the check is written in the language your project already uses:

Your project The check Runs on
A web app .thisisfine/checks/3-badge.spec.ts Playwright, in a real browser
An HTTP API, in Python .thisisfine/checks/4-expired-token.py pytest, in thisisfine's own venv
A CLI, in Go .thisisfine/checks/5-dry-run/check_test.go go test, in thisisfine's own module

JS/TS projects get request and run fixtures in .spec.ts for the same thing.

What's new

  • Checks are black-box: they call your API over HTTP or run your CLI as a process. A check that imports your code is refused, so it can't be satisfied by a mock.
  • Evidence instead of screenshots: thisisfine records what each check sent and what came back, and shows you both sides (with the fix, and without) before you say "y".
  • init sets up only what your project needs: Playwright for web apps, a pytest venv for Python, a Go module for Go. It detects Go's cmd/<name>, a package bin, Django, Flask and FastAPI as well as Next.js and Vite.
  • .thisisfine/config.json gains cli (what checks run) and build (runs before the app starts or the CLI runs, in both your tree and the proof's).
  • The guard treats a locked Go check as its whole directory.
  • The GitHub Action installs only what your committed checks need, and says so if Go checks need actions/setup-go.
  • Two runnable examples, each broken and caught in CI on Ubuntu and Windows: a Python API whose expired tokens got in, and a Go CLI whose --dry-run wrote anyway.

Upgrade

  • Claude Code: /plugin marketplace update thisisfine
  • npm: npm install -g @dadwritestech/thisisfine@0.2.0
  • CI: uses: dadwritestech/thisisfine@v0 picks it up automatically.

Existing browser promises and ledgers work unchanged.

v0.1.0

Choose a tag to compare

@dadwritestech dadwritestech released this 07 Oct 18:12

First release of thisisfine.

Your agent says "done" while your app is on fire. thisisfine turns every behaviour you said "y" to into a proven Playwright check, and won't let the agent finish a turn that breaks one.

Install

  • Claude Code: /plugin marketplace add dadwritestech/thisisfine, then /plugin install thisisfine@thisisfine
  • pi: pi install npm:@dadwritestech/thisisfine
  • Codex / any shell: npm install -g @dadwritestech/thisisfine

In CI
uses: dadwritestech/thisisfine@v0 runs every promise in a real browser on each pull request, fails the job when one is broken, and posts a behaviour diff: what the PR locked, retired, or broke.

What's in 0.1.0

  • Promises locked only on a human's "y", signed with Ed25519, kept in an append-only ledger in git
  • Every check proven by breaking the app on purpose before it's locked
  • Stop hook that sends the agent back when a promise breaks
  • thisisfine verify audits every lock against the transcript and committed keys
  • GitHub Action with a PR behaviour diff, updated in place on each push