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
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@ may change local profiler schemas and command contracts through explicit migrati

### Validation

- Passed the complete Windows quality gate, including Clippy with warnings denied, 28 Rust tests, TypeScript, Vite and native desktop compilation.
- Completed a controlled real-archive profile with 17,296 messages, 54,450 MIME parts, 13,684 content objects and 1,484 findings.
- Verified workspace reopen, review persistence, Windows read-only lock fallback, sanitized exports and zero source mutation.
- Passed the complete Windows quality gate, including strict Clippy, 36 Rust tests, TypeScript, Vite, native desktop compilation and npm audit with 0 vulnerabilities.
- Completed the full private exact-format run with 13,684/13,684 objects, 13,636 identified, 46 unknown, 0 ambiguous, 0 tool errors, 51 extension mismatches and 64 distinct PUIDs.
- Verified schema 5-to-6 workspace migration, complete byte coverage and unchanged canonical MailVault SHA-256.

### Security and privacy

Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,9 @@ sample-only data:
| Physical inventory warnings / errors | 2 / 0 |

Alpha 3 validated the physical inventory on Windows. Alpha 4 preserves that baseline, adds schema
migration `0006` and the exact-format execution contract. A private real-archive format run is still
required before publishing format-distribution performance claims.
migration `0006`, and completed a private full-scale exact-format run: 13,684/13,684 objects,
13,636 identified, 46 unknown, 0 ambiguous and 0 tool errors. The canonical MailVault database
SHA-256 remained unchanged.

## Implemented capabilities

Expand Down
5 changes: 3 additions & 2 deletions README_FA.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,9 @@ ZIP/RAR را باز نمی‌کند، سند را Invoice یا Quotation تشخ
| Warning / Error | 2 / 0 |

Alpha 3 روی آرشیو واقعی Windows اعتبارسنجی شد. Alpha 4 همان Baseline را حفظ می‌کند، Migration شماره
`0006` و قرارداد اجرای تشخیص دقیق فرمت را اضافه می‌کند. قبل از انتشار آمار سرعت و توزیع فرمت‌ها،
یک اجرای خصوصی واقعی Alpha 4 هنوز لازم است.
`0006` را اضافه می‌کند و اجرای خصوصی کامل تشخیص فرمت را نیز با پوشش 13,684 از 13,684 Object،
13,636 مورد شناسایی‌شده، 46 مورد Unknown، صفر Ambiguous و صفر Tool error با موفقیت پشت سر گذاشته
است. SHA-256 دیتابیس اصلی MailVault قبل و بعد از اجرا بدون تغییر باقی ماند.

## قابلیت‌های Alpha 4

Expand Down
33 changes: 17 additions & 16 deletions docs/IMPLEMENTATION_STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,28 +12,29 @@

## Validated

- frontend type/build;
- Rust syntax parse;
- real Alpha 3 profiler DB migration and count preservation;
- SQLite integrity after migration;
- synthetic format projection;
- complete Windows release configuration and documentation/privacy gate;
- Rust formatting and strict workspace Clippy with warnings denied;
- complete Rust test suite: 36 passed, 0 failed;
- frontend TypeScript check and Vite production build;
- native Tauri desktop compilation;
- npm audit: 0 vulnerabilities;
- Windows PowerShell 5.1 sidecar installation and independent verification;
- pinned Siegfried `1.11.6` and PRONOM `v124` runtime identity;
- Windows-safe home-relative signature argument contract;
- five `profiler-format-siegfried` unit tests;
- workspace Rust formatting check.
- real Alpha 3 workspace migration from schema 5 to 6;
- full private 13,684-object exact-format run;
- 13,684/13,684 object coverage and 6,466,878,455/6,466,878,455 byte coverage;
- 13,636 identified, 46 unknown, 0 ambiguous and 0 tool errors;
- 51 extension mismatches and 64 distinct PUIDs recorded for review;
- canonical MailVault SHA-256 unchanged before and after identification;
- sanitized aggregate acceptance evidence and evidence checksum manifest.

## Required before runtime-green release
## Runtime status

