Repository navigation
Releases: ScientiaCapital/fleetwatch
Releases · ScientiaCapital/fleetwatch
Release list
Fleetwatch 0.1.0
Updating
-
One-line install (Mac mini, Raspberry Pi): run the install line again. It updates
~/fleetwatch, keeps
your.env, sign-in and history, and restarts the service.curl -fsSL https://raw.githubusercontent.com/ScientiaCapital/fleetwatch/main/install.sh | bash -
Docker:
docker compose pull && docker compose up -d. -
Check it:
fleetwatch doctorshows the new version on its first line.
Verify the image came from this repository's CI:
gh attestation verify oci://ghcr.io/scientiacapital/fleetwatch:<version> --owner ScientiaCapitalWhat's Changed
Security
- security(install): pin the uv installer and default to the newest release tag by @ScientiaCapital in #70
- security(docker): pin the uv base image by digest by @ScientiaCapital in #71
- security(auth): refresh the token one process at a time by @ScientiaCapital in #72
- security(doctor): say who can read the Keychain token, and give Fleetwatch its own macOS user by @ScientiaCapital in #75
- security(auth): revoke the token on logout when Epiphan offers it (#60) by @ScientiaCapital in #77
- feat(state): store proposals and single-use approvals bound to exact arguments by @ScientiaCapital in #89
- feat(policy): describe proposable changes and accept autonomy: propose by @ScientiaCapital in #90
- feat(policy): real argument schemas for the six proposable tools by @ScientiaCapital in #92
- test(redaction): share the Anthropic key case with the Kit by @ScientiaCapital in #91
- feat(epiphan): a separate write executor that runs one approved change, once by @ScientiaCapital in #93
- feat(assistant): Claude answers fleet questions and can only propose changes by @ScientiaCapital in #94
- feat(approve): a local page where a person approves one change at a time by @ScientiaCapital in #95
- security(executor): fail closed without a write fence and allowlist sandbox devices by @ScientiaCapital in #102
- fix(state): hash-chain the audit log, bind the reason, read strictly, close the raw session by @ScientiaCapital in #103
- security(executor): validate the allowlist and harden the sandbox sign-in check by @ScientiaCapital in #106
- fix(approve): harden the approval page lockout, secret delivery and queue limits by @ScientiaCapital in #109
- fix(approve): show hidden characters in the reason and survive a lone surrogate by @ScientiaCapital in #108
- fix(approve): name --no-ai in the chat note and say when no schedule came back by @ScientiaCapital in #110
New
- feat(replay): capture live tool results as a replay sample (--capture DIR) by @ScientiaCapital in #67
- feat(replay): add a calm fixture for a screen in a quiet room by @ScientiaCapital in #69
- feat(approve): chat box on the approval page asks the assistant by @ScientiaCapital in #97
- feat(approve): show names for stream, event and channel targets by @ScientiaCapital in #104
- feat(replay): anonymize a capture into a fixture set that is safe to share by @ScientiaCapital in #113
Fixes
- fix(install): update from one release tag to a newer one by @ScientiaCapital in #79
- fix(digest): say what an offline EC20 camera really affects by @ScientiaCapital in #80
- fix(readiness): post again when a room's verdict changes before the event by @ScientiaCapital in #81
- fix(policy): per-action disruptive rules and per-tool lead time by @ScientiaCapital in #105
- fix(epiphan): read a result that doesn't match Epiphan's own output schema by @ScientiaCapital in #111
- fix(parse): read the status list a live system-status call returns by @ScientiaCapital in #112
- fix(notify): label console output as a preview, not a post by @ScientiaCapital in #117
- fix(deploy): flush printed digests under launchd and systemd by @ScientiaCapital in #116
- fix(ci): attest the image under its lower-case GHCR name by @ScientiaCapital in #118
Docs
- docs(agents): keep internal plans out of the public repo by @ScientiaCapital in #66
- docs(readme): Epiphan writing style, language switcher, calm demo and --capture by @ScientiaCapital in #73
- docs: follow the Epiphan writing style in SECURITY, CONTRIBUTING and the docs site by @ScientiaCapital in #74
- docs(readme): add an Updating section in English and Spanish (#14) by @ScientiaCapital in #76
- docs: make README, CLAUDE.md and AGENTS.md match what main does today by @ScientiaCapital in #83
- docs: say exactly what read-only and redaction cover by @ScientiaCapital in #87
- docs(design): v0.2 assistant that proposes changes a person approves by @ScientiaCapital in #86
- docs(v0.2): trust model and approved-writes flow by @ScientiaCapital in #96
- docs: bring CLAUDE.md and AGENTS.md up to what main does today by @ScientiaCapital in #115
- docs(approve): describe the lockout, the secret file, the queue and deny all by @ScientiaCapital in #114
- docs: the soak is running; list the Sprint 3 review findings by @ScientiaCapital in #125
Everything else
- chore(auth): remove the legacy token file once the new store holds a token by @ScientiaCapital in #68
- ci: fix pipefail, arm64 builds, latest tag, and the Python badge by @ScientiaCapital in #84
- ci: mark hyphenated tags as pre-releases on GitHub by @ScientiaCapital in #88
- test(assistant): injection corpus for hostile fleet names by @ScientiaCapital in #107
- fix(redact): mask dotted, spaced and paired secret names and webhook URLs by @ScientiaCapital in #128
- fix(run): count a stray cancel from the MCP client as a failed beat by @ScientiaCapital in #130
- docs: the soak is done; the agent is stopped and signed out by @ScientiaCapital in #131
- feat(cli): add fleetwatch connect, a guided first run by @ScientiaCapital in #132
- docs: the Now section names fleetwatch connect by @ScientiaCapital in #133
- docs: fix stale status, sign-in and link text; point installer at connect by @ScientiaCapital in #136
- docs: add a command reference and document the v0.2 propose rules by @ScientiaCapital in #137
- test: cover room state, the approval read, readiness rules and the closed-client guard by @ScientiaCapital in #138
- docs: document the release steps and supported versions; test the version matches by @ScientiaCapital in #141
- refactor: one Priority.rank, redacted failed-read log, reasons on bare noqa by @ScientiaCapital in #139
- refactor(scanner): split scan() into one helper per rule by @ScientiaCapital in #140
- feat(policy): put the group tools on the read and write lists; design the group fence by @ScientiaCapital in #142
- fix(readiness): say a room is already recording before its event starts by @ScientiaCapital in #143
- docs: the Now section names the group tools and their design by @ScientiaCapital in #144
Full Changelog: https://github.com/ScientiaCapital/fleetwatch/commits/v0.1.0