Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/commitlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,11 +196,24 @@ jobs:
# comments endpoint (PR comments live there) and jq-filter
# by marker presence. `head -1` defends against the
# (impossible-but-cheap-to-guard) double-managed-comment case.
#
# A transient GitHub API error (e.g. a 503) makes `gh api`
# print its JSON error body to stdout while still exiting
# non-zero; the `|| true` swallows the exit code but not
# that body, so EXISTING_ID could otherwise become garbage
# text instead of a real comment id — which then crashes the
# DELETE/PATCH call below and fails this *required* gate for
# a reason unrelated to title conformance. Validate the
# result is purely numeric (a real id always is) and treat
# anything else as "no existing comment found".
EXISTING_ID=$(
gh api --paginate "repos/${GITHUB_REPOSITORY}/issues/${PR_NUMBER}/comments" \
--jq ".[] | select(.body | contains(\"${COMMENT_MARKER}\")) | .id" \
| head -1 || true
)
if ! [[ "${EXISTING_ID}" =~ ^[0-9]+$ ]]; then
EXISTING_ID=""
fi

if echo "$TITLE" | grep -qE "$PATTERN"; then
# ── Conforming title ───────────────────────────────────
Expand Down
13 changes: 12 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.6.28] - 2026-07-19

### Added

- content: VSS-snapshot content-ingest pipeline for Docenta (UFI.0-UFI.6) (#563)

### Fixed

- test: deflake ensure_warm parallel-promote assertion (#562)

## [0.6.27] - 2026-07-14

### Added
Expand Down Expand Up @@ -2697,7 +2707,8 @@ thin clients over a unified `uffsd` process.
### Fixed
- Various MFT parsing edge cases

[Unreleased]: https://github.com/skyllc-ai/UltraFastFileSearch/compare/v0.6.27...HEAD
[Unreleased]: https://github.com/skyllc-ai/UltraFastFileSearch/compare/v0.6.28...HEAD
[0.6.28]: https://github.com/skyllc-ai/UltraFastFileSearch/compare/v0.6.27...v0.6.28
[0.6.27]: https://github.com/skyllc-ai/UltraFastFileSearch/compare/v0.6.26...v0.6.27
[0.6.26]: https://github.com/skyllc-ai/UltraFastFileSearch/compare/v0.6.25...v0.6.26
[0.6.25]: https://github.com/skyllc-ai/UltraFastFileSearch/compare/v0.6.24...v0.6.25
Expand Down
56 changes: 28 additions & 28 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 15 additions & 15 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ members = [
# Workspace Package Metadata (inherited by all crates)
# ─────────────────────────────────────────────────────────────────────────────
[workspace.package]
version = "0.6.27"
version = "0.6.28"
edition = "2024"
# No `rust-version` claim: the workspace is structurally nightly-only.
# `crates/uffs-polars` enables `polars/nightly` unconditionally, which
Expand Down Expand Up @@ -137,23 +137,23 @@ publish = false
# proposed-plan output for 12 days because `release-plz update`
# failed at `cargo package` with this very error. See
# `release-automation-baseline.md` §10 for the diagnostic trail.
uffs-polars = { path = "crates/uffs-polars", version = "0.6.27" }
uffs-security = { path = "crates/uffs-security", version = "0.6.27" }
uffs-text = { path = "crates/uffs-text", version = "0.6.27" }
uffs-time = { path = "crates/uffs-time", version = "0.6.27" }
uffs-version = { path = "crates/uffs-version", version = "0.6.27" }
uffs-statusfmt = { path = "crates/uffs-statusfmt", version = "0.6.27" }
uffs-mft = { path = "crates/uffs-mft", version = "0.6.27" }
uffs-format = { path = "crates/uffs-format", version = "0.6.27" }
uffs-core = { path = "crates/uffs-core", version = "0.6.27" }
uffs-client = { path = "crates/uffs-client", version = "0.6.27" }
uffs-polars = { path = "crates/uffs-polars", version = "0.6.28" }
uffs-security = { path = "crates/uffs-security", version = "0.6.28" }
uffs-text = { path = "crates/uffs-text", version = "0.6.28" }
uffs-time = { path = "crates/uffs-time", version = "0.6.28" }
uffs-version = { path = "crates/uffs-version", version = "0.6.28" }
uffs-statusfmt = { path = "crates/uffs-statusfmt", version = "0.6.28" }
uffs-mft = { path = "crates/uffs-mft", version = "0.6.28" }
uffs-format = { path = "crates/uffs-format", version = "0.6.28" }
uffs-core = { path = "crates/uffs-core", version = "0.6.28" }
uffs-client = { path = "crates/uffs-client", version = "0.6.28" }
# `uffs-broker-protocol` carries the wire-protocol types shared between
# `uffs-broker` (the elevated handle vendor, Windows-only binary) and
# `uffs-daemon::broker_client` (the handle consumer). Pure-logic
# Layer-0 lib — cross-platform tests run on every CI lane. Added in
# F5 (issue #205) so neither side duplicates `BROKER_PIPE_NAME` /
# wire-format byte literals.
uffs-broker-protocol = { path = "crates/uffs-broker-protocol", version = "0.6.27" }
uffs-broker-protocol = { path = "crates/uffs-broker-protocol", version = "0.6.28" }
# `uffs-content-protocol` carries the wire-protocol types shared between
# `uffs-content` (the unprivileged content-coordinator producer,
# Windows-only binary) and any downstream consumer (e.g. Docenta).
Expand All @@ -163,21 +163,21 @@ uffs-broker-protocol = { path = "crates/uffs-broker-protocol", version = "0.6.27
# `content-stream-tool-design.md` sketch, its
# `uffs-content-stream-enterprise-design-review.md` replacement-design
# review, and Docenta's `uffs-ingest-protocol-v2-vss.md`.
uffs-content-protocol = { path = "crates/uffs-content-protocol", version = "0.6.27" }
uffs-content-protocol = { path = "crates/uffs-content-protocol", version = "0.6.28" }
# `uffs-content-reader-protocol` — the private wire format between
# `uffs-content` (Coordinator) and the privileged Snapshot Reader process
# (addendum §2.1-§2.4). Deliberately does NOT depend on
# `uffs-content-protocol` — both are Layer 0, and Layer-0-to-Layer-0
# internal deps are disallowed (see crate-graph.md); see this crate's
# Cargo.toml for the full rationale.
uffs-content-reader-protocol = { path = "crates/uffs-content-reader-protocol", version = "0.6.27" }
uffs-content-reader-protocol = { path = "crates/uffs-content-reader-protocol", version = "0.6.28" }
# `uffs-winsvc` — native Windows service control (SCM query/start/stop) +
# the non-connecting broker-pipe readiness probe. Layer-0 leaf: its only
# dependency is the `windows` crate (windows-target), with non-Windows
# stubs so cross-platform consumers (uffs-update, uffs-cli) compile.
# Single source of truth for the `sc`/SCM mechanics previously duplicated
# across uffs-broker, uffs-update, and uffs-cli.
uffs-winsvc = { path = "crates/uffs-winsvc", version = "0.6.27" }
uffs-winsvc = { path = "crates/uffs-winsvc", version = "0.6.28" }
# NOTE: no `uffs-broker` workspace dependency alias on purpose —
# `uffs-broker` is a binary-only crate (the only `[lib]` it carries is
# this protocol module's now-extracted sibling); no other workspace
Expand Down
4 changes: 2 additions & 2 deletions crates/uffs-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -69,15 +69,15 @@ path = "src/main.rs"
# `version = "0.5.90"` is required for `cargo package` validation —
# see root `Cargo.toml`'s [workspace.dependencies] note for the full
# rationale (R6 of `release-automation-plan.md`).
uffs-client = { path = "../uffs-client", version = "0.6.27", default-features = false }
uffs-client = { path = "../uffs-client", version = "0.6.28", default-features = false }

# Canonical CSV / parity / legacy-footer writer. Direct dep (not a
# re-export chain through `uffs-client`) so the CLI and the daemon
# hit the same `uffs_format::*` symbols without an indirection layer.
# `version = "0.5.90"` is required for `cargo package` validation —
# see root `Cargo.toml`'s [workspace.dependencies] note for the full
# rationale (R6 of `release-automation-plan.md`).
uffs-format = { path = "../uffs-format", version = "0.6.27" }
uffs-format = { path = "../uffs-format", version = "0.6.28" }

# Typed drive-letter newtype. Direct dep so the CLI command signatures
# (`daemon_load`, `daemon_tiering`, etc.) name `DriveLetter` natively
Expand Down
Loading
Loading