- rerun strict workspace Clippy after the structural refactor;
- run the complete Rust workspace test suite on CI;
- Windows Tauri build and installers;
- verified sidecar install in CI;
- private real-archive exact-format run;
- benchmark, resume-interruption and source-nonmutation evidence;
- sanitized aggregate format report.
`0.1.0-alpha.4` is runtime green for the supplied private MailVault collection. Public Windows
installers remain unsigned and the release is intended for controlled technical evaluation.

## Deferred

Physical-profile pause/resume, full fixity, container expansion, JHOVE, extraction, OCR, semantic
search, procurement classification and RMS integration.
search, procurement classification, RMS integration and automatic application updates.
184 changes: 74 additions & 110 deletions docs/VALIDATION_0.1.0-alpha.4.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,142 +2,106 @@

## Scope

This document separates completed evidence from work that still requires Windows CI or a private
real-archive execution. It must not be read as a fabricated claim that exact format identification
has already been run across the production collection.
This document records the completed release evidence for exact format identification in
MailVault Collection Profiler `0.1.0-alpha.4`. Private databases, paths, filenames and raw runtime
evidence are not published.

## Source examined

- user-supplied `mailvault-collection-profiler` Alpha 3 source;
- private Alpha 3 real-profile workspace;
- Alpha 4 implementation candidate in this package;
- target application version `0.1.0-alpha.4`;
- profiler schema migration `0006_exact_format_identification.sql`.

## Research decisions

Alpha 4 uses a pinned Siegfried/PRONOM sidecar rather than an in-process magic-byte table or DROID
runtime because it provides machine-readable batch identification and persistent PRONOM IDs while
remaining practical to bundle in a Windows desktop application. The design records tool/signature
identity and retains all matches.

Pinned contract:
## Pinned format-identification contract

```text
Siegfried 1.11.6
PRONOM v124
container expansion disabled
```

## Completed static and frontend gates
The executable and signature SHA-256 values are recorded in the private acceptance evidence and in
the profiler run metadata.

## Completed Windows quality gate

| Gate | Result |
|---|---|
| Release/version configuration | passed |
| Documentation/privacy/local-link gate | passed |
| Rust formatting | passed |
| Strict Clippy with `-D warnings` | passed |
| Rust tests | passed, 36 |
| TypeScript strict type-check | passed |
| Vite production build | passed |
| Rust source Tree-sitter syntax parse | passed, 34 Rust files |
| Release configuration parser | passed after MSI mapping correction |
| Documentation/privacy/link gate | passed in packaged candidate |
| Screenshot dimensions and deterministic names | passed |
| npm production audit | passed, 0 vulnerabilities |
| npm complete audit | passed, 0 vulnerabilities |

Tree-sitter proves syntactic parsability only; it is not a substitute for Rust type checking.
| Native Tauri desktop compilation | passed |
| Rust syntax validation | passed, 34 source files |
| npm audit | passed, 0 vulnerabilities |
| Pinned Siegfried installation | passed |
| Independent Siegfried verification | passed |
| Siegfried version | `1.11.6` |
| PRONOM signature | `v124` |
| Windows-safe home-relative signature contract | passed |

## Real Alpha 3 database migration test
## Workspace migration

A private copy of the real Alpha 3 profiler database was migrated from schema 5 to schema 6.
A private copy of the real Alpha 3 profiler workspace was migrated from schema 5 to schema 6.

| Check | Result |
|---|---|
| source database SHA-256 before/after test | unchanged |
| migrated database `PRAGMA quick_check(1)` | `ok` |
| `PRAGMA foreign_key_check` | no violations |
| compatibility after migration | compatible |
| schema version | 6 |
| migration required | false |
| active workspace lock after completion | false |
| last migrated by | `0.1.0-alpha.4` |
| content objects preserved | 13,684 |
| content occurrences preserved | 22,068 |
| findings preserved | 1,484 |
| synthetic format projection | passed |
| baseline-scoped format projection isolation | passed |

Source database SHA-256 used in the private migration test:
| source/snapshot clone hashes | matched |

## Full real-archive exact-format run

