CI passed 2m 15s
- Branch
fix/keymail-signin- Commit
a61f0d27Paul Campbell
- Runner
claude~paul@keymail.dev/DOCS-T1- Reported by
claude~paul@keymail.dev/DOCS-T1- Queued
- Started
- Waited for a runner
- 1s
- Last change
- Attempt
- 1 of 2
Steps run in order, one after another.
-
gate passed 2m 14s
=== rust: fmt === rust: clippy Compiling proc-macro2 v1.0.107 Compiling unicode-ident v1.0.24 Compiling quote v1.0.47 Compiling serde_core v1.0.229 Compiling version_check v0.9.5 Compiling zerocopy v0.8.56 Checking cfg-if v1.0.4 Checking once_cell v1.21.4 Compiling serde v1.0.229 Compiling libc v0.2.189 Checking smallvec v1.15.2 Compiling rustversion v1.0.23 Checking parking v2.2.1 Compiling parking_lot_core v0.9.12 Compiling autocfg v1.5.1 Compiling zmij v1.0.23 Compiling crossbeam-utils v0.8.22 Checking pin-project-lite v0.2.17 Compiling thiserror v2.0.20 Checking event-listener v5.4.2 Compiling libm v0.2.16 Compiling serde_json v1.0.151 Compiling ahash v0.8.12 Checking scopeguard v1.2.0 Compiling paste v1.0.15 Checking itoa v1.0.18 Checking memchr v2.8.3 Checking lock_api v0.4.14 Checking foldhash v0.2.0 Compiling num-traits v0.2.19 Checking event-listener-strategy v0.5.4 Checking smallstr v0.3.1 Checking fastrand v2.5.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core/vendor/fastrand-2.5.0) Checking async-lock v3.4.2 Checking indexmap-nostd v0.4.0 Checking downcast-rs v1.2.1 Checking equivalent v1.0.2 Checking semver v1.0.28 Checking bitflags v2.13.1 Checking arrayvec v0.7.8 Checking wasmparser-nostd v0.100.2 Checking multi-stash v0.2.0 Checking spin v0.9.9 Checking arc-swap v1.9.2 Compiling syn v3.0.4 Compiling syn v2.0.119 Checking wasmi_core v0.32.3 Checking hashbrown v0.17.1 Compiling num-derive v0.4.2 Checking indexmap v2.14.1 Compiling serde_derive v1.0.229 Compiling thiserror-impl v2.0.20 Compiling async-trait v0.1.92 Checking hashbrown v0.14.5 Checking dashmap v6.2.1 Checking string-interner v0.17.0 Checking yrs v0.23.5 Checking wasmparser v0.258.0 Checking wasmi_collections v0.32.3 Checking wasmi v0.32.3 Checking slides-core v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core) Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.29s === wasm: the artifact the host embeds Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.06s Compiling proc-macro2 v1.0.107 Compiling unicode-ident v1.0.24 Compiling quote v1.0.47 Compiling cfg-if v1.0.4 Compiling serde_core v1.0.229 Compiling crossbeam-utils v0.8.22 Compiling getrandom v0.4.3 Compiling zmij v1.0.23 Compiling rustversion v1.0.23 Compiling pin-project-lite v0.2.17 Compiling smallvec v1.15.2 Compiling parking_lot_core v0.9.12 Compiling thiserror v2.0.20 Compiling serde v1.0.229 Compiling scopeguard v1.2.0 Compiling serde_json v1.0.151 Compiling memchr v2.8.3 Compiling itoa v1.0.18 Compiling event-listener v5.4.2 Compiling lock_api v0.4.14 Compiling hashbrown v0.14.5 Compiling once_cell v1.21.4 Compiling smallstr v0.3.1 Compiling event-listener-strategy v0.5.4 Compiling fastrand v2.5.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core/vendor/fastrand-2.5.0) Compiling async-lock v3.4.2 Compiling arc-swap v1.9.2 Compiling dashmap v6.2.1 Compiling syn v3.0.4 Compiling thiserror-impl v2.0.20 Compiling serde_derive v1.0.229 Compiling async-trait v0.1.92 Compiling yrs v0.23.5 Compiling slides-core v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core) Finished `release` profile [optimized] target(s) in 12.52s core/target/wasm32-unknown-unknown/release/slides_core.wasm (1228229 bytes) === the embedded wasm must match a fresh build === rust: test Compiling cfg-if v1.0.4 Compiling once_cell v1.21.4 Compiling smallvec v1.15.2 Compiling parking v2.2.1 Compiling pin-project-lite v0.2.17 Compiling serde_core v1.0.229 Compiling zerocopy v0.8.56 Compiling libc v0.2.189 Compiling scopeguard v1.2.0 Compiling crossbeam-utils v0.8.22 Compiling zmij v1.0.23 Compiling foldhash v0.2.0 Compiling itoa v1.0.18 Compiling memchr v2.8.3 Compiling arc-swap v1.9.2 Compiling thiserror v2.0.20 Compiling libm v0.2.16 Compiling event-listener v5.4.2 Compiling lock_api v0.4.14 Compiling num-traits v0.2.19 Compiling indexmap-nostd v0.4.0 Compiling downcast-rs v1.2.1 Compiling equivalent v1.0.2 Compiling fastrand v2.5.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core/vendor/fastrand-2.5.0) Compiling spin v0.9.9 Compiling semver v1.0.28 Compiling event-listener-strategy v0.5.4 Compiling smallstr v0.3.1 Compiling bitflags v2.13.1 Compiling async-lock v3.4.2 Compiling arrayvec v0.7.8 Compiling multi-stash v0.2.0 Compiling wasmparser-nostd v0.100.2 Compiling parking_lot_core v0.9.12 Compiling wasmi_core v0.32.3 Compiling serde v1.0.229 Compiling hashbrown v0.17.1 Compiling serde_json v1.0.151 Compiling indexmap v2.14.1 Compiling wasmparser v0.258.0 Compiling ahash v0.8.12 Compiling hashbrown v0.14.5 Compiling string-interner v0.17.0 Compiling dashmap v6.2.1 Compiling wasmi_collections v0.32.3 Compiling yrs v0.23.5 Compiling wasmi v0.32.3 Compiling slides-core v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core) Finished `test` profile [unoptimized + debuginfo] target(s) in 11.45s Running unittests src/lib.rs (core/target/debug/deps/slides_core-929bfceb2edd4a94) running 30 tests test check::tests::the_empty_document_passes ... ok test layout::tests::body_region_rect_narrows_for_an_aside ... ok test layout::tests::default_region_by_kind ... ok test layout::tests::aside_region_rect ... ok test layout::tests::heading_region_rect ... ok test layout::tests::media_region_rect ... ok test check::tests::what_the_ops_write_passes ... ok test layout::tests::to_canvas_narrows_body_when_an_aside_is_present ... ok test markdown::tests::marks_nest_and_links_carry_marks ... ok test check::tests::bare_text_at_fragment_level_is_reported ... ok test markdown::tests::empty_input_is_no_paragraphs_and_lines_keep_blanks ... ok test markdown::tests::paragraphs_split_on_blank_lines_and_list_markers ... ok test layout::tests::to_canvas_splits_a_shared_region_equally_and_sets_z_by_index ... ok test check::tests::y_prosemirror_shapes_pass ... ok test markdown::tests::inline_marks ... ok test check::tests::a_non_paragraph_child_is_reported ... ok test layout::tests::to_flow_classifies_by_position_and_kind ... ok test layout::tests::to_flow_is_a_no_op_when_already_in_order ... ok test layout::tests::to_flow_orders_y_then_x ... ok test check::tests::an_unknown_formatting_attribute_is_reported ... ok test schema::tests::an_empty_map_reads_as_a_set_mark ... ok test schema::tests::an_href_map_without_a_string_url_reads_as_no_link ... ok test schema::tests::href_is_written_as_a_one_key_map_and_reads_back ... ok test schema::tests::href_written_as_a_plain_string_still_reads_back ... ok test view::tests::malformed_box_is_null_and_phone_keeps_only_typed_fields ... ok test view::tests::malformed_fonts_are_null ... ok test view::tests::assets_are_typed_or_skipped ... ok test check::tests::an_element_inside_a_paragraph_is_reported ... ok test layout::tests::to_flow_keeps_a_concurrent_text_edit ... ok test view::tests::malformed_background_is_the_default ... ok test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/no_host_imports.rs (core/target/debug/deps/no_host_imports-184c0d8bf00e14f9) running 1 test test no_host_imports ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/ops.rs (core/target/debug/deps/ops-256addce27f366d1) running 12 tests test ops_are_atomic ... ok test add_slide_then_view_lists_it ... ok test add_block_with_markdown_produces_runs ... ok test layout_switch_assigns_boxes ... ok test remove_block_drops_it_from_columns_children ... ok test columns_children_must_name_blocks_on_the_slide ... ok test duplicate_slide_remaps_columns_children ... ok test update_roundtrip ... ok test move_block_keeps_a_concurrent_text_edit ... ok test columns_children_have_one_parent_and_no_cycles ... ok test move_slide_keeps_a_concurrent_text_edit ... ok test remaining_ops_roundtrip ... ok test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Doc-tests slides_core running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s === rust: fmt (pdf) === rust: clippy (pdf) Compiling proc-macro2 v1.0.107 Compiling quote v1.0.47 Compiling unicode-ident v1.0.24 Compiling autocfg v1.5.1 Compiling libm v0.2.16 Checking simd-adler32 v0.3.10 Compiling serde_core v1.0.229 Checking arrayvec v0.7.8 Checking log v0.4.34 Checking bitflags v2.13.1 Compiling crc32fast v1.5.1 Checking adler2 v2.0.1 Checking smallvec v1.16.0 Checking cfg-if v1.0.4 Compiling version_check v0.9.5 Compiling libc v0.2.189 Checking foldhash v0.2.0 Checking equivalent v1.0.2 Checking memchr v2.8.3 Checking arrayref v0.3.9 Checking unicode-properties v0.1.4 Checking miniz_oxide v0.9.1 Checking fdeflate v0.3.7 Checking miniz_oxide v0.8.9 Checking unicode-ccc v0.4.0 Checking unicode-bidi-mirroring v0.4.0 Checking polycool v0.4.0 Checking unicode-script v0.5.8 Checking siphasher v1.0.3 Checking roxmltree v0.20.0 Checking tinyvec_macros v0.1.1 Compiling slotmap v1.1.1 Checking tinyvec v1.13.2 Checking kurbo v0.13.1 Checking byteorder-lite v0.1.0 Compiling num-traits v0.2.19 Checking base64 v0.22.1 Checking color_quant v1.1.0 Checking weezl v0.1.12 Checking quick-error v2.0.1 Checking zune-core v0.5.3 Checking imagesize v0.14.0 Checking flate2 v1.1.10 Checking roxmltree v0.21.1 Checking fontconfig-parser v0.5.8 Checking image-webp v0.2.4 Checking simplecss v0.2.2 Checking data-url v0.3.2 Checking gif v0.14.2 Checking zune-jpeg v0.5.15 Checking unicode-bidi v0.3.18 Checking itoa v1.0.18 Checking rustc-hash v2.1.3 Checking unicode-vo v0.1.0 Checking png v0.18.1 Checking xmlwriter v0.1.0 Checking stable_deref_trait v1.2.1 Checking pico-args v0.5.0 Checking ryu v1.0.23 Checking bumpalo v3.20.3 Compiling serde v1.0.229 Compiling syn v3.0.5 Compiling syn v2.0.119 Checking xmp-writer v0.3.3 Checking semver v1.0.28 Checking pdf-writer v0.15.0 Checking svgtypes v0.16.1 Checking core_maths v0.1.1 Checking ttf-parser v0.25.1 Checking memmap2 v0.9.11 Checking float-cmp v0.9.0 Checking strict-num v0.1.1 Checking hashbrown v0.17.1 Checking indexmap v2.14.2 Compiling bytemuck_derive v1.12.0 Checking fontdb v0.23.0 Compiling synstructure v0.13.2 Checking wasmparser v0.258.0 Compiling zerofrom-derive v0.1.7 Compiling yoke-derive v0.8.2 Checking bytemuck v1.25.2 Checking font-types v0.11.3 Checking tiny-skia-path v0.12.0 Checking rustybuzz v0.20.1 Checking rgb v0.8.53 Checking zerofrom v0.1.8 Checking yoke v0.8.3 Checking read-fonts v0.39.2 Checking tiny-skia v0.12.0 Checking usvg v0.47.0 Checking resvg v0.47.0 Checking skrifa v0.42.1 Checking write-fonts v0.48.1 Checking subsetter v0.2.6 Checking krilla v0.8.2 Checking krilla-svg v0.8.1 Checking slides-pdf v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core/pdf) Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.55s === wasm: the pdf artifact the host embeds Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.03s Compiling proc-macro2 v1.0.107 Compiling unicode-ident v1.0.24 Compiling quote v1.0.47 Compiling autocfg v1.5.1 Compiling libm v0.2.16 Compiling arrayvec v0.7.8 Compiling log v0.4.34 Compiling simd-adler32 v0.3.10 Compiling adler2 v2.0.1 Compiling crc32fast v1.5.1 Compiling smallvec v1.16.0 Compiling bitflags v2.13.1 Compiling cfg-if v1.0.4 Compiling version_check v0.9.5 Compiling arrayref v0.3.9 Compiling memchr v2.8.3 Compiling unicode-properties v0.1.4 Compiling fdeflate v0.3.7 Compiling siphasher v1.0.3 Compiling miniz_oxide v0.9.1 Compiling polycool v0.4.0 Compiling miniz_oxide v0.8.9 Compiling unicode-ccc v0.4.0 Compiling tinyvec_macros v0.1.1 Compiling unicode-script v0.5.8 Compiling hashbrown v0.17.1 Compiling unicode-bidi-mirroring v0.4.0 Compiling equivalent v1.0.2 Compiling tinyvec v1.13.2 Compiling zune-core v0.5.3 Compiling base64 v0.22.1 Compiling kurbo v0.13.1 Compiling num-traits v0.2.19 Compiling slotmap v1.1.1 Compiling byteorder-lite v0.1.0 Compiling flate2 v1.1.10 Compiling weezl v0.1.12 Compiling quick-error v2.0.1 Compiling color_quant v1.1.0 Compiling imagesize v0.14.0 Compiling memmap2 v0.9.11 Compiling image-webp v0.2.4 Compiling png v0.18.1 Compiling indexmap v2.14.2 Compiling zune-jpeg v0.5.15 Compiling gif v0.14.2 Compiling syn v3.0.5 Compiling syn v2.0.119 Compiling roxmltree v0.21.1 Compiling simplecss v0.2.2 Compiling float-cmp v0.9.0 Compiling core_maths v0.1.1 Compiling svgtypes v0.16.1 Compiling strict-num v0.1.1 Compiling ttf-parser v0.25.1 Compiling unicode-vo v0.1.0 Compiling unicode-bidi v0.3.18 Compiling xmlwriter v0.1.0 Compiling pico-args v0.5.0 Compiling ryu v1.0.23 Compiling rustc-hash v2.1.3 Compiling itoa v1.0.18 Compiling data-url v0.3.2 Compiling stable_deref_trait v1.2.1 Compiling pdf-writer v0.15.0 Compiling xmp-writer v0.3.3 Compiling bumpalo v3.20.3 Compiling bytemuck_derive v1.12.0 Compiling synstructure v0.13.2 Compiling zerofrom-derive v0.1.7 Compiling yoke-derive v0.8.2 Compiling fontdb v0.23.0 Compiling bytemuck v1.25.2 Compiling zerofrom v0.1.8 Compiling yoke v0.8.3 Compiling font-types v0.11.3 Compiling tiny-skia-path v0.12.0 Compiling rustybuzz v0.20.1 Compiling rgb v0.8.53 Compiling read-fonts v0.39.2 Compiling tiny-skia v0.12.0 Compiling usvg v0.47.0 Compiling resvg v0.47.0 Compiling skrifa v0.42.1 Compiling write-fonts v0.48.1 Compiling subsetter v0.2.6 Compiling krilla v0.8.2 Compiling krilla-svg v0.8.1 Compiling slides-pdf v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core/pdf) Finished `release` profile [optimized] target(s) in 20.60s core/pdf/target/wasm32-unknown-unknown/release/slides_pdf.wasm (5301002 bytes) === the embedded pdf wasm must match a fresh build === rust: test (pdf) Compiling bytemuck v1.25.2 Compiling simd-adler32 v0.3.10 Compiling arrayvec v0.7.8 Compiling log v0.4.34 Compiling adler2 v2.0.1 Compiling smallvec v1.16.0 Compiling bitflags v2.13.1 Compiling cfg-if v1.0.4 Compiling foldhash v0.2.0 Compiling serde_core v1.0.229 Compiling libm v0.2.16 Compiling num-traits v0.2.19 Compiling equivalent v1.0.2 Compiling arrayref v0.3.9 Compiling memchr v2.8.3 Compiling libc v0.2.189 Compiling crc32fast v1.5.1 Compiling siphasher v1.0.3 Compiling roxmltree v0.20.0 Compiling tinyvec_macros v0.1.1 Compiling polycool v0.4.0 Compiling miniz_oxide v0.9.1 Compiling miniz_oxide v0.8.9 Compiling fdeflate v0.3.7 Compiling unicode-properties v0.1.4 Compiling unicode-ccc v0.4.0 Compiling unicode-bidi-mirroring v0.4.0 Compiling unicode-script v0.5.8 Compiling tinyvec v1.13.2 Compiling slotmap v1.1.1 Compiling kurbo v0.13.1 Compiling font-types v0.11.3 Compiling color_quant v1.1.0 Compiling zune-core v0.5.3 Compiling flate2 v1.1.10 Compiling fontconfig-parser v0.5.8 Compiling read-fonts v0.39.2 Compiling quick-error v2.0.1 Compiling byteorder-lite v0.1.0 Compiling base64 v0.22.1 Compiling weezl v0.1.12 Compiling imagesize v0.14.0 Compiling float-cmp v0.9.0 Compiling png v0.18.1 Compiling image-webp v0.2.4 Compiling zune-jpeg v0.5.15 Compiling gif v0.14.2 Compiling zerofrom v0.1.8 Compiling strict-num v0.1.1 Compiling roxmltree v0.21.1 Compiling simplecss v0.2.2 Compiling unicode-bidi v0.3.18 Compiling tiny-skia-path v0.12.0 Compiling ryu v1.0.23 Compiling memmap2 v0.9.11 Compiling core_maths v0.1.1 Compiling ttf-parser v0.25.1 Compiling svgtypes v0.16.1 Compiling xmlwriter v0.1.0 Compiling stable_deref_trait v1.2.1 Compiling pico-args v0.5.0 Compiling unicode-vo v0.1.0 Compiling itoa v1.0.18 Compiling rustc-hash v2.1.3 Compiling data-url v0.3.2 Compiling yoke v0.8.3 Compiling pdf-writer v0.15.0 Compiling rgb v0.8.53 Compiling xmp-writer v0.3.3 Compiling bumpalo v3.20.3 Compiling hashbrown v0.17.1 Compiling tiny-skia v0.12.0 Compiling serde v1.0.229 Compiling semver v1.0.28 Compiling indexmap v2.14.2 Compiling rustybuzz v0.20.1 Compiling fontdb v0.23.0 Compiling wasmparser v0.258.0 Compiling usvg v0.47.0 Compiling write-fonts v0.48.1 Compiling skrifa v0.42.1 Compiling resvg v0.47.0 Compiling subsetter v0.2.6 Compiling krilla v0.8.2 Compiling krilla-svg v0.8.1 Compiling slides-pdf v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core/pdf) Finished `test` profile [unoptimized + debuginfo] target(s) in 17.93s Running unittests src/lib.rs (core/pdf/target/debug/deps/slides_pdf-891fafaa44f9fd64) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/no_host_imports.rs (core/pdf/target/debug/deps/no_host_imports-17ccbb1d62120093) running 1 test test no_host_imports ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running tests/render.rs (core/pdf/target/debug/deps/render-2e1d7e8b19d78595) running 6 tests test a_null_zero_length_pair_is_no_frames_not_a_dereference ... ok test text_with_no_fonts_at_all_still_renders_the_shapes ... ok test raster_image_is_embedded ... ok test abi_frames_round_trip ... ok test renders_text_as_embedded_glyphs ... ok test two_svgs_make_two_pages ... ok test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Doc-tests slides_pdf running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s === fixtures: node dependencies v24.19.0 11.17.0 === fixtures: npm ci (needs the registry — see .amadan/README.md) added 19 packages, and audited 20 packages in 876ms 5 packages are looking for funding run `npm fund` for details found 0 vulnerabilities npm warn allow-scripts 1 package has install scripts not yet covered by allowScripts: npm warn allow-scripts esbuild@0.28.2 (postinstall: node install.js) npm warn allow-scripts npm warn allow-scripts Run `npm approve-scripts --allow-scripts-pending` to review, or `npm approve-scripts <pkg>` to allow. === fixtures: the JS side's own tests ✔ one finished upload is register_asset plus the block that uses it, in one batch (12.513425ms) ✔ a record missing its numbers still makes an op the core accepts (1.032212ms) ✔ unusedAssets is what no slide refers to, and remove_asset drops one (3.141978ms) ✔ the Unused images list reconciles by id and names each Remove button (1.225992ms) ✔ an upload refusal is said in words the person can act on (0.221772ms) ✔ clampBox keeps the box inside the frame and no smaller than the minimum (1.653829ms) ✔ fixBox writes four decimals (0.301982ms) ✔ guides are the thirds plus every other block edge (0.294698ms) ✔ snapMove pulls the nearest edge onto a guide within one per cent, and leaves a far one (0.56907ms) ✔ snapResize moves only the edges the handle drags (0.267839ms) ✔ moveBox and resizeBox by handle (0.318974ms) ✔ nudge: arrows move by half a per cent, Shift by two, Alt resizes (0.264322ms) ✔ rectBox reads a block rectangle against its frame (0.321228ms) ✔ typing into a block is a text change on its slide only (11.247279ms) ✔ a block's props changing is structure on its slide (2.117311ms) ✔ adding, moving or removing a block is structure on its slide (5.569949ms) ✔ the notes are text on their slide (1.508107ms) ✔ a slide added, removed or moved is an order change (2.355876ms) ✔ one transaction touching several things reports each once (1.263733ms) ✔ what the ops write passes, and so does an empty document (11.062825ms) ✔ the shapes y-prosemirror and older documents write pass (2.691039ms) ✔ an unknown formatting attribute is reported with the core's message (2.405217ms) ✔ an element inside a paragraph, a non-paragraph child and bare text are reported (3.541954ms) ✔ the unknownmark poison shape is what the check refuses (15.139844ms) ✔ y-prosemirror 1.3.7 deletes the words under an unknown mark; sanitising first keeps them (24.267828ms) ✔ the vocabulary is the five marks and nothing else (0.223726ms) ✔ a reload reuses the id this tab stored for the deck (1.222385ms) ✔ two tabs, and two decks in one tab, get different ids (1.554053ms) ✔ a stored value that is not an id, or storage that throws, gives a fresh id (0.420312ms) ✔ a duplicated tab gives up the copied id; the original keeps it (7.823573ms) ✔ a reload finds no rival and keeps its id (3.183988ms) ✔ presence switches id: beats carry the new one and the old one is somebody else (1.977812ms) ✔ an empty body is no frames (1.529858ms) ✔ frames come back in order with their exact bytes (0.379827ms) ✔ a length prefix is big-endian (0.180135ms) ✔ a truncated frame throws rather than returning a short update (1.767361ms) ✔ deck controls are set_meta (31.813492ms) ✔ slide controls are set_slide, and background keeps its colour (7.535297ms) ✔ move up and down are move_slide with the right after (4.096597ms) ✔ block props: value kinds, region, a shape label (2.759126ms) ✔ box fields are set_block on the desktop and set_phone in the phone view (6.625013ms) ✔ move block and the layer buttons (2.983072ms) ✔ add block: region after the selection on flow, a default box on canvas, a heading level that fits (13.55252ms) ✔ a block is named by its type and its first words (1.473193ms) ✔ blockChange: a control element to its op (2.374209ms) ✔ the Blocks list reconciles by id and keeps its buttons (1.233446ms) ✔ open resolves to the button that closed it and the trimmed field (1.892804ms) ✔ a second open while the dialog is up joins the first (0.260675ms) ✔ a missing dialog mounts as nothing (0.157704ms) ✔ a tab advances its own cursor only when its POST is the very next row (6.519276ms) ✔ the cursor never moves backwards when a response is overtaken by this tab's own write (0.626967ms) ✔ a later response still carries the cursor forward (0.30623ms) ✔ a burst of notifications collapses into one fetch at a time (0.246909ms) ✔ an event naming a seq the tab already has fetches nothing (0.200333ms) ✔ a stopped subscriber drops a response that arrives late (0.287936ms) ✔ stop closes the stream, and start opens exactly one (0.224057ms) ✔ a hidden tab closes its stream on a shortened deadline, and activity reopens it (1.013156ms) ✔ switching away and back inside the grace never drops the stream, so nothing has to be caught up (0.27906ms) ✔ a visible tab that is only being READ closes when idle and comes back on any activity (0.348078ms) ✔ activity while streaming defers the idle close rather than reopening anything (0.198991ms) ✔ a stream failure is never reported as a save failure, and heals on activity (0.247501ms) ✔ an empty response advances the cursor without applying anything (0.377503ms) ✔ a failed fetch leaves the cursor alone so the next notification retries it (1.694335ms) ✔ a decode failure retries once through the raw log, then gives up (0.270153ms) ✔ updatesURL spells the query string exactly, in particular raw as the literal raw=1 (0.186106ms) ✔ empty_doc_views_as_defaults (5.258909ms) ✔ set_meta (3.898056ms) ✔ slides: add, move, remove, set_slide, set_notes (7.549203ms) ✔ duplicate_slide (5.2105ms) ✔ blocks: add, move, remove, set_block (4.259809ms) ✔ set_phone (1.481207ms) ✔ table cells follow rows and cols (2.07331ms) ✔ canvas blocks: box defaults from the region, z from the index (1.764114ms) ✔ assets: register and remove (1.435633ms) ✔ markdown: every mark, code blocks are plain lines (6.343478ms) ✔ batch_is_atomic (2.272271ms) ✔ a batch applies in one transaction with the given origin (2.803218ms) ✔ columns_children_validated (2.754427ms) ✔ layout_switch_round_trip (3.133835ms) ✔ view_matches_snapshot_fixtures (20.828464ms) ✔ columns children have one parent and no cycles (codex 7) (1.525439ms) ✔ canvas-to-flow keeps a concurrent text edit (codex 4) (6.209319ms) ✔ move_block keeps a concurrent text edit, and later inserts land where after says (codex 4) (5.15673ms) ✔ move_slide keeps a concurrent text edit, and later inserts land where after says (codex 4 at slide level) (4.510306ms) ✔ format: {name} and {n} interpolate; an unknown key is left as text (1.06882ms) ✔ a beat on connect, then one every twenty seconds (2.129134ms) ✔ a move posts once, 200ms after the last of a burst, and re-arms the beat (9.883838ms) ✔ a hidden tab stops beating; coming back posts at once (0.358958ms) ✔ applySet leaves this tab out and answers what changed (0.562908ms) ✔ a set with rubbish in it is read for what it does carry (0.264452ms) ✔ initials, and a client id per tab (7.108193ms) ✔ a resync that fails is retried with backoff until it succeeds, without ever running twice at once (1.630485ms) ✔ the browser's online event retries immediately, not just on the next backoff tick (0.269501ms) ✔ reportDivergence before any failure runs the first attempt without a caller ever calling online (1.007155ms) ✔ a permanent 4xx drops its batch instead of retrying it, and does not poison the next edit (82.220731ms) ✔ a network failure or a 5xx is retried, not dropped (60.076526ms) ✔ a 500 is retried the same way a network failure is, never dropped (60.871908ms) ✔ the core-written structure reads as ProseMirror marks (6.887913ms) ✔ a y-prosemirror round trip preserves bold and the link (3.513421ms) ✔ y-prosemirror writes href as the one-key map and marks as {} (0.868427ms) ✔ a plain-string href, written before the map shape, still reads (0.743594ms) ✔ textFragment writes the same shape as writeText (0.626285ms) ✔ safeHref is the server allowlist, and a disallowed href never draws an anchor (0.457782ms) ✔ parseHash splits the slide and the block, and survives a stray % (1.647777ms) ✔ destroy takes the listeners off, and a second mount leaves one of each (0.739586ms) ✔ formatHash is the inverse (1.04724ms) ✔ textBlocks finds the text-bearing blocks and skips the rest (2.132199ms) ✔ mountTarget is the element whose children are the paragraphs (0.273349ms) ✔ paragraphTag keeps the renderer's own markup per type (0.173773ms) ✔ blockFragment finds a block's text by slide and block id (8.363048ms) ✔ notesFragment finds the slide's notes (1.500944ms) ✔ blockIDs and slideIDs are the orders on the stage and the strip (1.484003ms) ✔ cellFragments are a table's cells, row-major (1.852699ms) ✔ a load that fails leaves the stage on the slide it was showing and says so (1.667113ms) ✔ slideAfter is the slide to show once one is gone (0.266777ms) ✔ the queue words map to savestatus states, failed staying failed (5.283216ms) ✔ a dropped batch outranks the queue, for the rest of the session (0.286934ms) ✔ the editor status: the save line and the load error are two lines (0.309086ms) ✔ mountSaveStatus loads estilo's module and mounts it on the line (1.000793ms) ✔ a save-status module that will not load says so and refuses to mount (0.485594ms) ✔ dropTarget: before puts it ahead of the item, after behind it, null means first (1.556027ms) ✔ a drop that leaves the order as it is is no move (0.234857ms) ✔ dropOp is the move_slide (0.793717ms) ✔ labelFor is the slide's first heading, else the numbered fallback (6.454525ms) ✔ flush re-points every dirty thumbnail and relabels it (2.463946ms) ✔ destroy takes the item-menu listener off; a second mount leaves one (0.430561ms) ✔ plan says what to add, drop and where each item goes (1.100929ms) ✔ sync moves only the items out of place and keeps focus (1.961331ms) ✔ desktop view: box and size are the block; hidden and order are always the phone map (1.320117ms) ✔ phone view: everything goes to set_phone, carrying the rest of the map (0.766187ms) ✔ the ops it makes are ones the document takes (9.843634ms) ✔ phoneMap reads only the four keys, and only well-typed (0.209179ms) ✔ the stored view is read defensively (0.270794ms) ✔ linkAt reads the link under the cursor and nothing elsewhere (3.370104ms) ✔ setLink marks the selection (2.660392ms) ✔ setLink on a collapsed cursor inside a link replaces that link (1.037462ms) ✔ setLink with nothing selected and no link does nothing (0.330946ms) ✔ removeLink clears the link under the cursor (0.664277ms) ✔ the keymap binds every documented shortcut (0.280001ms) ✔ Mod-b toggles bold through the keymap (0.862626ms) ✔ setLink refuses an address outside the allowlist and writes nothing (0.742472ms) ✔ the state machine runs choose → sign → put → register → op (3.150915ms) ✔ a file the deck will not take never reaches the network (0.680807ms) ✔ alt text is required before the bytes move, unless the image is decorative (0.366903ms) ✔ a step that fails stops the ones after it and reports its own code (0.598805ms) ✔ a failure that is not ours still becomes an UploadError (0.335194ms) ✔ a second pick while one is in flight is refused, not raced (0.427916ms) ✔ an unreadable size is zero rather than a failure (0.268821ms) ✔ a per-call applyOp wins, so an upload lands on the block it was chosen for (0.264222ms) ✔ checkFile takes exactly the four types (0.433617ms) ✔ sha256Hex is the hex digest of the bytes (13.411797ms) ✔ refusal reads this app's JSON error shape, and survives one that is not (0.361392ms) ✔ malformed fonts are null (4.406974ms) ✔ a malformed background is the theme default (2.571688ms) ✔ a malformed box is null (1.440993ms) ✔ the phone layer keeps only its typed fields, order as a whole number (1.436393ms) ✔ assets are typed or skipped (1.34845ms) ✔ every poison update is deterministic bytes that apply to any deck (12.934599ms) ℹ tests 158 ℹ suites 0 ℹ pass 158 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 367.47483 === the vectors must match a fresh generation canvas: 22 ops, 3715 bytes columns: 23 ops, 3134 bytes every-block: 36 ops, 3180 bytes table: 14 ops, 1509 bytes title-only: 6 ops, 1136 bytes === the editor bundle must match a fresh build wrote internal/slides/static/editor.0463180baf5aab9f.js (376416 bytes) === go: vet, gofmt, test, migration check go vet ./... go test ./... ? amadan.net/oficina/slides/cmd/slides [no test files] ok amadan.net/oficina/slides/internal/slides 12.711s ok amadan.net/oficina/slides/internal/slides/core 2.861s ok amadan.net/oficina/slides/internal/slides/deck 0.006s ok amadan.net/oficina/slides/internal/slides/fonts 0.017s ? amadan.net/oficina/slides/internal/slides/icons [no test files] ? amadan.net/oficina/slides/internal/slides/keymailtest [no test files] ok amadan.net/oficina/slides/internal/slides/layout 0.021s ok amadan.net/oficina/slides/internal/slides/live 0.004s ok amadan.net/oficina/slides/internal/slides/pdfcore 4.181s ok amadan.net/oficina/slides/internal/slides/present 0.009s ok amadan.net/oficina/slides/internal/slides/render 0.015s ok amadan.net/oficina/slides/internal/slides/svg 0.016s ok amadan.net/oficina/slides/internal/slidestest 40.562s ? amadan.net/oficina/slides/scripts/writeestilo [no test files] go run amadan.net/rastrillo/rastrillo/cmd/rastrillo migration check rastrillo migration check: models and migrations agree python3 scripts/credits.py --check credits: checked gate: ok
Whole run log
=== gate ===
=== rust: fmt
=== rust: clippy
Compiling proc-macro2 v1.0.107
Compiling unicode-ident v1.0.24
Compiling quote v1.0.47
Compiling serde_core v1.0.229
Compiling version_check v0.9.5
Compiling zerocopy v0.8.56
Checking cfg-if v1.0.4
Checking once_cell v1.21.4
Compiling serde v1.0.229
Compiling libc v0.2.189
Checking smallvec v1.15.2
Compiling rustversion v1.0.23
Checking parking v2.2.1
Compiling parking_lot_core v0.9.12
Compiling autocfg v1.5.1
Compiling zmij v1.0.23
Compiling crossbeam-utils v0.8.22
Checking pin-project-lite v0.2.17
Compiling thiserror v2.0.20
Checking event-listener v5.4.2
Compiling libm v0.2.16
Compiling serde_json v1.0.151
Compiling ahash v0.8.12
Checking scopeguard v1.2.0
Compiling paste v1.0.15
Checking itoa v1.0.18
Checking memchr v2.8.3
Checking lock_api v0.4.14
Checking foldhash v0.2.0
Compiling num-traits v0.2.19
Checking event-listener-strategy v0.5.4
Checking smallstr v0.3.1
Checking fastrand v2.5.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core/vendor/fastrand-2.5.0)
Checking async-lock v3.4.2
Checking indexmap-nostd v0.4.0
Checking downcast-rs v1.2.1
Checking equivalent v1.0.2
Checking semver v1.0.28
Checking bitflags v2.13.1
Checking arrayvec v0.7.8
Checking wasmparser-nostd v0.100.2
Checking multi-stash v0.2.0
Checking spin v0.9.9
Checking arc-swap v1.9.2
Compiling syn v3.0.4
Compiling syn v2.0.119
Checking wasmi_core v0.32.3
Checking hashbrown v0.17.1
Compiling num-derive v0.4.2
Checking indexmap v2.14.1
Compiling serde_derive v1.0.229
Compiling thiserror-impl v2.0.20
Compiling async-trait v0.1.92
Checking hashbrown v0.14.5
Checking dashmap v6.2.1
Checking string-interner v0.17.0
Checking yrs v0.23.5
Checking wasmparser v0.258.0
Checking wasmi_collections v0.32.3
Checking wasmi v0.32.3
Checking slides-core v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.29s
=== wasm: the artifact the host embeds
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.06s
Compiling proc-macro2 v1.0.107
Compiling unicode-ident v1.0.24
Compiling quote v1.0.47
Compiling cfg-if v1.0.4
Compiling serde_core v1.0.229
Compiling crossbeam-utils v0.8.22
Compiling getrandom v0.4.3
Compiling zmij v1.0.23
Compiling rustversion v1.0.23
Compiling pin-project-lite v0.2.17
Compiling smallvec v1.15.2
Compiling parking_lot_core v0.9.12
Compiling thiserror v2.0.20
Compiling serde v1.0.229
Compiling scopeguard v1.2.0
Compiling serde_json v1.0.151
Compiling memchr v2.8.3
Compiling itoa v1.0.18
Compiling event-listener v5.4.2
Compiling lock_api v0.4.14
Compiling hashbrown v0.14.5
Compiling once_cell v1.21.4
Compiling smallstr v0.3.1
Compiling event-listener-strategy v0.5.4
Compiling fastrand v2.5.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core/vendor/fastrand-2.5.0)
Compiling async-lock v3.4.2
Compiling arc-swap v1.9.2
Compiling dashmap v6.2.1
Compiling syn v3.0.4
Compiling thiserror-impl v2.0.20
Compiling serde_derive v1.0.229
Compiling async-trait v0.1.92
Compiling yrs v0.23.5
Compiling slides-core v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core)
Finished `release` profile [optimized] target(s) in 12.52s
core/target/wasm32-unknown-unknown/release/slides_core.wasm (1228229 bytes)
=== the embedded wasm must match a fresh build
=== rust: test
Compiling cfg-if v1.0.4
Compiling once_cell v1.21.4
Compiling smallvec v1.15.2
Compiling parking v2.2.1
Compiling pin-project-lite v0.2.17
Compiling serde_core v1.0.229
Compiling zerocopy v0.8.56
Compiling libc v0.2.189
Compiling scopeguard v1.2.0
Compiling crossbeam-utils v0.8.22
Compiling zmij v1.0.23
Compiling foldhash v0.2.0
Compiling itoa v1.0.18
Compiling memchr v2.8.3
Compiling arc-swap v1.9.2
Compiling thiserror v2.0.20
Compiling libm v0.2.16
Compiling event-listener v5.4.2
Compiling lock_api v0.4.14
Compiling num-traits v0.2.19
Compiling indexmap-nostd v0.4.0
Compiling downcast-rs v1.2.1
Compiling equivalent v1.0.2
Compiling fastrand v2.5.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core/vendor/fastrand-2.5.0)
Compiling spin v0.9.9
Compiling semver v1.0.28
Compiling event-listener-strategy v0.5.4
Compiling smallstr v0.3.1
Compiling bitflags v2.13.1
Compiling async-lock v3.4.2
Compiling arrayvec v0.7.8
Compiling multi-stash v0.2.0
Compiling wasmparser-nostd v0.100.2
Compiling parking_lot_core v0.9.12
Compiling wasmi_core v0.32.3
Compiling serde v1.0.229
Compiling hashbrown v0.17.1
Compiling serde_json v1.0.151
Compiling indexmap v2.14.1
Compiling wasmparser v0.258.0
Compiling ahash v0.8.12
Compiling hashbrown v0.14.5
Compiling string-interner v0.17.0
Compiling dashmap v6.2.1
Compiling wasmi_collections v0.32.3
Compiling yrs v0.23.5
Compiling wasmi v0.32.3
Compiling slides-core v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core)
Finished `test` profile [unoptimized + debuginfo] target(s) in 11.45s
Running unittests src/lib.rs (core/target/debug/deps/slides_core-929bfceb2edd4a94)
running 30 tests
test check::tests::the_empty_document_passes ... ok
test layout::tests::body_region_rect_narrows_for_an_aside ... ok
test layout::tests::default_region_by_kind ... ok
test layout::tests::aside_region_rect ... ok
test layout::tests::heading_region_rect ... ok
test layout::tests::media_region_rect ... ok
test check::tests::what_the_ops_write_passes ... ok
test layout::tests::to_canvas_narrows_body_when_an_aside_is_present ... ok
test markdown::tests::marks_nest_and_links_carry_marks ... ok
test check::tests::bare_text_at_fragment_level_is_reported ... ok
test markdown::tests::empty_input_is_no_paragraphs_and_lines_keep_blanks ... ok
test markdown::tests::paragraphs_split_on_blank_lines_and_list_markers ... ok
test layout::tests::to_canvas_splits_a_shared_region_equally_and_sets_z_by_index ... ok
test check::tests::y_prosemirror_shapes_pass ... ok
test markdown::tests::inline_marks ... ok
test check::tests::a_non_paragraph_child_is_reported ... ok
test layout::tests::to_flow_classifies_by_position_and_kind ... ok
test layout::tests::to_flow_is_a_no_op_when_already_in_order ... ok
test layout::tests::to_flow_orders_y_then_x ... ok
test check::tests::an_unknown_formatting_attribute_is_reported ... ok
test schema::tests::an_empty_map_reads_as_a_set_mark ... ok
test schema::tests::an_href_map_without_a_string_url_reads_as_no_link ... ok
test schema::tests::href_is_written_as_a_one_key_map_and_reads_back ... ok
test schema::tests::href_written_as_a_plain_string_still_reads_back ... ok
test view::tests::malformed_box_is_null_and_phone_keeps_only_typed_fields ... ok
test view::tests::malformed_fonts_are_null ... ok
test view::tests::assets_are_typed_or_skipped ... ok
test check::tests::an_element_inside_a_paragraph_is_reported ... ok
test layout::tests::to_flow_keeps_a_concurrent_text_edit ... ok
test view::tests::malformed_background_is_the_default ... ok
test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running tests/no_host_imports.rs (core/target/debug/deps/no_host_imports-184c0d8bf00e14f9)
running 1 test
test no_host_imports ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running tests/ops.rs (core/target/debug/deps/ops-256addce27f366d1)
running 12 tests
test ops_are_atomic ... ok
test add_slide_then_view_lists_it ... ok
test add_block_with_markdown_produces_runs ... ok
test layout_switch_assigns_boxes ... ok
test remove_block_drops_it_from_columns_children ... ok
test columns_children_must_name_blocks_on_the_slide ... ok
test duplicate_slide_remaps_columns_children ... ok
test update_roundtrip ... ok
test move_block_keeps_a_concurrent_text_edit ... ok
test columns_children_have_one_parent_and_no_cycles ... ok
test move_slide_keeps_a_concurrent_text_edit ... ok
test remaining_ops_roundtrip ... ok
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
Doc-tests slides_core
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
=== rust: fmt (pdf)
=== rust: clippy (pdf)
Compiling proc-macro2 v1.0.107
Compiling quote v1.0.47
Compiling unicode-ident v1.0.24
Compiling autocfg v1.5.1
Compiling libm v0.2.16
Checking simd-adler32 v0.3.10
Compiling serde_core v1.0.229
Checking arrayvec v0.7.8
Checking log v0.4.34
Checking bitflags v2.13.1
Compiling crc32fast v1.5.1
Checking adler2 v2.0.1
Checking smallvec v1.16.0
Checking cfg-if v1.0.4
Compiling version_check v0.9.5
Compiling libc v0.2.189
Checking foldhash v0.2.0
Checking equivalent v1.0.2
Checking memchr v2.8.3
Checking arrayref v0.3.9
Checking unicode-properties v0.1.4
Checking miniz_oxide v0.9.1
Checking fdeflate v0.3.7
Checking miniz_oxide v0.8.9
Checking unicode-ccc v0.4.0
Checking unicode-bidi-mirroring v0.4.0
Checking polycool v0.4.0
Checking unicode-script v0.5.8
Checking siphasher v1.0.3
Checking roxmltree v0.20.0
Checking tinyvec_macros v0.1.1
Compiling slotmap v1.1.1
Checking tinyvec v1.13.2
Checking kurbo v0.13.1
Checking byteorder-lite v0.1.0
Compiling num-traits v0.2.19
Checking base64 v0.22.1
Checking color_quant v1.1.0
Checking weezl v0.1.12
Checking quick-error v2.0.1
Checking zune-core v0.5.3
Checking imagesize v0.14.0
Checking flate2 v1.1.10
Checking roxmltree v0.21.1
Checking fontconfig-parser v0.5.8
Checking image-webp v0.2.4
Checking simplecss v0.2.2
Checking data-url v0.3.2
Checking gif v0.14.2
Checking zune-jpeg v0.5.15
Checking unicode-bidi v0.3.18
Checking itoa v1.0.18
Checking rustc-hash v2.1.3
Checking unicode-vo v0.1.0
Checking png v0.18.1
Checking xmlwriter v0.1.0
Checking stable_deref_trait v1.2.1
Checking pico-args v0.5.0
Checking ryu v1.0.23
Checking bumpalo v3.20.3
Compiling serde v1.0.229
Compiling syn v3.0.5
Compiling syn v2.0.119
Checking xmp-writer v0.3.3
Checking semver v1.0.28
Checking pdf-writer v0.15.0
Checking svgtypes v0.16.1
Checking core_maths v0.1.1
Checking ttf-parser v0.25.1
Checking memmap2 v0.9.11
Checking float-cmp v0.9.0
Checking strict-num v0.1.1
Checking hashbrown v0.17.1
Checking indexmap v2.14.2
Compiling bytemuck_derive v1.12.0
Checking fontdb v0.23.0
Compiling synstructure v0.13.2
Checking wasmparser v0.258.0
Compiling zerofrom-derive v0.1.7
Compiling yoke-derive v0.8.2
Checking bytemuck v1.25.2
Checking font-types v0.11.3
Checking tiny-skia-path v0.12.0
Checking rustybuzz v0.20.1
Checking rgb v0.8.53
Checking zerofrom v0.1.8
Checking yoke v0.8.3
Checking read-fonts v0.39.2
Checking tiny-skia v0.12.0
Checking usvg v0.47.0
Checking resvg v0.47.0
Checking skrifa v0.42.1
Checking write-fonts v0.48.1
Checking subsetter v0.2.6
Checking krilla v0.8.2
Checking krilla-svg v0.8.1
Checking slides-pdf v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core/pdf)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.55s
=== wasm: the pdf artifact the host embeds
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.03s
Compiling proc-macro2 v1.0.107
Compiling unicode-ident v1.0.24
Compiling quote v1.0.47
Compiling autocfg v1.5.1
Compiling libm v0.2.16
Compiling arrayvec v0.7.8
Compiling log v0.4.34
Compiling simd-adler32 v0.3.10
Compiling adler2 v2.0.1
Compiling crc32fast v1.5.1
Compiling smallvec v1.16.0
Compiling bitflags v2.13.1
Compiling cfg-if v1.0.4
Compiling version_check v0.9.5
Compiling arrayref v0.3.9
Compiling memchr v2.8.3
Compiling unicode-properties v0.1.4
Compiling fdeflate v0.3.7
Compiling siphasher v1.0.3
Compiling miniz_oxide v0.9.1
Compiling polycool v0.4.0
Compiling miniz_oxide v0.8.9
Compiling unicode-ccc v0.4.0
Compiling tinyvec_macros v0.1.1
Compiling unicode-script v0.5.8
Compiling hashbrown v0.17.1
Compiling unicode-bidi-mirroring v0.4.0
Compiling equivalent v1.0.2
Compiling tinyvec v1.13.2
Compiling zune-core v0.5.3
Compiling base64 v0.22.1
Compiling kurbo v0.13.1
Compiling num-traits v0.2.19
Compiling slotmap v1.1.1
Compiling byteorder-lite v0.1.0
Compiling flate2 v1.1.10
Compiling weezl v0.1.12
Compiling quick-error v2.0.1
Compiling color_quant v1.1.0
Compiling imagesize v0.14.0
Compiling memmap2 v0.9.11
Compiling image-webp v0.2.4
Compiling png v0.18.1
Compiling indexmap v2.14.2
Compiling zune-jpeg v0.5.15
Compiling gif v0.14.2
Compiling syn v3.0.5
Compiling syn v2.0.119
Compiling roxmltree v0.21.1
Compiling simplecss v0.2.2
Compiling float-cmp v0.9.0
Compiling core_maths v0.1.1
Compiling svgtypes v0.16.1
Compiling strict-num v0.1.1
Compiling ttf-parser v0.25.1
Compiling unicode-vo v0.1.0
Compiling unicode-bidi v0.3.18
Compiling xmlwriter v0.1.0
Compiling pico-args v0.5.0
Compiling ryu v1.0.23
Compiling rustc-hash v2.1.3
Compiling itoa v1.0.18
Compiling data-url v0.3.2
Compiling stable_deref_trait v1.2.1
Compiling pdf-writer v0.15.0
Compiling xmp-writer v0.3.3
Compiling bumpalo v3.20.3
Compiling bytemuck_derive v1.12.0
Compiling synstructure v0.13.2
Compiling zerofrom-derive v0.1.7
Compiling yoke-derive v0.8.2
Compiling fontdb v0.23.0
Compiling bytemuck v1.25.2
Compiling zerofrom v0.1.8
Compiling yoke v0.8.3
Compiling font-types v0.11.3
Compiling tiny-skia-path v0.12.0
Compiling rustybuzz v0.20.1
Compiling rgb v0.8.53
Compiling read-fonts v0.39.2
Compiling tiny-skia v0.12.0
Compiling usvg v0.47.0
Compiling resvg v0.47.0
Compiling skrifa v0.42.1
Compiling write-fonts v0.48.1
Compiling subsetter v0.2.6
Compiling krilla v0.8.2
Compiling krilla-svg v0.8.1
Compiling slides-pdf v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core/pdf)
Finished `release` profile [optimized] target(s) in 20.60s
core/pdf/target/wasm32-unknown-unknown/release/slides_pdf.wasm (5301002 bytes)
=== the embedded pdf wasm must match a fresh build
=== rust: test (pdf)
Compiling bytemuck v1.25.2
Compiling simd-adler32 v0.3.10
Compiling arrayvec v0.7.8
Compiling log v0.4.34
Compiling adler2 v2.0.1
Compiling smallvec v1.16.0
Compiling bitflags v2.13.1
Compiling cfg-if v1.0.4
Compiling foldhash v0.2.0
Compiling serde_core v1.0.229
Compiling libm v0.2.16
Compiling num-traits v0.2.19
Compiling equivalent v1.0.2
Compiling arrayref v0.3.9
Compiling memchr v2.8.3
Compiling libc v0.2.189
Compiling crc32fast v1.5.1
Compiling siphasher v1.0.3
Compiling roxmltree v0.20.0
Compiling tinyvec_macros v0.1.1
Compiling polycool v0.4.0
Compiling miniz_oxide v0.9.1
Compiling miniz_oxide v0.8.9
Compiling fdeflate v0.3.7
Compiling unicode-properties v0.1.4
Compiling unicode-ccc v0.4.0
Compiling unicode-bidi-mirroring v0.4.0
Compiling unicode-script v0.5.8
Compiling tinyvec v1.13.2
Compiling slotmap v1.1.1
Compiling kurbo v0.13.1
Compiling font-types v0.11.3
Compiling color_quant v1.1.0
Compiling zune-core v0.5.3
Compiling flate2 v1.1.10
Compiling fontconfig-parser v0.5.8
Compiling read-fonts v0.39.2
Compiling quick-error v2.0.1
Compiling byteorder-lite v0.1.0
Compiling base64 v0.22.1
Compiling weezl v0.1.12
Compiling imagesize v0.14.0
Compiling float-cmp v0.9.0
Compiling png v0.18.1
Compiling image-webp v0.2.4
Compiling zune-jpeg v0.5.15
Compiling gif v0.14.2
Compiling zerofrom v0.1.8
Compiling strict-num v0.1.1
Compiling roxmltree v0.21.1
Compiling simplecss v0.2.2
Compiling unicode-bidi v0.3.18
Compiling tiny-skia-path v0.12.0
Compiling ryu v1.0.23
Compiling memmap2 v0.9.11
Compiling core_maths v0.1.1
Compiling ttf-parser v0.25.1
Compiling svgtypes v0.16.1
Compiling xmlwriter v0.1.0
Compiling stable_deref_trait v1.2.1
Compiling pico-args v0.5.0
Compiling unicode-vo v0.1.0
Compiling itoa v1.0.18
Compiling rustc-hash v2.1.3
Compiling data-url v0.3.2
Compiling yoke v0.8.3
Compiling pdf-writer v0.15.0
Compiling rgb v0.8.53
Compiling xmp-writer v0.3.3
Compiling bumpalo v3.20.3
Compiling hashbrown v0.17.1
Compiling tiny-skia v0.12.0
Compiling serde v1.0.229
Compiling semver v1.0.28
Compiling indexmap v2.14.2
Compiling rustybuzz v0.20.1
Compiling fontdb v0.23.0
Compiling wasmparser v0.258.0
Compiling usvg v0.47.0
Compiling write-fonts v0.48.1
Compiling skrifa v0.42.1
Compiling resvg v0.47.0
Compiling subsetter v0.2.6
Compiling krilla v0.8.2
Compiling krilla-svg v0.8.1
Compiling slides-pdf v0.1.0 (/home/paulca/.local/state/amadan/runner/repos/oficina__slides/wt/fix__keymail-signin/core/pdf)
Finished `test` profile [unoptimized + debuginfo] target(s) in 17.93s
Running unittests src/lib.rs (core/pdf/target/debug/deps/slides_pdf-891fafaa44f9fd64)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running tests/no_host_imports.rs (core/pdf/target/debug/deps/no_host_imports-17ccbb1d62120093)
running 1 test
test no_host_imports ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
Running tests/render.rs (core/pdf/target/debug/deps/render-2e1d7e8b19d78595)
running 6 tests
test a_null_zero_length_pair_is_no_frames_not_a_dereference ... ok
test text_with_no_fonts_at_all_still_renders_the_shapes ... ok
test raster_image_is_embedded ... ok
test abi_frames_round_trip ... ok
test renders_text_as_embedded_glyphs ... ok
test two_svgs_make_two_pages ... ok
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
Doc-tests slides_pdf
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
=== fixtures: node dependencies
v24.19.0
11.17.0
=== fixtures: npm ci (needs the registry — see .amadan/README.md)
added 19 packages, and audited 20 packages in 876ms
5 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
npm warn allow-scripts 1 package has install scripts not yet covered by allowScripts:
npm warn allow-scripts esbuild@0.28.2 (postinstall: node install.js)
npm warn allow-scripts
npm warn allow-scripts Run `npm approve-scripts --allow-scripts-pending` to review, or `npm approve-scripts <pkg>` to allow.
=== fixtures: the JS side's own tests
✔ one finished upload is register_asset plus the block that uses it, in one batch (12.513425ms)
✔ a record missing its numbers still makes an op the core accepts (1.032212ms)
✔ unusedAssets is what no slide refers to, and remove_asset drops one (3.141978ms)
✔ the Unused images list reconciles by id and names each Remove button (1.225992ms)
✔ an upload refusal is said in words the person can act on (0.221772ms)
✔ clampBox keeps the box inside the frame and no smaller than the minimum (1.653829ms)
✔ fixBox writes four decimals (0.301982ms)
✔ guides are the thirds plus every other block edge (0.294698ms)
✔ snapMove pulls the nearest edge onto a guide within one per cent, and leaves a far one (0.56907ms)
✔ snapResize moves only the edges the handle drags (0.267839ms)
✔ moveBox and resizeBox by handle (0.318974ms)
✔ nudge: arrows move by half a per cent, Shift by two, Alt resizes (0.264322ms)
✔ rectBox reads a block rectangle against its frame (0.321228ms)
✔ typing into a block is a text change on its slide only (11.247279ms)
✔ a block's props changing is structure on its slide (2.117311ms)
✔ adding, moving or removing a block is structure on its slide (5.569949ms)
✔ the notes are text on their slide (1.508107ms)
✔ a slide added, removed or moved is an order change (2.355876ms)
✔ one transaction touching several things reports each once (1.263733ms)
✔ what the ops write passes, and so does an empty document (11.062825ms)
✔ the shapes y-prosemirror and older documents write pass (2.691039ms)
✔ an unknown formatting attribute is reported with the core's message (2.405217ms)
✔ an element inside a paragraph, a non-paragraph child and bare text are reported (3.541954ms)
✔ the unknownmark poison shape is what the check refuses (15.139844ms)
✔ y-prosemirror 1.3.7 deletes the words under an unknown mark; sanitising first keeps them (24.267828ms)
✔ the vocabulary is the five marks and nothing else (0.223726ms)
✔ a reload reuses the id this tab stored for the deck (1.222385ms)
✔ two tabs, and two decks in one tab, get different ids (1.554053ms)
✔ a stored value that is not an id, or storage that throws, gives a fresh id (0.420312ms)
✔ a duplicated tab gives up the copied id; the original keeps it (7.823573ms)
✔ a reload finds no rival and keeps its id (3.183988ms)
✔ presence switches id: beats carry the new one and the old one is somebody else (1.977812ms)
✔ an empty body is no frames (1.529858ms)
✔ frames come back in order with their exact bytes (0.379827ms)
✔ a length prefix is big-endian (0.180135ms)
✔ a truncated frame throws rather than returning a short update (1.767361ms)
✔ deck controls are set_meta (31.813492ms)
✔ slide controls are set_slide, and background keeps its colour (7.535297ms)
✔ move up and down are move_slide with the right after (4.096597ms)
✔ block props: value kinds, region, a shape label (2.759126ms)
✔ box fields are set_block on the desktop and set_phone in the phone view (6.625013ms)
✔ move block and the layer buttons (2.983072ms)
✔ add block: region after the selection on flow, a default box on canvas, a heading level that fits (13.55252ms)
✔ a block is named by its type and its first words (1.473193ms)
✔ blockChange: a control element to its op (2.374209ms)
✔ the Blocks list reconciles by id and keeps its buttons (1.233446ms)
✔ open resolves to the button that closed it and the trimmed field (1.892804ms)
✔ a second open while the dialog is up joins the first (0.260675ms)
✔ a missing dialog mounts as nothing (0.157704ms)
✔ a tab advances its own cursor only when its POST is the very next row (6.519276ms)
✔ the cursor never moves backwards when a response is overtaken by this tab's own write (0.626967ms)
✔ a later response still carries the cursor forward (0.30623ms)
✔ a burst of notifications collapses into one fetch at a time (0.246909ms)
✔ an event naming a seq the tab already has fetches nothing (0.200333ms)
✔ a stopped subscriber drops a response that arrives late (0.287936ms)
✔ stop closes the stream, and start opens exactly one (0.224057ms)
✔ a hidden tab closes its stream on a shortened deadline, and activity reopens it (1.013156ms)
✔ switching away and back inside the grace never drops the stream, so nothing has to be caught up (0.27906ms)
✔ a visible tab that is only being READ closes when idle and comes back on any activity (0.348078ms)
✔ activity while streaming defers the idle close rather than reopening anything (0.198991ms)
✔ a stream failure is never reported as a save failure, and heals on activity (0.247501ms)
✔ an empty response advances the cursor without applying anything (0.377503ms)
✔ a failed fetch leaves the cursor alone so the next notification retries it (1.694335ms)
✔ a decode failure retries once through the raw log, then gives up (0.270153ms)
✔ updatesURL spells the query string exactly, in particular raw as the literal raw=1 (0.186106ms)
✔ empty_doc_views_as_defaults (5.258909ms)
✔ set_meta (3.898056ms)
✔ slides: add, move, remove, set_slide, set_notes (7.549203ms)
✔ duplicate_slide (5.2105ms)
✔ blocks: add, move, remove, set_block (4.259809ms)
✔ set_phone (1.481207ms)
✔ table cells follow rows and cols (2.07331ms)
✔ canvas blocks: box defaults from the region, z from the index (1.764114ms)
✔ assets: register and remove (1.435633ms)
✔ markdown: every mark, code blocks are plain lines (6.343478ms)
✔ batch_is_atomic (2.272271ms)
✔ a batch applies in one transaction with the given origin (2.803218ms)
✔ columns_children_validated (2.754427ms)
✔ layout_switch_round_trip (3.133835ms)
✔ view_matches_snapshot_fixtures (20.828464ms)
✔ columns children have one parent and no cycles (codex 7) (1.525439ms)
✔ canvas-to-flow keeps a concurrent text edit (codex 4) (6.209319ms)
✔ move_block keeps a concurrent text edit, and later inserts land where after says (codex 4) (5.15673ms)
✔ move_slide keeps a concurrent text edit, and later inserts land where after says (codex 4 at slide level) (4.510306ms)
✔ format: {name} and {n} interpolate; an unknown key is left as text (1.06882ms)
✔ a beat on connect, then one every twenty seconds (2.129134ms)
✔ a move posts once, 200ms after the last of a burst, and re-arms the beat (9.883838ms)
✔ a hidden tab stops beating; coming back posts at once (0.358958ms)
✔ applySet leaves this tab out and answers what changed (0.562908ms)
✔ a set with rubbish in it is read for what it does carry (0.264452ms)
✔ initials, and a client id per tab (7.108193ms)
✔ a resync that fails is retried with backoff until it succeeds, without ever running twice at once (1.630485ms)
✔ the browser's online event retries immediately, not just on the next backoff tick (0.269501ms)
✔ reportDivergence before any failure runs the first attempt without a caller ever calling online (1.007155ms)
✔ a permanent 4xx drops its batch instead of retrying it, and does not poison the next edit (82.220731ms)
✔ a network failure or a 5xx is retried, not dropped (60.076526ms)
✔ a 500 is retried the same way a network failure is, never dropped (60.871908ms)
✔ the core-written structure reads as ProseMirror marks (6.887913ms)
✔ a y-prosemirror round trip preserves bold and the link (3.513421ms)
✔ y-prosemirror writes href as the one-key map and marks as {} (0.868427ms)
✔ a plain-string href, written before the map shape, still reads (0.743594ms)
✔ textFragment writes the same shape as writeText (0.626285ms)
✔ safeHref is the server allowlist, and a disallowed href never draws an anchor (0.457782ms)
✔ parseHash splits the slide and the block, and survives a stray % (1.647777ms)
✔ destroy takes the listeners off, and a second mount leaves one of each (0.739586ms)
✔ formatHash is the inverse (1.04724ms)
✔ textBlocks finds the text-bearing blocks and skips the rest (2.132199ms)
✔ mountTarget is the element whose children are the paragraphs (0.273349ms)
✔ paragraphTag keeps the renderer's own markup per type (0.173773ms)
✔ blockFragment finds a block's text by slide and block id (8.363048ms)
✔ notesFragment finds the slide's notes (1.500944ms)
✔ blockIDs and slideIDs are the orders on the stage and the strip (1.484003ms)
✔ cellFragments are a table's cells, row-major (1.852699ms)
✔ a load that fails leaves the stage on the slide it was showing and says so (1.667113ms)
✔ slideAfter is the slide to show once one is gone (0.266777ms)
✔ the queue words map to savestatus states, failed staying failed (5.283216ms)
✔ a dropped batch outranks the queue, for the rest of the session (0.286934ms)
✔ the editor status: the save line and the load error are two lines (0.309086ms)
✔ mountSaveStatus loads estilo's module and mounts it on the line (1.000793ms)
✔ a save-status module that will not load says so and refuses to mount (0.485594ms)
✔ dropTarget: before puts it ahead of the item, after behind it, null means first (1.556027ms)
✔ a drop that leaves the order as it is is no move (0.234857ms)
✔ dropOp is the move_slide (0.793717ms)
✔ labelFor is the slide's first heading, else the numbered fallback (6.454525ms)
✔ flush re-points every dirty thumbnail and relabels it (2.463946ms)
✔ destroy takes the item-menu listener off; a second mount leaves one (0.430561ms)
✔ plan says what to add, drop and where each item goes (1.100929ms)
✔ sync moves only the items out of place and keeps focus (1.961331ms)
✔ desktop view: box and size are the block; hidden and order are always the phone map (1.320117ms)
✔ phone view: everything goes to set_phone, carrying the rest of the map (0.766187ms)
✔ the ops it makes are ones the document takes (9.843634ms)
✔ phoneMap reads only the four keys, and only well-typed (0.209179ms)
✔ the stored view is read defensively (0.270794ms)
✔ linkAt reads the link under the cursor and nothing elsewhere (3.370104ms)
✔ setLink marks the selection (2.660392ms)
✔ setLink on a collapsed cursor inside a link replaces that link (1.037462ms)
✔ setLink with nothing selected and no link does nothing (0.330946ms)
✔ removeLink clears the link under the cursor (0.664277ms)
✔ the keymap binds every documented shortcut (0.280001ms)
✔ Mod-b toggles bold through the keymap (0.862626ms)
✔ setLink refuses an address outside the allowlist and writes nothing (0.742472ms)
✔ the state machine runs choose → sign → put → register → op (3.150915ms)
✔ a file the deck will not take never reaches the network (0.680807ms)
✔ alt text is required before the bytes move, unless the image is decorative (0.366903ms)
✔ a step that fails stops the ones after it and reports its own code (0.598805ms)
✔ a failure that is not ours still becomes an UploadError (0.335194ms)
✔ a second pick while one is in flight is refused, not raced (0.427916ms)
✔ an unreadable size is zero rather than a failure (0.268821ms)
✔ a per-call applyOp wins, so an upload lands on the block it was chosen for (0.264222ms)
✔ checkFile takes exactly the four types (0.433617ms)
✔ sha256Hex is the hex digest of the bytes (13.411797ms)
✔ refusal reads this app's JSON error shape, and survives one that is not (0.361392ms)
✔ malformed fonts are null (4.406974ms)
✔ a malformed background is the theme default (2.571688ms)
✔ a malformed box is null (1.440993ms)
✔ the phone layer keeps only its typed fields, order as a whole number (1.436393ms)
✔ assets are typed or skipped (1.34845ms)
✔ every poison update is deterministic bytes that apply to any deck (12.934599ms)
ℹ tests 158
ℹ suites 0
ℹ pass 158
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 367.47483
=== the vectors must match a fresh generation
canvas: 22 ops, 3715 bytes
columns: 23 ops, 3134 bytes
every-block: 36 ops, 3180 bytes
table: 14 ops, 1509 bytes
title-only: 6 ops, 1136 bytes
=== the editor bundle must match a fresh build
wrote internal/slides/static/editor.0463180baf5aab9f.js (376416 bytes)
=== go: vet, gofmt, test, migration check
go vet ./...
go test ./...
? amadan.net/oficina/slides/cmd/slides [no test files]
ok amadan.net/oficina/slides/internal/slides 12.711s
ok amadan.net/oficina/slides/internal/slides/core 2.861s
ok amadan.net/oficina/slides/internal/slides/deck 0.006s
ok amadan.net/oficina/slides/internal/slides/fonts 0.017s
? amadan.net/oficina/slides/internal/slides/icons [no test files]
? amadan.net/oficina/slides/internal/slides/keymailtest [no test files]
ok amadan.net/oficina/slides/internal/slides/layout 0.021s
ok amadan.net/oficina/slides/internal/slides/live 0.004s
ok amadan.net/oficina/slides/internal/slides/pdfcore 4.181s
ok amadan.net/oficina/slides/internal/slides/present 0.009s
ok amadan.net/oficina/slides/internal/slides/render 0.015s
ok amadan.net/oficina/slides/internal/slides/svg 0.016s
ok amadan.net/oficina/slides/internal/slidestest 40.562s
? amadan.net/oficina/slides/scripts/writeestilo [no test files]
go run amadan.net/rastrillo/rastrillo/cmd/rastrillo migration check
rastrillo migration check: models and migrations agree
python3 scripts/credits.py --check
credits: checked
gate: ok
Watching for changes…