Skip to content

Commit 6859fff

Browse files
genednaclaude
andcommitted
feat: slice trace transcripts into overlapping UTF-8 fragments
Project a logical transcript into 16KiB pieces that keep character boundaries and a 256-byte overlap. Co-Authored-By: Claude Code <noreply@anthropic.com> Signed-off-by: Eli Ma <eli@patch.sh>
1 parent 55916c8 commit 6859fff

13 files changed

Lines changed: 542 additions & 24 deletions

File tree

‎Cargo.lock‎

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mega2"
3-
version = "0.42.99"
3+
version = "0.42.100"
44
edition = "2024"
55
license = "MIT OR Apache-2.0"
66
description = "Monorepo engine and Git hosting server for AI agents: trunk-based storage, Git Smart HTTP, Git LFS, OCI registry, and Agent Session Capture"

‎docs/plan/README.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
**MTR-16 本地验收(2026-11-06):** 已知 schema 的逻辑 transcript 按 manifest part 顺序拼接后切片。每片最多 16KiB,切在 UTF-8 字符边界,相邻片至少重叠 256 字节。`ascii_fold` 只折 ASCII 大写。`body` 是原文切片,归档 Git 对象不改。`index_version` 为 1。VER-1 1 passed。nightly fmt 与 strict clippy exit 0。全量 `source .env.test && cargo test --all` exit 0:24 targets、3215 passed、0 failed、3 ignored。`cargo build` 与 `cargo build --tests` 完成;macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.100`。签名提交、标注 tag、Release 和 main/tag D 尚未取得,不记 done。用户免交叉 Review,不记 Review PASS。`DEBT-MTR98-ROLLBACK-BOUND` 仍 open。以下旧段保留其时点。
2+
13
**MTR-15 本地验收(2026-11-06):** 索引 worker 在 `[traces].enabled` 时随服务启动,只消费已提交的 `trace_ref_update`。真实 SSH Git push 之后 journal 变为 `indexed`,未知 schema 写成 `session_key=unsupported:<checkpoint id>`。重启后 session 与 checkpoint 行数不变。`trace_stream.tip_oid` 仍是发布 tip,worker 不改它。VER-1 1 passed。nightly fmt 与 strict clippy exit 0。全量 `source .env.test && cargo test --all` exit 0:24 targets、3213 passed、0 failed、3 ignored。`cargo build` 与 `cargo build --tests` 完成;macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.99`。签名提交 `5ddb14d32c4dd7cc90cd80391b10c6586717377a`、标注 tag `v0.42.99` 与 [Release](https://github.com/gitmono-dev/mega2/releases/tag/v0.42.99) 已核。main Harbor [42079169297](https://github.com/gitmono-dev/mega2/actions/runs/42079169297) 与 tag Docker [42079215318](https://github.com/gitmono-dev/mega2/actions/runs/42079215318) 的 amd64、arm64 和 docker 作业均 success。Lifecycle 为 `done` / `complete`。用户免交叉 Review,不记 Review PASS。`DEBT-MTR98-ROLLBACK-BOUND` 仍 open。以下旧段保留其时点。
24

35
**MTR-52 本地验收(2026-11-06):** capture schema 识别在 `ceres::traces::parser::classify_capture`,投影结果在 `jupiter::service::trace_projection_service`。只承认 metadata schema 2、manifest schema 1 和 lifecycle schema 2;其它版本标 unsupported,不删除归档。`agent_kind` 按原文保留。`created_at` 只接受 Unix 秒,毫秒和小数标 invalid。transcript `redaction=redacted` 时 `missing_raw` 为 false。`Libra-Parent-Commit` 只进 `code_commit`,不进入 Git `parents`。VER-1 3 passed、VER-2 1 passed。nightly fmt 与 strict clippy exit 0。全量 `source .env.test && cargo test --all` exit 0:24 targets、3212 passed、0 failed、3 ignored。`cargo build` 与 `cargo build --tests` 完成;macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.98`。签名提交 `9ef114352b47586c6e11b1852ce5163d3ebc185a`、标注 tag `v0.42.98` 与 [Release](https://github.com/gitmono-dev/mega2/releases/tag/v0.42.98) 已核。main Harbor [42067072736](https://github.com/gitmono-dev/mega2/actions/runs/42067072736) 与 tag Docker [42067123346](https://github.com/gitmono-dev/mega2/actions/runs/42067123346) 的 amd64、arm64 和 docker 作业均 success。Lifecycle 为 `done` / `complete`。用户免交叉 Review,不记 Review PASS。`DEBT-MTR98-ROLLBACK-BOUND` 仍 open。以下旧段保留其时点。

‎docs/plan/plan-20261015.md‎

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
**MTR-16 本地验收(2026-11-06):** 已知 schema 的逻辑 transcript 按 manifest part 顺序拼接后切片。每片最多 16KiB,切在 UTF-8 字符边界,相邻片至少重叠 256 字节。`ascii_fold` 只折 ASCII 大写。`body` 是原文切片,归档 Git 对象不改。`index_version` 为 1。VER-1 1 passed。nightly fmt 与 strict clippy exit 0。全量 `source .env.test && cargo test --all` exit 0:24 targets、3215 passed、0 failed、3 ignored。`cargo build` 与 `cargo build --tests` 完成;macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.100`。签名提交、标注 tag、Release 和 main/tag D 尚未取得,不记 done。用户免交叉 Review,不记 Review PASS。`DEBT-MTR98-ROLLBACK-BOUND` 仍 open。以下旧段保留其时点。
2+
13
**MTR-15 本地验收(2026-11-06):** 索引 worker 在 `[traces].enabled` 时随服务启动,只消费已提交的 `trace_ref_update`。真实 SSH Git push 之后 journal 变为 `indexed`,未知 schema 写成 `session_key=unsupported:<checkpoint id>`。重启后 session 与 checkpoint 行数不变。`trace_stream.tip_oid` 仍是发布 tip,worker 不改它。VER-1 1 passed。nightly fmt 与 strict clippy exit 0。全量 `source .env.test && cargo test --all` exit 0:24 targets、3213 passed、0 failed、3 ignored。`cargo build` 与 `cargo build --tests` 完成;macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.99`。签名提交 `5ddb14d32c4dd7cc90cd80391b10c6586717377a`、标注 tag `v0.42.99` 与 [Release](https://github.com/gitmono-dev/mega2/releases/tag/v0.42.99) 已核。main Harbor [42079169297](https://github.com/gitmono-dev/mega2/actions/runs/42079169297) 与 tag Docker [42079215318](https://github.com/gitmono-dev/mega2/actions/runs/42079215318) 的 amd64、arm64 和 docker 作业均 success。Lifecycle 为 `done` / `complete`。用户免交叉 Review,不记 Review PASS。`DEBT-MTR98-ROLLBACK-BOUND` 仍 open。以下旧段保留其时点。
24

35
**MTR-52 本地验收(2026-11-06):** capture schema 识别在 `ceres::traces::parser::classify_capture`,投影结果在 `jupiter::service::trace_projection_service`。只承认 metadata schema 2、manifest schema 1 和 lifecycle schema 2;其它版本标 unsupported,不删除归档。`agent_kind` 按原文保留。`created_at` 只接受 Unix 秒,毫秒和小数标 invalid。transcript `redaction=redacted` 时 `missing_raw` 为 false。`Libra-Parent-Commit` 只进 `code_commit`,不进入 Git `parents`。VER-1 3 passed、VER-2 1 passed。nightly fmt 与 strict clippy exit 0。全量 `source .env.test && cargo test --all` exit 0:24 targets、3212 passed、0 failed、3 ignored。`cargo build` 与 `cargo build --tests` 完成;macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.98`。签名提交 `9ef114352b47586c6e11b1852ce5163d3ebc185a`、标注 tag `v0.42.98` 与 [Release](https://github.com/gitmono-dev/mega2/releases/tag/v0.42.98) 已核。main Harbor [42067072736](https://github.com/gitmono-dev/mega2/actions/runs/42067072736) 与 tag Docker [42067123346](https://github.com/gitmono-dev/mega2/actions/runs/42067123346) 的 amd64、arm64 和 docker 作业均 success。Lifecycle 为 `done` / `complete`。用户免交叉 Review,不记 Review PASS。`DEBT-MTR98-ROLLBACK-BOUND` 仍 open。以下旧段保留其时点。
@@ -6737,7 +6739,7 @@ C4 只批准**一次**同源、同工具、同完整五门及资源根核的前
67376739

67386740
**Task type:** `implementation`
67396741

6740-
**Lifecycle / Acceptance:** `pending` / 空
6742+
**Lifecycle / Acceptance:** `in-progress` / `locally-accepted`(2026-11-06:VER-1 1/1、nightly fmt、strict clippy、全量 24 targets 3215 passed/0 failed/3 ignored、`cargo build` 与 `cargo build --tests` 已过。macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.100`。签名提交、tag、Release 与 D 尚未取得,不记 done。用户免交叉 Review。)
67416743

67426744
**Description:** 自本卡拆75去重/出处/版本重建持久化;本卡仅交付六项逻辑正文分片构造,保留原要求、不把尺寸/UTF8/overlap或ASCII-fold/原文合并计数。 黑盒入口冻结:已有15的真实server worker;真实Git push有效metadata/transcript、公开SQL读取fragment rows/bytes/index_version,跨part/UTF8/重叠oracle;不import私有worker/fragments。
67436745

@@ -6747,16 +6749,16 @@ C4 只批准**一次**同源、同工具、同完整五门及资源根核的前
67476749

67486750
**Acceptance criteria:**
67496751

6750-
- [ ] AC-1: 片段尺寸上限为16KiB。
6751-
- [ ] AC-2: 分片保留完整UTF-8字符边界。
6752-
- [ ] AC-3: 相邻片段保留至少256byte有效overlap。
6753-
- [ ] AC-4: manifest跨part按逻辑bytes重组。
6754-
- [ ] AC-5: ASCII-fold搜索列正确。
6755-
- [ ] AC-6: 证据原文字节不变。
6752+
- [x] AC-1: 片段尺寸上限为16KiB。
6753+
- [x] AC-2: 分片保留完整UTF-8字符边界。
6754+
- [x] AC-3: 相邻片段保留至少256byte有效overlap。
6755+
- [x] AC-4: manifest跨part按逻辑bytes重组。
6756+
- [x] AC-5: ASCII-fold搜索列正确。
6757+
- [x] AC-6: 证据原文字节不变。
67566758

67576759
**Verification:**
67586760

6759-
- [ ] VER-1: `source .env.test && cargo test -p mega2 --test integration_traces fragment_projection_ -- --test-threads=1`(new target/filter;须nonzero执行)
6761+
- [x] VER-1: `source .env.test && cargo test -p mega2 --test integration_traces fragment_projection_ -- --test-threads=1`(new target/filter;须nonzero执行)
67606762

67616763
**Dependencies:** `MTR-15`;消费其已受审具体产物与可用性证据,外部前置按登记表。
67626764

‎docs/plan/plan-long.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
**MTR-16 本地验收(2026-11-06):** 已知 schema 的逻辑 transcript 按 manifest part 顺序拼接后切片。每片最多 16KiB,切在 UTF-8 字符边界,相邻片至少重叠 256 字节。`ascii_fold` 只折 ASCII 大写。`body` 是原文切片,归档 Git 对象不改。`index_version` 为 1。VER-1 1 passed。nightly fmt 与 strict clippy exit 0。全量 `source .env.test && cargo test --all` exit 0:24 targets、3215 passed、0 failed、3 ignored。`cargo build` 与 `cargo build --tests` 完成;macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.100`。签名提交、标注 tag、Release 和 main/tag D 尚未取得,不记 done。用户免交叉 Review,不记 Review PASS。`DEBT-MTR98-ROLLBACK-BOUND` 仍 open。以下旧段保留其时点。
2+
13
**MTR-15 本地验收(2026-11-06):** 索引 worker 在 `[traces].enabled` 时随服务启动,只消费已提交的 `trace_ref_update`。真实 SSH Git push 之后 journal 变为 `indexed`,未知 schema 写成 `session_key=unsupported:<checkpoint id>`。重启后 session 与 checkpoint 行数不变。`trace_stream.tip_oid` 仍是发布 tip,worker 不改它。VER-1 1 passed。nightly fmt 与 strict clippy exit 0。全量 `source .env.test && cargo test --all` exit 0:24 targets、3213 passed、0 failed、3 ignored。`cargo build` 与 `cargo build --tests` 完成;macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.99`。签名提交 `5ddb14d32c4dd7cc90cd80391b10c6586717377a`、标注 tag `v0.42.99` 与 [Release](https://github.com/gitmono-dev/mega2/releases/tag/v0.42.99) 已核。main Harbor [42079169297](https://github.com/gitmono-dev/mega2/actions/runs/42079169297) 与 tag Docker [42079215318](https://github.com/gitmono-dev/mega2/actions/runs/42079215318) 的 amd64、arm64 和 docker 作业均 success。Lifecycle 为 `done` / `complete`。用户免交叉 Review,不记 Review PASS。`DEBT-MTR98-ROLLBACK-BOUND` 仍 open。以下旧段保留其时点。
24

35
**MTR-52 本地验收(2026-11-06):** capture schema 识别在 `ceres::traces::parser::classify_capture`,投影结果在 `jupiter::service::trace_projection_service`。只承认 metadata schema 2、manifest schema 1 和 lifecycle schema 2;其它版本标 unsupported,不删除归档。`agent_kind` 按原文保留。`created_at` 只接受 Unix 秒,毫秒和小数标 invalid。transcript `redaction=redacted` 时 `missing_raw` 为 false。`Libra-Parent-Commit` 只进 `code_commit`,不进入 Git `parents`。VER-1 3 passed、VER-2 1 passed。nightly fmt 与 strict clippy exit 0。全量 `source .env.test && cargo test --all` exit 0:24 targets、3212 passed、0 failed、3 ignored。`cargo build` 与 `cargo build --tests` 完成;macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.98`。签名提交 `9ef114352b47586c6e11b1852ce5163d3ebc185a`、标注 tag `v0.42.98` 与 [Release](https://github.com/gitmono-dev/mega2/releases/tag/v0.42.98) 已核。main Harbor [42067072736](https://github.com/gitmono-dev/mega2/actions/runs/42067072736) 与 tag Docker [42067123346](https://github.com/gitmono-dev/mega2/actions/runs/42067123346) 的 amd64、arm64 和 docker 作业均 success。Lifecycle 为 `done` / `complete`。用户免交叉 Review,不记 Review PASS。`DEBT-MTR98-ROLLBACK-BOUND` 仍 open。以下旧段保留其时点。

‎docs/plan/plan-status.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
**MTR-16 本地验收(2026-11-06):** 已知 schema 的逻辑 transcript 按 manifest part 顺序拼接后切片。每片最多 16KiB,切在 UTF-8 字符边界,相邻片至少重叠 256 字节。`ascii_fold` 只折 ASCII 大写。`body` 是原文切片,归档 Git 对象不改。`index_version` 为 1。VER-1 1 passed。nightly fmt 与 strict clippy exit 0。全量 `source .env.test && cargo test --all` exit 0:24 targets、3215 passed、0 failed、3 ignored。`cargo build` 与 `cargo build --tests` 完成;macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.100`。签名提交、标注 tag、Release 和 main/tag D 尚未取得,不记 done。用户免交叉 Review,不记 Review PASS。`DEBT-MTR98-ROLLBACK-BOUND` 仍 open。以下旧段保留其时点。
2+
13
**MTR-15 本地验收(2026-11-06):** 索引 worker 在 `[traces].enabled` 时随服务启动,只消费已提交的 `trace_ref_update`。真实 SSH Git push 之后 journal 变为 `indexed`,未知 schema 写成 `session_key=unsupported:<checkpoint id>`。重启后 session 与 checkpoint 行数不变。`trace_stream.tip_oid` 仍是发布 tip,worker 不改它。VER-1 1 passed。nightly fmt 与 strict clippy exit 0。全量 `source .env.test && cargo test --all` exit 0:24 targets、3213 passed、0 failed、3 ignored。`cargo build` 与 `cargo build --tests` 完成;macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.99`。签名提交 `5ddb14d32c4dd7cc90cd80391b10c6586717377a`、标注 tag `v0.42.99` 与 [Release](https://github.com/gitmono-dev/mega2/releases/tag/v0.42.99) 已核。main Harbor [42079169297](https://github.com/gitmono-dev/mega2/actions/runs/42079169297) 与 tag Docker [42079215318](https://github.com/gitmono-dev/mega2/actions/runs/42079215318) 的 amd64、arm64 和 docker 作业均 success。Lifecycle 为 `done` / `complete`。用户免交叉 Review,不记 Review PASS。`DEBT-MTR98-ROLLBACK-BOUND` 仍 open。以下旧段保留其时点。
24

35
**MTR-52 本地验收(2026-11-06):** capture schema 识别在 `ceres::traces::parser::classify_capture`,投影结果在 `jupiter::service::trace_projection_service`。只承认 metadata schema 2、manifest schema 1 和 lifecycle schema 2;其它版本标 unsupported,不删除归档。`agent_kind` 按原文保留。`created_at` 只接受 Unix 秒,毫秒和小数标 invalid。transcript `redaction=redacted` 时 `missing_raw` 为 false。`Libra-Parent-Commit` 只进 `code_commit`,不进入 Git `parents`。VER-1 3 passed、VER-2 1 passed。nightly fmt 与 strict clippy exit 0。全量 `source .env.test && cargo test --all` exit 0:24 targets、3212 passed、0 failed、3 ignored。`cargo build` 与 `cargo build --tests` 完成;macOS `ld` `__eh_frame` 按 2026-09-26 决定不计警告。版本 `0.42.98`。签名提交 `9ef114352b47586c6e11b1852ce5163d3ebc185a`、标注 tag `v0.42.98` 与 [Release](https://github.com/gitmono-dev/mega2/releases/tag/v0.42.98) 已核。main Harbor [42067072736](https://github.com/gitmono-dev/mega2/actions/runs/42067072736) 与 tag Docker [42067123346](https://github.com/gitmono-dev/mega2/actions/runs/42067123346) 的 amd64、arm64 和 docker 作业均 success。Lifecycle 为 `done` / `complete`。用户免交叉 Review,不记 Review PASS。`DEBT-MTR98-ROLLBACK-BOUND` 仍 open。以下旧段保留其时点。

‎docs/refactoring/traces.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,8 @@ HTTP命令段与解压后的upload请求解析上限各64KiB、单ref receive;
802802

803803
**MTR-51 manifest 资源完整性(不写库):** 已解析且 manifest 含 `entries` 对象时,`ceres::traces::manifest` 核对已声明资源。分片 transcript 的 `parts` 按数组顺序读取,文件名后缀必须从 `.001` 连续递增;单 blob transcript 只有 `oid`、没有 `parts`。每个 part 的路径必须落在该 checkpoint tree 内,Git 类型为 blob,tree 条目 OID 与 manifest 一致,payload 长度等于 `byte_len`。分片长度之和必须等于 transcript 的 `byte_len`。`content_hash.txt` 是 `sha256:` 加 64 位十六进制(也接受无前缀的 64 位十六进制),覆盖顺序固定为 metadata、lifecycle_events、transcript、redaction_report 的原始字节;transcript 取按 part 顺序拼接的逻辑字节。已声明的 reasoning artifact,其 `sha256` 必须等于该 blob。任一不符把该 checkpoint 标为 invalid,稳定原因为 `part_order`、`part_path`、`part_oid`、`part_type`、`part_length`、`total_length` 或 `content_hash`。没有 `entries` 的 manifest 仍只做布局解析。原始归档与可见 membership 不删除。未知 schema 仍归 MTR-52,不在本检查里标 `unsupported`。
804804

805+
**MTR-16 正文片段(不改归档):** 已知 schema 的逻辑 transcript 按 manifest part 顺序拼接后再切片。每片 UTF-8 正文最多 16KiB,切在字符边界上;比一片更长时,相邻片至少重叠 256 字节。`body` 是原文切片,`ascii_fold` 只把 ASCII 大写折成小写。`index_version` 从 1 开始。归档 Git 对象字节不改。
806+
805807
**MTR-15 journal 索引(不改 accepted tip):** 服务在 `[traces].enabled` 时启动索引 worker。它只读取已提交的 `trace_ref_update`,按 `ref_sequence` 连续认领 `pending` 或已过期的 `claimed` 行,把 checkpoint 写成 `trace_checkpoint`。已知 schema 另写 session、ordinal 0 的 resource 和 code link;未知或无效 schema 写入 `session_key = unsupported:<checkpoint id>`,可以用这条 key 查到。完成后把 journal 标成 `indexed`。`trace_stream.tip_oid` 仍是发布时的 accepted tip,worker 不改它。进程退出后,未完成的 claim 过期,重启从 journal 继续,已索引的行不会再插一行。
806808

807809
**MTR-52 capture schema(不写库):** `ceres::traces::parser::classify_capture` 只承认 metadata `schema_version` 2、manifest `schema_version` 1,以及 `entries.lifecycle_events.schema_version` 2。其它版本标 `unsupported`,checkpoint 布局仍可解析,原始对象不删除。`agent_kind` 按 metadata 原文保留,不改写成另一种 provider slug。`created_at` 只接受 Unix 秒:毫秒值(不小于 `1000000000000`)和带小数的数字标 `created_at` invalid。manifest 里 transcript `redaction` 为 `redacted` 时,该 checkpoint 记为 redacted,并且 `missing_raw` 保持 false。提交说明里的 `Libra-Parent-Commit` 只作为 code link 字符串放在 `CommitCheckpoints.code_commit`;Git `parent` 头仍只进入 `parents`,trailer 不会变成一条父边。

0 commit comments

Comments
 (0)