Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
20b05a6
docs: add remediation plan for the 2026-07-04 deferred-features audit
claude Jul 4, 2026
ee02cfc
docs: Phase 0 — re-drive audit findings F1-F7, record verdicts
claude Jul 4, 2026
ca37449
fix(loro-bridge): round-trip tab_stops and paragraph background_color
claude Jul 4, 2026
5791f66
feat(loro-bridge): native CRDT mappings for lists, quotes, divs, figures
claude Jul 4, 2026
efbd87d
feat(loro-bridge): carry non-Rgb colors, comment/bookmark anchors, qu…
claude Jul 4, 2026
11b2e37
feat: compact Loro CRDT history at the save point (memory Finding 6)
claude Jul 5, 2026
cd11b03
chore: remove the loki-file-access patch — fixes upstreamed as 0.1.3
claude Jul 5, 2026
0e3854d
feat(conformance): bundle Gelasio + vendor pinned schemas; exports sc…
claude Jul 5, 2026
bb800c4
feat(conformance): pinned PDF->PNG rasterizer + SSIM/dE worst-region …
claude Jul 5, 2026
eed5759
feat(render-cpu): vello_cpu candidate render path (Spec 02 D2/M5)
claude Jul 5, 2026
e842477
fix(conformance): split CIEDE2000 math into golden/ciede.rs (300-line…
claude Jul 5, 2026
254a72e
feat(conformance): ODF goldens, calibration record, visual axis live …
claude Jul 5, 2026
e1a6efa
ci(conformance): run all three Spec 02 axes in CI; Phase 3 tracking u…
claude Jul 5, 2026
31e5fd8
feat(layout): honour CharProps.kerning with reference-matching defaul…
claude Jul 5, 2026
4dbada3
Selection-aware editing: typing replaces, Backspace/Delete remove (F6c)
claude Jul 5, 2026
a97e860
Undo-stack clean checkpoint: undoing back to the save point clears dirty
claude Jul 5, 2026
0d5c7c4
Confirmation dialogs: dirty-tab close and recents file delete (all apps)
claude Jul 5, 2026
8fec907
Session retention on tab switch for presentation and spreadsheet
claude Jul 5, 2026
b5b85f4
Path-aware cursor navigation inside table cells and note bodies (4b.4)
claude Jul 5, 2026
c16ca6f
Cross-page Left/Right and page_index recompute after mutations (4b.1)
claude Jul 5, 2026
2d9f584
Multi-block selection formatting (4b.2)
claude Jul 5, 2026
ceab960
Status-bar touch targets: >= 44px-wide full-height hit areas (4c.2)
claude Jul 5, 2026
5c5aea1
Zoom controls, live word count, stable slide keys (4c.5 batch, part 1)
claude Jul 5, 2026
8d0a6fc
Hooks-in-loops fix, spreadsheet ribbon, AtHomeTab breakpoint (4c.5 ba…
claude Jul 6, 2026
c0e0b4a
Disable the ribbon Save button when the document is clean (4b.3 tail)
claude Jul 6, 2026
9276d0d
Fix code-review findings in the Phase 4 editor work
claude Jul 6, 2026
ff6ca9e
Fix CI lint gate: register loki-render-cpu, drop its expect()
claude Jul 6, 2026
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
3 changes: 2 additions & 1 deletion .claude/settings.local.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,8 @@
"Bash(echo \"exit: $?\")",
"Bash(claude plugin *)",
"Bash(cp \"/root/.claude/uploads/995af0a3-e865-5b96-b002-e90985880970/cc51b77a-spec01codebaseauditandarchitecture.md\" \"/home/user/loki/docs/adr/spec-01-codebase-audit-and-architecture.md\" && echo \"placed\" && ls -la docs/adr/spec-01-codebase-audit-and-architecture.md)",
"mcp__code-review-graph__list_graph_stats_tool"
"mcp__code-review-graph__list_graph_stats_tool",
"mcp__Claude_Code_Remote__send_later"
]
},
"enableAllProjectMcpServers": true,
Expand Down
17 changes: 12 additions & 5 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,18 @@ jobs:
- name: Install toolchain
uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Install xmllint (libxml2)
# appthere-conformance's schema axis (Spec 02 M2) shells to xmllint; install
# it so those tests actually run instead of skipping. The harness fails
# loudly if it is absent, so this keeps the schema axis genuinely exercised.
run: sudo apt-get update && sudo apt-get install -y libxml2-utils
- name: Install conformance tools (xmllint, pdftoppm)
# Spec 02 gates, all running as ordinary cargo tests in this job:
# - schema axis (M2): loki-{ooxml,odf} schema_validation.rs shell to
# xmllint against the vendored ISO 29500 / ODF schemas — HARD gate.
# - round-trip axis (M3): conformance_round_trip.rs suites — HARD gate.
# - visual axis (M5): loki-render-cpu visual_golden.rs compares
# vello_cpu renders to the committed LO goldens at the calibrated
# tolerance; needs pdftoppm only for the raster wrapper's own tests.
# Advisory-by-construction: the known kerning divergence is pinned as
# an expected-failure canary (see goldens/CALIBRATION.md).
# Each harness fails loudly if its tool is absent — never skips.
run: sudo apt-get update && sudo apt-get install -y libxml2-utils poppler-utils
# `--all-features` so the feature-gated format crates (pptx, xlsx) and their
# integration tests actually compile and run — under the default feature set
# `cargo test --workspace` silently skips `#![cfg(feature = ...)]` suites.
Expand Down
4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,8 +199,8 @@ but are **not perfectly round-tripped through the Loro CRDT**.

| Field(s) | Status | Priority |
|---|---|---|
| `tab_stops` | Written as unreadable Debug string; not read back. | Medium |
| `background_color` (paragraph) | Written as Debug string; not decoded on read. | Low |
| `tab_stops` | **DONE** (2026-07-04) — structured `"pos:Align:Leader;…"` codec (`loro_bridge/decode.rs`) written and read back; tested by `bridge_tab_stops_roundtrip`. Pre-fix Debug strings decode as absent. | — |
| `background_color` (paragraph) | **DONE** (2026-07-04) — total `DocumentColor` codec (`loro_bridge/color_codec.rs`, covers Rgb/Cmyk/Theme/Transparent) written and read back; tested by `bridge_para_background_color_roundtrip`. | |
| `DocumentMeta` / `DublinCoreMeta` | Round-trips **through the Loro CRDT** (`loro_bridge::meta`) **and is written back on export** — core properties + extended Dublin Core reach DOCX (`docProps/core.xml` + `custom.xml`) and ODT (`meta.xml`), tested by `metadata_round_trip.rs` / `extended_dublin_core_round_trips`. Remaining tail (not the Loro bridge): custom user properties, `meta:editing-duration`, and OOXML `docProps/app.xml` are still not written. | Low |

---
Expand Down
Loading
Loading