Files
mnote/harness-tasks.json
T

257 lines
8.4 KiB
JSON
Raw Normal View History

2026-04-14 13:22:29 +08:00
{
"version": 2,
2026-04-21 06:26:35 +08:00
"created": "2026-04-19T15:01:07Z",
2026-04-14 13:22:29 +08:00
"session_config": {
"concurrency_mode": "exclusive",
2026-04-21 06:26:35 +08:00
"max_tasks_per_session": 8,
"max_sessions": 80
2026-04-14 13:22:29 +08:00
},
"tasks": [
{
"id": "task-001",
2026-04-21 06:26:35 +08:00
"title": "执行 P0.5-1:冻结主编辑器接入点与 runtime shell 退场策略,明确真实文档页切流入口、flag、debug/prototype 边界",
2026-04-15 20:01:12 +08:00
"status": "completed",
"priority": "P0",
"depends_on": [],
"attempts": 1,
"max_attempts": 3,
2026-04-21 06:26:35 +08:00
"started_at_commit": "a0edc9d1",
"validation": {
2026-04-21 06:26:35 +08:00
"command": "python3 - <<'PY'\nfrom pathlib import Path\npath = Path('/mnt/Data1T/mnote/design/05-editor-mainline/process/5-1-main-editor-cutover-entry-v1.md')\ntext = path.read_text(encoding='utf-8')\nassert '主编辑器接入点' in text\nassert 'runtime shell' in text\nassert 'debug/prototype' in text\nprint('task-001-cutover-entry-doc-ok')\nPY",
"timeout_seconds": 120
},
"on_failure": {
"cleanup": null
},
"error_log": [],
2026-04-21 06:26:35 +08:00
"checkpoints": [
{
"step": 1,
"total": 1,
"description": "已冻结真实文档页主链、DocumentContent 接入点、切流 flag 归属,以及 runtime shell 仅保留 debug/prototype 的边界。",
"timestamp": "2026-04-19T15:29:25Z"
}
],
"completed_at": "2026-04-19T15:29:25Z"
},
{
"id": "task-002",
2026-04-21 06:26:35 +08:00
"title": "执行 P0.5-2:把 leptos-tiptap host 接入真实文档页壳与真实路由,退出 localhost:8123 作为唯一验证入口的状态",
"status": "completed",
"priority": "P0",
"depends_on": [
"task-001"
],
"attempts": 1,
"max_attempts": 3,
2026-04-21 06:26:35 +08:00
"started_at_commit": "a0edc9d1",
"validation": {
2026-04-21 06:26:35 +08:00
"command": "cd /mnt/Data1T/mnote/wolai-frontend && pnpm test src/components/editor/main-editor-host.test.tsx && cd /mnt/Data1T/mnote && node test/scripts/block-editor-main-editor-smoke.js",
"timeout_seconds": 900
},
"on_failure": {
"cleanup": null
},
"error_log": [],
"checkpoints": [
{
"step": 1,
"total": 1,
2026-04-21 06:26:35 +08:00
"description": "已改为真实 /documents/[id] 承载 8123 runtime,去掉 bridge 假壳,补齐 embed/postMessage 协议,并通过自动拉起 8123 的 smoke 验收截图。",
"timestamp": "2026-04-19T18:24:24Z"
}
],
2026-04-21 06:26:35 +08:00
"completed_at": "2026-04-19T18:24:24Z"
},
{
"id": "task-003",
"title": "执行 P0.5-3:引入稳定 block_id 策略,明确 Rust EditorBlock.block_id 为真相,Tiptap UniqueID 仅作 runtime 辅助",
"status": "pending",
"priority": "P0",
"depends_on": [
"task-001"
],
"attempts": 0,
"max_attempts": 3,
"started_at_commit": null,
"validation": {
"command": "cargo test -p core-protocol editor_block_id && cargo test -p mnote-web editor_block_id_bridge",
"timeout_seconds": 600
},
"on_failure": {
"cleanup": null
},
"error_log": [],
"checkpoints": [],
"completed_at": null
},
{
"id": "task-004",
"title": "执行 P0.5-4:打通 EditorBlockDocument -> Tiptap doc 最小 load adapter,先覆盖 Paragraph/Heading/BulletListItem/NumberedListItem/Todo/Quote/CodeBlock",
"status": "pending",
"priority": "P0",
"depends_on": [
"task-002",
"task-003"
],
"attempts": 0,
"max_attempts": 3,
"started_at_commit": null,
"validation": {
"command": "cargo test -p mnote-web tiptap_load_adapter && cargo test -p mnote-editor-core editor_block_roundtrip_load",
"timeout_seconds": 900
},
"on_failure": {
"cleanup": null
},
"error_log": [],
"checkpoints": [],
"completed_at": null
},
{
"id": "task-005",
"title": "执行 P0.5-5:打通 Tiptap doc -> EditorBlockDocument 最小 save adapter,并把真实页面保存链接到 Rust truth",
"status": "pending",
"priority": "P0",
"depends_on": [
"task-002",
"task-003",
"task-004"
],
"attempts": 0,
"max_attempts": 3,
"started_at_commit": null,
"validation": {
"command": "cargo test -p mnote-web tiptap_save_adapter && cargo test -p mnote-editor-core editor_block_roundtrip_save",
"timeout_seconds": 900
},
"on_failure": {
"cleanup": null
},
"error_log": [],
"checkpoints": [],
"completed_at": null
},
{
"id": "task-006",
"title": "执行 P0.5-6:对齐最小块类型映射与 reload/re-enter 稳定性,确保常用块在真实页面中可稳定往返",
"status": "pending",
"priority": "P0",
"depends_on": [
"task-004",
"task-005"
],
"attempts": 0,
"max_attempts": 3,
"started_at_commit": null,
"validation": {
"command": "cargo test -p core-protocol editor_block_schema && cargo test -p mnote-web editor_reload_roundtrip",
"timeout_seconds": 900
},
"on_failure": {
"cleanup": null
},
"error_log": [],
"checkpoints": [],
"completed_at": null
},
{
"id": "task-007",
"title": "执行 P0.5-7:对齐最小 EditorCommand 合同,先覆盖 ReplaceBlock/InsertBlockAfter/DeleteBlock/SplitBlock/MergeWithPrevious/MoveBlock",
"status": "pending",
"priority": "P0",
"depends_on": [
"task-005",
"task-006"
],
"attempts": 0,
"max_attempts": 3,
"started_at_commit": null,
"validation": {
"command": "cargo test -p core-protocol editor_command_catalog && cargo test -p mnote-web editor_command_mapping",
"timeout_seconds": 900
},
"on_failure": {
"cleanup": null
},
"error_log": [],
"checkpoints": [],
"completed_at": null
},
{
"id": "task-008",
"title": "执行 P0.5-8:把当前已有的 slash、floating toolbar、左侧手柄、块菜单、turn into 迁入主编辑器,并按官方行为模型微调",
"status": "pending",
"priority": "P0",
"depends_on": [
"task-002",
"task-006"
],
"attempts": 0,
"max_attempts": 3,
"started_at_commit": null,
"validation": {
"command": "cargo test -p mnote-web tiptap_surface_ui && cd /mnt/Data1T/mnote && node test/scripts/block-editor-interaction-smoke.js",
"timeout_seconds": 1200
},
"on_failure": {
"cleanup": null
},
"error_log": [],
"checkpoints": [],
"completed_at": null
},
{
"id": "task-009",
2026-04-21 06:26:35 +08:00
"title": "执行 P0.5-9:为图片上传、表格、页面引用、块引用、heading collapse、普通块缩进增强建立显式降级和 feature guard,避免污染正式合同",
"status": "pending",
"priority": "P0",
"depends_on": [
2026-04-21 06:26:35 +08:00
"task-004",
"task-005"
],
2026-04-21 06:26:35 +08:00
"attempts": 0,
"max_attempts": 3,
2026-04-21 06:26:35 +08:00
"started_at_commit": null,
"validation": {
2026-04-21 06:26:35 +08:00
"command": "cargo test -p mnote-web editor_feature_guards && python3 - <<'PY'\nfrom pathlib import Path\npath = Path('/mnt/Data1T/mnote/design/05-editor-mainline/process/5-1-main-editor-cutover-entry-v1.md')\ntext = path.read_text(encoding='utf-8')\nassert '未支持能力降级' in text or '降级策略' in text\nprint('task-009-feature-guard-doc-ok')\nPY",
"timeout_seconds": 600
},
"on_failure": {
"cleanup": null
},
"error_log": [],
2026-04-21 06:26:35 +08:00
"checkpoints": [],
"completed_at": null
},
{
"id": "task-010",
2026-04-21 06:26:35 +08:00
"title": "执行 P0.5-10:建立主编辑器验收链路,覆盖打开文档、编辑常用块、slash 插入、turn into、刷新保留、再次进入保留",
"status": "pending",
"priority": "P0",
"depends_on": [
2026-04-21 06:26:35 +08:00
"task-005",
"task-006",
"task-007",
"task-008",
"task-009"
],
2026-04-21 06:26:35 +08:00
"attempts": 0,
"max_attempts": 3,
2026-04-21 06:26:35 +08:00
"started_at_commit": null,
"validation": {
2026-04-21 06:26:35 +08:00
"command": "cd /mnt/Data1T/mnote && node test/scripts/block-editor-main-editor-acceptance.js && cargo test -p mnote-web main_editor_acceptance",
"timeout_seconds": 1800
},
"on_failure": {
"cleanup": null
},
"error_log": [],
2026-04-21 06:26:35 +08:00
"checkpoints": [],
"completed_at": null
}
],
2026-04-21 06:26:35 +08:00
"session_count": 2,
"last_session": "2026-04-19T18:24:24Z"
2026-04-14 13:22:29 +08:00
}