Repository navigation
Releases: boidwatch/cli
Releases · boidwatch/cli
Release list
v1.1.0
Changelog
- 3c1dae2ecf010248f334bd14cb56a7e57e0d1e4c Fix self-test workflow install on private repo (#32)
- 75ce076a0d89979d1e2511b14316a7b45c6311e4 Fix share rail spacer width
- 0baf4724ecdf3d74bc46c3c5866943e6b6183c5e Reserve layout space for the fixed share-rail so it can't cover the report
- 6018e8ce91a63b8e063cd5daa30b065ea5e5d15f Route CLI billing through web app
- 48d10f51b26b9be2b1ec296a0a6d305115fb7692 Sitemap: add blog article URL (best-usability-testing-tools-2026)
- fa184e547ee3637c2e284ed3e4587aead2f076ac agent growth hack: richer llms.txt + agent-only CTA (30 free credits)
- 44f7855d3df2ba09519aa243d09e1aa244e196e1 bd: init task tracking with bd CLI
- 05018a1bb584db5cdeb5d583bb20498c758a1739 billing: show beta-pricing strikethrough on credit packages (#29)
- 5e37d0c278567b37f1d7e7bcf467b66d2a26907b blog: add /blog route with first article (best usability testing tools 2026)
- be7d957f1fd1848167412db694566d6b67ec958b blog: fix post routing + canonicals (chi.Mount prefix), app robots.txt AI-crawler allows, /blog redirects, homepage JSON-LD
- 97e84fd08077fda05ff2704521d5893bb3750958 blog: rewrite best-usability-testing-tools guide (14 tools, evidence model, decision framework); date 2026-08-20
- a972da4ac3e83988a9fd1122ba20dd03cc8e4f8d blog: serve /blog on the apex via Pages Function instead of 301 to the app
- 6de057b2a428aab78981047714c449f3df978bc1 browserpool: raise Chrome container limits to 2GB / 2 CPU
- 2fb5849fc9724805ccd4a30efd80674922be18f0 chore(growth): remove superseded outreach intermediates, keep learnings (#46)
- 1e6d96b5a1f241c85fae9889f8872c344d6d8ec7 chrome pool: pin image default + correct docs (stop recommending :latest)
- b5389c7e79a11aa5482882c84c2344cf2c0686c6 ci(api-types): compare DTO field names, not only type names
- 059a53bf7e6f4a4b4e1a678170fcee8ab284b648 ci(deploy): run the Postgres-backed tests on the merge commit
- 1f1f68698f9fd62051872c23d2328d02719de7d1 ci: automated, versioned deploy pipeline (replace manual on-box builds) (#25)
- 3e61069715e5c5ead7229c42b281e2c3a792c79e ci: drop the MinIO container from the smoke and deploy test jobs
- ba198cada144d8eede1dc11d1192a7ab694edec4 ci: move self-test specimen off the Bot-Fight-Mode zone; name the block cause
- e006442c68a7a7acfcc9b1b0346091ed5ffed8fe ci: point pnpm/action-setup at web/package.json for the pnpm pin (#26)
- dc8575d3148bcd66e350ade743fba21385fcbd99 de-slop OG + meta descriptions: cut 43%, kill AI verb lists and persuasion
- be8121c601f2bdaf07bdf682c80de8ecead6aa69 docs(cli): GHCR public image is optional, not a launch blocker (#27)
- ff9d7762a9987553a4af187019d7fc3758bd3030 docs(cli): pin example templates to the init scaffold's compact --json --quick form
- 9301e05d43506c16cc1eb5140b065e829bad05b9 docs(cli): read entry_block where the CLI prints it; move cookbook recipes to --json
- 5c2508257e3ba92546a2a55eed25f7a0cc48ba93 docs(growth): add end-to-end runbook overview, reconcile share-link flow (#24)
- d781fad2e3746e29fddfdceebf24a0ce82172860 docs(growth): add reply playbook from live LinkedIn outreach results (#57)
- 9b785de8decb9a1fe091c1f65db231a96dc78f1d docs(jobs): name every table retention cleanup deletes from
- ea057068e3b63ebe11328fe44e3b141e1d41bc71 docs(llms): make the first call print JSON and name the real envelope fields
- ce10ed109488e5b5ef0b8b3b687eb1d022b6df9a docs(llms): serve one canonical agent doc and parse its commands in CI
- 1ce5e8626043b21314538008a765352dcae781cc docs(retro): add QA-survey findings — assertion-free self-test, untested review pkg (#49)
- cd86c846c61993641c2f818d1b957698cac6a295 feat(action): composite GitHub Action for UX checks in CI
- 652001aab9188d76b4ce0f0f7410324452647775 feat(activation): retryable failed runs + server-side founder alerts (#44)
- df41fa0256f3c8d9e69999dfa22736cfb34f31f4 feat(agent): external-site links are out of scope; embed failures reported neutrally (#50)
- ed6d79333c899eeccba316e36b66951cae758171 feat(analytics): PostHog event wiring + Telegram webhook bridge (Phase 1+2) (#38)
- 21eb474c3be5e0f7e02629f4f19133e8ad3a231a feat(analytics): first-party PostHog reverse proxy at /ingest (#37)
- 444c15e60be8459006c409a09e9335c8c392f80f feat(api): add apitypes.ExplorationSummary, the compact exploration view
- d7e0b7e9135eda7d86e99f60ea370b4ca157e879 feat(api): agent-actionable 402 + url filter on run listing
- 047081977a89f66005edc3b078db30d5dd9929c8 feat(api): serve apitypes.ExplorationSummary as format=summary for exploration runs
- ecdc1960ae719c4b4ca33c5775cff1f7a689cb93 feat(cli): --quick preset, CI assertions, run deltas, and MCP server
- e39f54e7d1d37f2a4b36c0ded59b1472fd01246f feat(cli): AI agent ergonomics — tools schema, json error hints, stdin input, agent-setup
- e463c55b204168490cbf4aca123b42ec80fbc848 feat(llm): count LLM tokens, calls and latency per attempt
- 47257582d4265def33dd55eccfb439cb6a4f5bbe feat(marketing): add Pricing nav links to topbar + footer
- 8605458c96d1dbf83842baeac8fdffb21320cd55 feat(marketing): reposition landing for agencies/CRO + founding Agency tier (#45)
- 0f6a4680a40d8a7ed5558a51bf172dd56b6b2040 feat(share): inject "Powered by Boidwatch" CTA at serve time on /r/:token (#28)
- 7fccd62a954e40f3bd92fcbc050fcec7d95b5105 feat(share): viral share surface — conversion rail, OG Augury Card, SPA share panel (#41)
- 14d10d6291d7d0bea1120fb94adb34459c24a2b0 feat(web): in-context checkout rail for blocked and low-balance users
- 9b26d47b77c87e8ea407094149bdb208beb5bd59 feat: AI agent adoption — boidwatch init, docs, CI, scaffold examples
- 424a46824080b2d15107f63ed0295de47186c1c8 feat: add /llms.txt endpoint for AI crawler discovery
- e0baca516d5eaa4d0c51e2d472ffec06a2b9058e feat: add 5 missing stealth patches (webgl, vendor, codecs, chrome.app, outerdims)
- 23e38c215e26bf7f81f982cf976001b21f943898 feat: add CHROME_PROXY_URL support for residential proxy routing
- 968deaa6981353e5c54f6e9fecfbce9627c36102 feat: add Cloudflare anti-detection stealth layer for headless Chrome personas
- 2d6187f367a308fd5cb13eaf9d9925746c868276 feat: add llms.txt to marketing site
- 5fea8d5f7850faa376555f74c6010a067c35cc33 feat: beta analytics stack + 33% pricing strikethrough + doc alignment (#30)
- ed7e0be1d87e9d061e88412b1867ef9dcc8b050e feat: direct Telegram alerts for runs, purchases, shares
- 75c82f63c2b9c863ee5204d321d5cd2eaa2ad9ea feat: instrument sample-report activation funnel
- d67d448a689d5d5a3f364ce635318f0a21146c80 feat: pre-seed sample report on dashboard to fix 50% activation cliff
- 07c2a802ebc3b693feb6cfc9e12c51e4a271e787 feat: proxy auth via CDP Fetch.authRequired (Chrome can't inline HTTP proxy credentials)
- f2a94046e4861d7cf9b56ce1ff10c6edcbfc7e94 feat: proxy relay for Webshare HTTP proxies (Chrome can't auth directly)
- f12f7fd05aa2e3baa102d0acf70447cfec391556 feat: public run share links (GET /r/:token) for anonymous report sharing (#23)
- 9bc573df6a7de0023eb311f31d5936773b0a6d2f feat: resolve /terms and /privacy on the app origin; consent at signup
- 73aa413eaac2d73c87500e35c044ff3643dde213 feat: welcome email on signup (SendWelcome) for email-verify and OAuth paths
- a43a91ace81672a9d365fe66f704b822dcec6db4 fix(action): download the GoReleaser archive and read the compact view
- 6e35e1c563c6385a11a41f3091d7f8f4b617b137 fix(action): fail a run no persona got past or whose gap analysis failed
- 8943b8c2d41d729b349759ef9fad1718e4c02295 fix(action): repair gate parsing and CI stubs
- 6baf77ac8f346479b05ee00795c1ddd4df65a5d2 fix(agent): normalize gap severity at the LLM boundary, failing closed
- e42dc9550eb8f44c2ec8e2f92c4e8ed48ed23a20 fix(agent): skip DOM snapshots and network capture when nothing reads them
- 424b78709cb493543c18b38ca842176664612b16 fix(agent): stop misreporting new-tab links as broken (#48)
- 927f8fd71ca953e7c8dcbd00b4b727f9fcbfb7b7 fix(agent): wait for a navigation slot before starting the agent clock
- ec008b971e6e23e7af48c0e13bd20632ae77c5a8 fix(analytics): capture initial $pageview + $pageleave in PostHog (#31)
- 75dad68bddaf450ab2593d3efced97a37ea4e2d8 fix(api): answer unknown /v1 routes with the error envelope
- c703e86a595df94eb367f6268a56919eb06a5bb2 fix(api): bound the unknown-field warn log on run create
- 9f92d91a5d3a05d52b00074f05ca171b925c706b fix(api): estimate run time from the agent timeout; throttle last_used_at
- 361efc76fc01883e8560e3bcf18fab330a420681 fix(api): hide the synthesized sample run from API-key principals
- d6a86031f0f63dc62cf294a6621efea535aab588 fix(api): make run cancel idempotent and never 500 on a terminal race
- 16cd81bf2cab9a46a46a200241da391abca82154 fix(api): make the run create boundary safe for raw-HTTP agents
- 6b21af573ea66004015e86793adb067af056edaa fix(api): never orphan an idempotency claim on panic or disconnect
- ad5f82f57a8b5ffc7af9d4401f1891140199ba51 fix(api): write every error envelope through middleware.WriteError
- 9618fd09fb8d1f12473293a9fdcd3bf48d4ecaad fix(browserpool): scale idle Chrome instances down from a real idle-since time
- f0b4c422aaff46b01f7aec4c49629a941181ce4a fix(cli): bound --wait, back off, and poll through transient errors
- 03c1c1d55cda5f869bac25ffea24178afdbc1adc fix(cli): exit 9 on an entry-blocked run with no --assert flag
- e922097b3c9fb442774b7024c0dc2692300dea8b fix(cli): make boidwatch init scaffold a quick, bounded check that parses
- 8ea31493e76061a375e6a650ba55ac59f22ff2cc fix(cli): name the run and a resume command in every failure after create
- a12f1164f2e8dd1c6d27b99aa0ddda8bf05b124a fix(cli): name the run in every failure after create; add run results --wait
- 47132f1aea02d733c1aca6cb5e4de1699e466265 fix(cli): one failure shape for every CLI error, found with errors.As
- b75e5513f71f0ea54d01a46f531896342d8f4df5 fix(cli): point exit 7, 8 and 130 at the error's next command
- 946230c8854ce0208089eb141efc156d37479237 fix(cli): read run create target-site auth from a file or the environment
- 534969a8bf254f1c57a0d5265c823bf15cd7a592 fix(cli): read the server summary projection for checks in every mode
...
v1.0.0
Changelog
- 9c674462a1a3581cdd0e9d64e2f252901eac2cef Disambiguate session terminology in exploration CLI summary (#12)
- 52d89da031542466265f54eb32e68eaa5cfe832a Harden beta launch readiness
- 9281fec5d618428357ad304298b70ab39bce5be0 Implement credit-based billing
- 8f719074f7322539bafe44fd31b6783a86ac1e5d Merge remote-tracking branch 'origin/main' into fix/rate-limit-migration-pk-order
- 144be00a0b4f33e138e93518cfd67deaf88910ff Merge: /v1/me, /v1/api-keys, /v1/feedback, /v1/auth handlers (100% func coverage on new files)
- 05b3442d3a5495bb563668320a0031429e024f25 Merge: internal/webapp embed package (88.9% coverage)
- 1ad2e9d02692ecf660095239355804f73042c047 Merge: internal/webapp embed package (88.9% coverage)
- 1072d2c74069ad391a32dbbb244444b965ea015a Merge: web/ SPA scaffold (Vite 6 + React 19 + TanStack Router; 16 tests passing)
- 4cbb973b414968889cf4e1e28415cfdd750b5dcd Scope public CLI to exploration-only and harden for agent use (#7)
- f4106d53d17899cb004a8881505a7c6ac2f4c159 build(release): add Dockerfile.cli for GHCR publish
- 40e5f2d167fe64d2a9ac43217edb9d1bda58e413 build(release): add GoReleaser config and release workflow for the public CLI
- b533e9bf62c72296f9d3b18fee24d88cbf6c3f17 build(release): add install.sh with SHA-256 verification
- 33df0fae19cd0fa5e5680dae7073508ccf9aeb44 build(release): wire Homebrew tap into GoReleaser (item 10/10)
- 6edf0c4a067e9339fa60ed2fa710892af922ae6c build: add Makefile (web pipeline + go build/test/vet)
- 8b9966c13513281103e77cbbdb89cabda0c9de6e chore(cli): write run reports under results/ instead of repo root
- 620011f2429835e16190681f92773d38f8811c58 chore(config): switch default LLM to moonshotai/kimi-k2.6
- a16aab9083eaa91c60c725e67fd5209fb910dd05 chore(dev): add MinIO + bucket init to docker-compose
- 8302e8f62651ecb8fc5a1ff996e344c84ddc6481 chore(docs): rename doc/ to docs/ and reorganize structure
- 9f608bac0c70ae00c607045f7148a698526834f3 ci: run MinIO as a container step, not a service
- c96480683d093632fd45c0acd800db61ea431c84 ci: stub dist title to match webapp test expectation
- 1c3c6f943717bde74233ca6f435926702783d60e ci: stub embedded SPA dist so Go jobs can build
- 145ec0b671aac95cb3be07f275602a41d4d25807 ci: use pgvector/pgvector:pg16 for the smoke Postgres
- 0ed57e9c2900ae8277cc45b18d870eb66955da5c copy(marketing): lean the landing into real Census-sampled personas
- 7ed6924f1fd5e23e9e76ab9f338166020019c647 docs(checklist): finalize launch-readiness status (9/10 shipped)
- 3fc97a5f99c118ce498a628623319acfb346927e docs(checklist): mark README quickstart shipped (item 9/10)
- 87913da629f77814a5f9925c40dd6c0b66cb179f docs(comparison): document severityRank's full mapping
- 077f064cfb0fcda88a96f3d051e85ceea331b01f docs(comparison): refresh CompareExploration doc comment
- 7695ffedbcdd2a764a43e1152edb007299008524 docs(copy): align glossary on "persona" + add demographic credibility line
- 998b77caf84a2b55ecd1bab3d7577ca8470848dd docs(deploy): add shared-VPS rebuild + dual-app deploy runbooks
- e4fb532e7775f71b43fed6de781ab3422a345974 docs(deploy): firewall, sizing, systemd backup timer, Stripe/Resend setup
- 253d77ddffbd91fabe92e522788c4acdc0a59d39 docs(design): seed PRODUCT.md and DESIGN.md for the Boidwatch direction
- 6c744cda9e54e0d79f9e866fb2f7039d99d763c1 docs(plan): add implementation plan for PM-readable exploration report
- 26c8bd9f32249c5e2d962d99138f573f0a8960cf docs(readme): lead with public CLI quickstart (sub-60-second flow)
- 2b89389c3e58bc2eda247f35747205d7e901d1b9 docs(spec): add PM-readable exploration report summary design
- 70f876e1ff52c747ac1a2c9252c9b77b74eb0194 docs(types): document RunSummary.TopGaps cap and ordering
- cbd2b41436954199216c5062801855436d01dceb feat(agent): persist and render key-moment screenshots in exploration
- 088d66ba94e95740ce526828a1a17ecad7408290 feat(api): add GET /v1/runs list endpoint
- 64e797450791c657f924dfe3c913c35567a52c83 feat(api): add POST /v1/runs/preview for dry-run cost preview
- 6b0bb44641f478756c10c6fab5e8d88925a066e9 feat(api): server-side Idempotency-Key dedup on mutating POSTs
- cb5378ee044f9385b81c9930b0979f6c4537fb32 feat(api): support format=summary and format=html on run results
- 3717c249e4c66a6028bff0a8712a917652f81450 feat(auth): Google + GitHub OAuth sign-in
- e533123b8ee229497205f0df312785c07399dff1 feat(backend): auto-refund failed runs, account-deletion/logout-all endpoints, IP rate-limit auth routes
- a06b7e244934fe3d2b3513858ac6dd980fbaf298 feat(billing): 2× credit multiplier for credentialed runs
- 2a8e02daca9faa859548af77b69540368b61c95c feat(ci): add API DTO drift guard (check-api-types) — the spec's missing stopgap
- fb9b97e15d3d7b39333cb354858d2c22ffe41602 feat(cli): split public HTTPS-only flockate CLI from flockate-server
- 3d2543e230ba83b8bc4ba8cbb095e506afd73b9f feat(comparison): build run summary with top-gap selection
- d1fe2344824b73993424b0a3daacf29850398de7 feat(comparison): enrich archetype breakdowns with persona context
- fc2c8d8d181b154ffbf28ad327198aa5ada01ab9 feat(comparison): refine HTML report styling and use template renderer
- 1710dfbed60889a055f5ce2cc41805f33d75cf28 feat(comparison): render PM summary and archetype context in exploration report
- a1d0a05ad8311b8f6045c2878cffbc7cd65890cd feat(comparison): wire enrichment and summary into CompareExploration
- d1c78526814f7c1d5f890c4637307f310b5788c6 feat(deploy): legal pages, SEO assets, and single-VPS deploy runbook
- 07f294da03bca1ce57997122d9ac9cc04fbf8a92 feat(deploy): off-site R2 Postgres backups + monitoring guidance
- ec3039baf581eda687720cef05d215ef6bee9e86 feat(exploration): add exploration eval mode with cognition capture and perception summaries
- b5b5f206a2d14d0d87d75a5c6d66fb85bd19a6d2 feat(llm): add OpenRouter provider and per-run model override
- e9fb1b2180314fc5d75e321251b4d364df7f1e00 feat(marketing): add real-report showcase, clarify cards, fix funnel labels
- 8305768caee8860306bc7904238eeec51e667ac4 feat(marketing): re-skin the beta landing to the Boidwatch direction (Chunk 4b)
- 3369f69c861c9710ea535a598296b9da63c35503 feat(marketing): real boid identity on the landing — flock, accents, persona funnel (Chunk 4d)
- e928efcb6c6b6d6e5631a6432ab1cc0eda07abad feat(marketing): static beta landing page + SPA email hand-off
- d8f53e2757f820a5b65d369241567862f70ed55c feat(orchestrator): load personas for exploration enrichment
- d9b8f5b586c0c763fce2c71f03ed516514ae858d feat(persona): add curated archetype descriptions
- 29b1058c8828624d3823e7a8ddbcf0a7e2f4f3f2 feat(runs): credentialed runs capture screenshots by default + portable HTML export
- 49a89e7906e698ea9540e81ac65b82eb875db44a feat(server): Resend mailer, private metrics listener, model startup check
- eeb4c287595269a9ca7b1435d76e20696845a070 feat(web): /v1/billing/transactions handler + user/session/api-key store methods
- d380a8489d36467d62c97cf41a824376dc360901 feat(web): /v1/me, /v1/api-keys, /v1/feedback, /v1/auth/logout handlers + tests
- 1393635112922c565ccae0770c85a7db7a45d3ad feat(web): SPA scaffold (Vite + React + TanStack Router + login)
- 451cef586d7c7e00317ea0accb4b1626b318e314 feat(web): foundation for hosted web app (migrations + auth primitives + DTOs)
- 745b6e75a05260dd82c2dcb27f1564af971165e2 feat(web): full SPA pages + cartography brand identity
- 224407e93bc3b7fe7c8443b6f01f4a2ab4eb6d33 feat(web): internal/webapp embed + SPA history fallback + security headers
- 9776903b49486e56262338e3121f3d1bcc7b158f feat(web): live BoidField backdrop on Login and Dashboard heroes (Chunk 2)
- aa88cf5d8e03d0fae870475dd3e3a6f8addabf0b feat(web): magic-link signup + checkout session-only + auth regression tests
- bfb94b1db21f4bd7f414fde68941762339484299 feat(web): one-click "Sign in as demo" (FLOCKATE_DEMO_MODE)
- 180cc136b9a4140c7eb4722057f7b69bc37a03cb feat(web): open report screenshots in a host lightbox instead of new tab
- b41f8c2a69a12730377f2f1869064b1006ad5760 feat(web): persona-count slider on dashboard exploration form
- ed4a01a1d30cd97bd86a916216f3d9a7a48dffd0 feat(web): proxy report screenshots through API so iframe images render
- 820498f1b1c8ca3a144bdf8ee9f43140e418f8f7 feat(web): re-skin to cool-light boid identity (Chunk 1)
- 5863a67d26d8c8bf84cfd11ef2fdeb331ee9eb40 feat(web): reconcile run-state labels, add PostHog, wire account controls
- 8419c8c20ec8504796711738c3a2dd26e60f10da feat(web): show signed-in user identity in the top rail
- c3054cd9d60865463ba5bd058064b3d3f1d45696 feat(web): wire web frontend routes + SPA mount + AnyAuth/CSRF middleware
- b76a7ef0ec8187aec0dbd03d40420cc05186c448 feat(web,marketing): add beta badges + light polish
- 7dc8dda14269291f2986823a4c67124f0992947f feat: add session context and reviewer foundations
- 091cff7fbdb43003d5b3403b0c3e6c97175f4095 feat: add session replay runner
- 2e0eac59dc3868639ca002550d0a838e7c4e5869 feat: bootstrap flockgate backend runtime
- 50b8408f75796831a86588d6e3ebdbcdbeded605 feat: complete autonoma graft — site profiles, replay, run-context
- b6642ea27a0979abfc90bf4a2de8e2f1ad83117a fix(agent): cap browser actions at 15s so a stuck selector cannot stall the agent
- 368334ab67a4faa01b5393deb33c47bddd2aa200 fix(agent): cap observation capture at 30s so a stuck CDP call cannot stall the agent
- be07c73db95925562115c34bbc96de08137e8f62 fix(agent): enforce per-step timeout on observation and action
- ee3d28faaffe57972405d89b06bfe968c65caaee fix(agent): repair credential injector — Evaluate type mismatch skipped every login
- 9d9aeaa5cede5a74bacb49d58b539e0a0c31e150 fix(agent): tighten browser-crash detection and use stdlib
- 2f08bf06c07a8d53a77d66717a3737456efbd8c8 fix(api): COALESCE nullable run columns so GetRun/ListRuns survive NULLs
- a6557513b7014df8520558878e76a12c44583e18 fix(api): cap request body and header sizes
- 8a757cfced04c102cc406b4808351ef10b632c54 fix(billing): auto-refund orchestrator timeouts; test account + IP-limit paths
- 731f34008aa3e39414e3a71edb6b7dae3b4b5213 fix(billing): close auth-multiplier arbitrage for referenced site-pro...