| Metric | Result |
|---|---:|
| Baseline run | `019f83f1-1687-7032-be61-5a9a1085ad51` |
| Format run | `019f84e2-037f-7271-b5d7-e814314dd5ba` |
| State | `succeeded` |
| Total objects | 13,684 |
| Eligible objects | 13,682 |
| Completed objects | 13,684 |
| Total bytes | 6,466,878,455 |
| Completed bytes | 6,466,878,455 |
| Identified | 13,636 |
| Unknown | 46 |
| Ambiguous | 0 |
| Empty | 1 |
| Skipped unavailable | 1 |
| Tool errors | 0 |
| Extension mismatches | 51 |
| Distinct PUIDs | 64 |

State accounting is complete:

```text
d73b040cc7a136a80d0fcab6d8194fa66c2496958bfe4e6d69f06b849d1766b8
13,636 identified
+ 46 unknown
+ 0 ambiguous
+ 1 empty
+ 1 skipped unavailable
+ 0 tool errors
= 13,684 total objects
```

This hash is evidence for the provided private profiler database, not a public MailVault content
hash.
The canonical MailVault database SHA-256 matched before and after the run.

## Implemented safety tests in code
## Evidence boundary

The source includes unit/integration coverage for:
The retained private evidence bundle includes:

- PRONOM version parsing;
- stronger signature evidence outranking extension-only evidence;
- exclusion of extension-only alternatives from false ambiguity;
- migration idempotency and expected migration count;
- format projection, baseline isolation and cursor query behavior;
- checkpoint/run completion constraints;
- physical-profile source immutability inherited from Alpha 3.
- workspace inspection after migration;
- exact-format summary;
- unknown, extension-mismatch and tool-error review queues;
- source SHA-256 before/after evidence;
- acceptance JSON;
- SHA-256 manifest for the evidence files.

These Rust tests require semantic compilation in CI before release.
Raw archives, databases, filenames, local paths and profiler progress logs are excluded from the
public repository and release.

## Windows runtime evidence supplied by the maintainer
## Release status

The following gates were executed on Windows PowerShell 5.1 with Rust 1.97.1 tooling:

| Gate | Result |
|---|---|
| pinned Siegfried installation | passed |
| independent Siegfried verification | passed |
| Siegfried version | `1.11.6` |
| PRONOM signature | `v124` |
| Windows-safe relative signature JSON contract | passed |
| `cargo test -p profiler-format-siegfried --locked` | passed, 5 tests |
| `cargo fmt --all -- --check` | passed |

The first strict workspace Clippy run reached semantic compilation and reported structural/style
findings in the new exact-format modules. The implementation was then refactored without lint
suppression: options are borrowed, run-start parameters are grouped, large functions are decomposed,
large read buffers are heap-backed, and SQLite row/projection work is split into focused helpers.
This refactor still requires a fresh Windows `cargo clippy` execution before it can be recorded as
passed.

## Not yet completed

These results are deliberately **not claimed** until the updated source is rerun:

- strict workspace Clippy after the structural refactor;
- complete Rust workspace test suite;
- native Tauri compile or installer build;
- real 13,684-object Siegfried identification run;
- real throughput, ETA accuracy, format distribution or peak memory.

## Release CI requirements

A publishable tag must pass the configured Windows workflow:

1. install Rust `1.97.1` and Node `24`;
2. install and verify pinned Siegfried resources;
3. run formatting, Clippy and all Rust tests with `--locked`;
4. run TypeScript checks and production build;
5. run documentation/privacy gate;
6. compile Tauri desktop targets;
7. build NSIS and MSI installers;
8. generate `SHA256SUMS.txt` and artifact attestations where supported.

## Runtime gate after CI

Before calling Alpha 4 **runtime green**, execute the private runbook against the real workspace and
record:

- exact tool and signature hashes;
- elapsed time and peak memory;
- identified, unknown, ambiguous, mismatch and tool-error counts;
- PUID/format distribution;
- checkpoint/resume evidence;
- source non-mutation evidence;
- sanitized aggregate export.

Until that evidence exists, this package is an implementation/release candidate, not a completed
real-archive Alpha 4 benchmark.
The implementation, complete Windows quality gate, schema migration and full private real-archive
exact-format run are **runtime green**. Public installers remain unsigned and are distributed as an
Alpha prerelease for controlled technical evaluation.
Loading