Skip to content

Commit b458797

Browse files
committed
release: v3.1.0 — Bijou (M13)
Interactive vault dashboard, animated progress bars, manifest inspector, history timeline, encryption info cards, and chunk heatmaps. New --quiet flag and GIT_CAS_PASSPHRASE env var.
1 parent 4a4d079 commit b458797

6 files changed

Lines changed: 38 additions & 10 deletions

File tree

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [3.1.0] — Bijou (2026-02-27)
9+
10+
### Added
11+
- **Interactive vault dashboard** (`git cas vault dashboard`) — TEA-based TUI with split-pane layout, manifest detail view, keyboard navigation (`j`/`k`/`Enter`/`/`), and real-time filtering.
12+
- **Manifest inspector** (`git cas inspect <tree-oid>`) — renders manifest details with chunk table, encryption info, and compression badges.
13+
- **Progress bars** for `store` and `restore` operations — animated progress with throughput reporting, auto-disabled in non-TTY environments.
14+
- **History timeline** (`git cas vault history --pretty`) — color-coded, paginated timeline view of vault commit history.
15+
- **Encryption info card** (`git cas vault info --encryption`) — detailed KDF parameters and encryption configuration display.
16+
- **Chunk heatmap** — chunk-size distribution grid with colored legend, displayed in manifest detail views.
17+
- `--quiet` / `-q` flag to suppress all progress output.
18+
- `GIT_CAS_PASSPHRASE` environment variable — alternative to `--vault-passphrase` flag for passphrase-based encryption.
19+
- New runtime dependencies: `@flyingrobots/bijou`, `@flyingrobots/bijou-node`, `@flyingrobots/bijou-tui`.
20+
21+
### Fixed
22+
- CLI `restore` now uses the canonical `readManifest` path instead of duplicating manifest resolution logic.
23+
- Progress trackers wrapped in `try`/`finally` to prevent event listener leaks when `storeFile` or `restoreFile` throws.
24+
- Dashboard filter and error lines clamped to pane width to prevent wrapping artifacts in narrow terminals.
25+
- Dashboard differentiates entry vs manifest load errors — a single manifest preload failure no longer sets global error state.
26+
- Dashboard clamps cursor position after applying filter on entry load.
27+
- Passphrase resolution uses nullish coalescing for correct falsy-value handling.
28+
- Locale-agnostic number formatting in encryption card tests.
29+
- Consolidated duplicated restore flag validation into `validateRestoreFlags()`.
30+
- Eliminated `vi.mock('node:fs')` pattern in progress tests for Bun Docker compatibility.
31+
832
## [3.0.0] — Vault (2026-02-08)
933

1034
### Added

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,15 @@ We use the object database.
4444

4545
See [CHANGELOG.md](./CHANGELOG.md) for the full list of changes.
4646

47-
## What's new in v3.0.0
47+
## What's new in v3.1.0
4848

49-
**Vault**GC-safe ref-based storage. A single Git ref (`refs/cas/vault`) indexes all stored assets by slug, so `git gc` can no longer silently discard your data. Initialize with `vault init`, store with `--tree`, restore by `--slug`.
49+
**Interactive vault dashboard**`git cas vault dashboard` launches a full TUI with split-pane layout, manifest detail view, keyboard navigation, and real-time filtering. Browse entries, inspect chunks, and view encryption status without memorizing CLI flags.
5050

51-
**CLI breaking change**`git cas restore` no longer takes a positional `<tree-oid>` argument. Use `--oid <tree-oid>` or `--slug <slug>` instead.
51+
**Progress bars**`store` and `restore` now show animated progress with throughput reporting. Suppress with `--quiet`.
52+
53+
**Pretty history**`git cas vault history --pretty` renders a color-coded, paginated timeline of vault commits.
54+
55+
**Inspect command**`git cas inspect <tree-oid>` renders manifest details with chunk table, encryption info, and compression badges.
5256

5357
See [CHANGELOG.md](./CHANGELOG.md) for the full list of changes.
5458

ROADMAP.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ Return and throw semantics for every public method (current and planned).
190190
| v3.0.0 | M10 | Hydra | Content-defined chunking | |
191191
| v3.1.0 | M11 | Locksmith | Multi-recipient encryption | |
192192
| v3.2.0 | M12 | Carousel | Key rotation | |
193-
| v3.3.0 | M13 | Bijou | TUI dashboard & progress | |
193+
| v3.1.0 | M13 | Bijou | TUI dashboard & progress | |
194194

195195
---
196196

@@ -208,7 +208,7 @@ Shine (v2.2.0) │ │
208208
│ (CDC benchmarks)
209209
210210
v
211-
M13 Bijou (v3.3.0)
211+
M13 Bijou (v3.1.0)
212212
(TUI dashboard & progress)
213213
```
214214

@@ -225,7 +225,7 @@ Shine (v2.2.0) │ │
225225
| M10| Hydra | Content-defined chunking | v3.0.0 | 4 | ~690 | ~22h |
226226
| M11| Locksmith | Multi-recipient encryption | v3.1.0 | 4 | ~580 | ~20h |
227227
| M12| Carousel | Key rotation | v3.2.0 | 4 | ~400 | ~13h |
228-
| M13| Bijou | TUI dashboard & progress | v3.3.0 | 6 | ~650 | ~20h |
228+
| M13| Bijou | TUI dashboard & progress | v3.1.0 | 6 | ~650 | ~20h |
229229
| | **Total** | | | **26**| **~2,870** | **~89h** |
230230

231231
---
@@ -1714,7 +1714,7 @@ If that's what you want, nothing else does it. If it's not, the right tool proba
17141714

17151715
---
17161716

1717-
# M13 — Bijou (v3.3.0)
1717+
# M13 — Bijou (v3.1.0)
17181718
**Theme:** Beautiful terminal UI powered by `@flyingrobots/bijou`. Replace silent CLI operations with animated progress, and add an interactive vault dashboard for exploring stored assets. Depends on M9 Cockpit for the `--quiet` flag and event wiring foundation.
17191719

17201720
---

bin/git-cas.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { renderHeatmap } from './ui/heatmap.js';
1414
program
1515
.name('git-cas')
1616
.description('Content Addressable Storage backed by Git')
17-
.version('3.0.0')
17+
.version('3.1.0')
1818
.option('-q, --quiet', 'Suppress progress output');
1919

2020
/**

jsr.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@git-stunts/git-cas",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"exports": {
55
".": "./index.js",
66
"./service": "./src/domain/services/CasService.js",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@git-stunts/git-cas",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "Content-addressed storage backed by Git's object database, with optional encryption and pluggable codecs",
55
"type": "module",
66
"main": "index.js",

0 commit comments

Comments
 (0)