You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`fluxel gc` (P2, §11): audit-only by default — computes the reachable set
73
+
from all refs (commit DAG → trees → blobs/footers) and reports orphans;
74
+
`--prune` deletes them.
75
+
-`filesystem.py` moved to the `core/vfs/` package; `index.py` moved to the
76
+
`core/query/` package (DuckDB catalog now carries a `footer` column); the
77
+
CLI subcommand `index build` is now `query build`.
78
+
-`CommitObject` is now `{id, message, tree, parents: [...], created_at,
79
+
branch, generation}`; the `manifest`/`parent`/`manifest_index` fields are
80
+
gone. `SnapshotWriter` is replaced by `TreeWriter`
81
+
(`services/tree.py`).
82
+
- Stores are `ObjectStore + RefStore + TreeQuerier`; S3 branch-lock
83
+
machinery (locks, `lock list`, `lock cleanup`) is removed — version-token
84
+
CAS is the only safety primitive.
85
+
- Full commits preserve parent-only entries and staged additions (v1 merge
86
+
semantics); deletions require explicit staging, as before.
87
+
- Commit creation is faster than v1 in metadata mode (no per-file entry
88
+
objects; ~48k files/sec on the 200k-file meta benchmark).
89
+
90
+
### Removed
91
+
92
+
- Removed `manifest_index.py`, `manifest_query.py`, `.idx` sidecars, the
93
+
embedded manifest index, and the index/fallback decision tree.
94
+
95
+
### Fixed
96
+
97
+
- Manifest parsing now validates entry shape, digests, and metadata-only invariants with line-aware errors.
98
+
- Commit creation is back to near-pre-refactor throughput: the commit hot loop now streams serialized manifest lines from the worktree instead of constructing and validating a `ManifestEntry` object per file (~2× faster for metadata-only commits; validated again on read).
16
99
17
100
### Changed
18
101
19
102
- CLI examples and tests now prefer `--repo` repository selection semantics.
20
103
- Client-local state writes now use atomic replace semantics for HEAD and staging payloads.
21
104
- Manifest index prefix iteration now streams rows instead of materializing full result sets.
105
+
- Manifest exact-path and prefix lookups now fall back to a full manifest scan when no index is available, so legacy or index-less repositories remain fully readable.
106
+
-`status(ref=...)` working-tree comparison now honors the requested branch instead of always comparing against the currently checked-out branch.
107
+
- The `RepositoryStore` contract is now split into focused `ObjectStore`, `RefStore`, `ManifestIndexStore`, and `ManifestQuerier` protocols, with `RepositoryStore` kept as the composed facade for compatibility.
108
+
- Manifest index lookups are deduplicated into a single shared implementation (`repository_store/manifest_query.py`) used by both local and S3 stores.
109
+
- Commit creation no longer relies on `_last_manifest_index` instance state; the manifest index is threaded explicitly through manifest writing and commit creation.
110
+
- S3 blob writes via streams (`push`/`pull`/`fetch`) now honor the configured blob transfer backend, so `s5cmd` accelerates sync transfers.
111
+
- The in-process commit cache is now bounded (LRU-style) instead of growing without limit.
112
+
-`FluxelRepository` is now a facade over four focused collaborator services (`RefManager`, `SnapshotWriter`, `StagingArea`, `EntryFactory` in `core/services/`); the god-object class was split from ~1650 to ~790 lines and `repository_ops.py` no longer reaches into repository internals.
113
+
114
+
### Removed
115
+
116
+
- Removed the `fluxel import` command; S3 ingress is now staged via `fluxel add ... s3://... [--identity meta --as ...]` followed by `fluxel commit --staged`.
117
+
- Removed `--identity` from `fluxel commit`; the commit identity mode is now configured with `fluxel config set identity meta`, or set per stage with `fluxel add --identity ...`.
118
+
- Removed the direct-commit `-m/--message` flag from `fluxel rm` and `fluxel mv`; metadata-only mutations are staged and committed with `fluxel commit --staged`.
119
+
- Removed `--ref` from `fluxel verify` and `fluxel index build`; both now target the current branch.
120
+
- Removed `fluxel index query` and `fluxel index drop`; `fluxel index build` remains and the produced DuckDB database can be queried with the DuckDB CLI.
22
121
23
122
### Fixed
24
123
25
124
- Manifest parsing now validates entry shape, digests, and metadata-only invariants with line-aware errors.
125
+
- Commit creation is back to near-pre-refactor throughput: the commit hot loop now streams serialized manifest lines from the worktree instead of constructing and validating a `ManifestEntry` object per file (~2× faster for metadata-only commits; validated again on read).
26
126
- CLI commands now return clean `... error:` messages for common validation, filesystem, and object-storage failures instead of raw tracebacks.
27
127
- Corrupt S3-hosted manifest lines now surface actionable validation errors.
0 commit comments