v0.1.0
First tagged release: the whole app as it stands, published for Windows, macOS
and Linux.
Added
- Fleet dashboard - every git repo under the configured roots in one window:
dirty/behind/stale at a glance, with fetch, pull, open-editor, open-terminal
and run-command from the row. - Git depth - staging per file, commit, amend, push, pull, merge and rebase
against a diverged upstream, combined diff view, stash apply/drop, branch
create/delete, history and blame-adjacent detail panes. - Conflict recovery - a conflicted merge or rebase is kept, not thrown away:
resolve each file to either side (rebase-aware) or by hand, then continue or
abort - all from the commit panel, without leaving for a terminal. - Project management - manual projects, tasks with status/progress/order,
deadlines, tags, a cross-project Agenda, and a Today view. - Project intelligence - an AI brief per project weighing GitHub CI/PR/issue
signals, a per-repo chat, and an agentic mode that can read, grep and run
commands under per-action approval. - Cross-repo agent - one question answered across every project at the root.
- Search - file-name and content search across repos, with per-project filter
chips and a Content/Files toggle. - Cloud sync (
cmd/fleetd) - GitHub OAuth identity and a per-user versioned
document store with Last-Write-Wins sync, deployed on Fly.io + Neon Postgres.
Clone a synced-but-uncloned project, export local data, delete the account. - Editor picker - known editors auto-detected on
PATH, with a Custom
command fallback. - Discoverability - light/dark theme, a command palette, first-run
onboarding, tag autocomplete, and a settings validation pass. - Server operability - Prometheus metrics on a token-gated
/metrics, Go
runtime metrics,/healthzand a rate-limited/readyzwired as the Fly
readiness check, graceful shutdown, request ids and panic recovery. - Backup restore - a record sync overwrote or deleted can be restored from
its backup in Settings; the restore re-pushes and wins on every device. - Import - an exported data file can be imported back: projects and intel are
upserted (local-only records are never deleted) and re-pushed to win on every
device. - Force-delete a branch - when git refuses to delete an unmerged branch, the
branch menu offers a force delete behind a confirm. - Case-insensitive search - content search now ignores case by default, with
an "Aa" toggle to match case. - Sort persistence - the project-table sort you pick is remembered across
restarts. - Cherry-pick - apply a commit from another branch onto the current one, from
the detail panel; a conflict is handled by the same resolve/continue/abort
panel as merge and rebase. - Reflog recovery - a "History" picker moves the current branch back to a
previous HEAD (after a bad reset/rebase); it refuses on a dirty tree so
uncommitted work is never discarded. - In-app help - a "?" button in the toolbar opens an overlay explaining what
each part of the app does, for new users. - Fuzzy file search - file-name search now matches like an editor's
quick-open (type "cbsv" for "CommitBox.svelte") and ranks the best matches
first across all repos. - Search modes - content search now treats the query as literal text by
default, with opt-in regex (.*) and whole-word (\b) toggles.
Changed
- fleet is now source-available under the PolyForm Noncommercial License 1.0.0
(previously unlicensed): free for noncommercial use, commercial use not
permitted. SeeLICENSE.
Changed
- The AI brief and chat transcripts are stored in the local data directory (and
included in the export), keyed by a stable repo identity, instead of the
browser's localStorage - so they survive a cleared browser store. - The AI brief and chat transcripts sync across your devices (last-write-wins),
alongside projects. A source whose local file is unreadable is skipped and its
sync paused, without stopping the others.
Security
- The agent's
Grep/Globrun through the approval hook, with secret-path denial
and auto-allow only for searches classified safe; a default-branch push is
always denied. - Refresh tokens rotate as a family, with reuse revocation and periodic GC of
expired rows. fleetdrefuses to boot on aJWT_SIGNING_KEYshorter than 32 bytes or with
fewer than 8 distinct byte values.
Fixed
- A second app launch can no longer clobber the first launch's local data - the
second instance hands off and exits. - Unreadable local data is quarantined and sync pauses instead of propagating the
damage; fleet never aborts a merge or rebase it did not start. - A clobbered unsynced local edit is backed up rather than silently lost, and the
backups are listable from Settings.
What's Changed
- Tier 4a: release gate, single-instance lock, signing key floor by @hoijun-kim in #1
- Tier 4b: version stamping + CHANGELOG by @hoijun-kim in #2
- Tier 4c: git conflict recovery by @hoijun-kim in #3
- Tier 4d: relocate intel (brief + chat) into a Go store by @hoijun-kim in #4
- Tier 4e: sync intel (brief + chat) across devices by @hoijun-kim in #5
- Tier 4f: restore a conflict backup by @hoijun-kim in #6
- Tier 4g: import an export by @hoijun-kim in #7
- Tier 4h: DOM interaction test harness for the GUI click-wiring by @hoijun-kim in #8
- Tier 4i: force-delete an unmerged branch by @hoijun-kim in #9
- Tier 4j: case-insensitive content search by @hoijun-kim in #10
- Tier 4k: persist the project-table sort by @hoijun-kim in #11
- Tier 4l: cherry-pick a commit by @hoijun-kim in #12
- Tier 4m: reflog recovery by @hoijun-kim in #13
- Tier 4n: PolyForm Noncommercial license + in-app help overlay by @hoijun-kim in #14
- Tier 4o: fuzzy file-name search by @hoijun-kim in #15
- Tier 4p: content search modes (fixed / regex / whole-word) by @hoijun-kim in #16
- feat(git): interactive rebase - reorder, drop, fixup local commits by @hoijun-kim in #17
- feat(server): env-tunable fleetd timeouts, GC interval, DB pool by @hoijun-kim in #18
New Contributors
- @hoijun-kim made their first contribution in #1
Full Changelog: https://github.com/hoijun-kim/fleet/commits/v0.1.0