Skip to content

v0.2.0

Choose a tag to compare

@i098 i098 released this 09 Oct 23:26
Immutable release. Only release title and notes can be modified.
13707a3

Added

  • README screenshot of a finished host, captured from demo repositories (#35).
  • Git conventions and branch rules in CONTRIBUTING.md, issue forms, a pull request template, SUPPORT.md, and CODEOWNERS for .github/ (#47).
  • Sponsor button on the repository page, from .github/FUNDING.yml, that opens the i098 GitHub Sponsors profile (#59).
  • Optional GitHub board (factory.github_board): a user timer mirrors Firstmate work items to issues in a repository you choose, keeps a Project Status field in step (queued, in progress, in review, done), and posts new status lines as batched issue comments. The new-host questions ask whether to turn it on; without the key the host makes no GitHub calls for it (#45).
  • README: a centered header with a badge row and short links, a Why Crewship list, a collapsed Features list, a Get a machine part with sizing, a Sponsors section, and a star-history chart; SECURITY.md, CODE_OF_CONDUCT.md, and a 1280x640 social preview image (#39).
  • skills/public/ (committed) and skills/private/ (git-ignored) skill folders, installed for omp and Claude Code by the agents profile; a private skill wins over a public one of the same name, and skills added by hand are never touched (#56).
  • Each release publishes the worker container image to the GitHub Container Registry as ghcr.io/i098/crewship:X.Y.Z and :latest, so the repository page lists it under Packages (#54).
  • README sponsor list: a daily sponsors workflow writes the GitHub Sponsors of i098 into the Sponsors section and opens one pull request when the list changes; while there are no sponsors, the "be the first" line stays (#68).
  • One-command install for a fresh Ubuntu machine: install.sh (curl … | bash) and the crewship npm package (npx crewship), published from each release with npm trusted publishing (#40).

Changed

  • The license is now FSL-1.1-Apache-2.0 (SPDX FSL-1.1-ALv2), not MIT: each version becomes Apache 2.0 two years after its release, and releases up to and including v0.1.0 stay MIT (#50).
  • Breaking: the fleet guard units are now crewship-*, not flotilla-*; apply stops and deletes the old units, except that the old shared Supabase unit is deleted without being stopped, so the shared stack keeps running through the rename. The Docker guard is general and runs every hour: it removes stopped containers 24 h after they exit and reports running ones 48 h old (fixed), and it never touches a container with the crewship.keep label or a restart policy, volumes or images. It no longer removes second Supabase stacks; docker-guard-allow.txt is deleted. Tune the stopped age with fleet.docker_guard.stopped_hours (#43).
  • Breaking: renamed the entry points and scripts to nautical names, and the old names no longer exist: bootstrap.sh is onboard.sh; factory is ship.sh, with init, validate, plan, apply, doctor now dock, inspect, chart, launch, survey; scripts/factory.py, install_tools.py, push-super-env.sh, fetch-super-env.sh are now ship.py, provisions.py, stow-secrets.sh, fetch-secrets.sh. Update notes and scripts that use the old commands (#44).
  • Renamed the project to Crewship; the repository is now i098/Crewship (#38).
  • README screenshot now shows a real Herdr session with Firstmate, with the other project names and agent text changed to generic examples (#35).

Fixed

  • scripts/stow-secrets.sh no longer fails with maximum_secrets_exceeded once super.env has more than 100 variables: it stores the whole file in a few chunks instead of one secret per variable, and it deletes the per-variable secrets the chunks replace. On a full store it deletes just enough of them before creating the chunks, so fetches can fail for a few seconds during that one push (#58).
  • The worker image and the compose backing services pull from mirror.gcr.io, Google's Docker Hub mirror, so the CI image build no longer fails on Docker Hub's anonymous pull limit (429 Too Many Requests); the images are the same official ones (#63).
  • The iMessage bridge no longer loses messages when the Photon service is down: every send and tapback, including the desk's and the "firstmate did not get that" reply, goes to a durable outbox that retries transient errors with backoff and keeps the order, failed attachment downloads are retried and their note is filed again with the saved path, an item that can never pass moves to a dead-letter folder instead of blocking the queue, typing errors never fail a send, and an UNAVAILABLE reply is logged as one line (#61).
  • The iMessage bridge no longer drops the owner's edited texts: each edit becomes a new inbox note, [edited] <new text> (was: <old text>), that wakes Firstmate; when the bridge does not know the old text, the note says so (#80).