✔ C2-06 reply schema: free bodies, exact objects and safe refusal reasons (33.314657ms)
✔ C2-06 citation setting and all four exact fixed texts (21.835423ms)
✔ C2-06 default citation cap passes 20 and refuses 21, even with optional citations (152.366676ms)
✔ C2-06 real Git citation scope, reachability, lines and normalized quotes (69.941057ms)
✔ C2-06 playground cites pass but cannot state canon (39.428971ms)
✔ C2-06 independent universes refuse; a hybrid and only its sources pass (68.325051ms)
✔ C2-06 web cites require allowed definition, this session fetch and kept quote (17.447414ms)
✔ C2-06 file origin is the path commit and trailer, while last follows served changes (51.608372ms)
✔ C2-06 origin uses literal paths even when a filename contains a glob (30.364536ms)
✔ C2-06 cited-commit guard reads exactly the C2-05a indexed file set with supporting scope (76.530249ms)
✔ C2-06 reply limits fall back independently without coercion or inherited keys (0.650423ms)
✔ the same commit, repo path and mapping return the same index, and only mapped files are in it (54.986891ms)
✔ a different repo path, mapping or commit gets its own index (69.187504ms)
✔ the cache holds at most eight indexes and evicts the least recently used (104.028712ms)
✔ a failed read is not kept in the cache (17.496977ms)
✔ a missing or unchecked mapping is refused before any read (14.429727ms)
✔ a 3,000-file rebuild completes and its time is reported (3069.109382ms)
ℹ 3,000-file index rebuild: 2828 ms
✔ resolver step 1: a path from the repo root, with or without .md (1.823375ms)
✔ resolver step 2: the same path with vaultPrefix/ stripped (0.371558ms)
✔ resolver step 3: a path relative to the linking file, never above the repo root (0.325094ms)
✔ resolver step 4: a base name that matches exactly one indexed file (0.376028ms)
✔ a link into another of her repos resolves to nothing (0.212705ms)
✔ wikilink forms, embeds, and links skipped inside code (1.388524ms)
✔ only a body embed whose target has an extension other than .md, in any case, is an attachment (0.449806ms)
✔ the fixture mapping checks and comes back frozen (3.268417ms)
✔ C2-01c: a prefix inside or holding another entry's book refuses library-playground-other-universe (1.521134ms)
✔ C2-01c: a prefix equal to a book folder, or holding its own, refuses library-mapping-invalid (0.813158ms)
✔ C2-01c: universe-level prefixes lie outside every book, in a plain universe and in a hybrid with no books (1.25639ms)
✔ C2-01c: a draft takes kind, name and playground only, and comes back frozen with books [] (2.052664ms)
✔ C2-01d: supporting prefixes at book level, universe level, in a hybrid and in a draft, [] when absent (0.631545ms)
✔ C2-01d: each supporting prefix rule refuses with its code (2.650859ms)
✔ C2-01d: between the lists, a supporting prefix may equal its own playground, and a playground may hold its own supporting (1.192951ms)
✔ C2-01d: editor is optional, kept when given, and refuses anything but a plain name and email (7.949132ms)
✔ C2-01d: an accepted editor round-trips through a real git commit unchanged (17.215259ms)
✔ no playground prefix holds another, and no book folder holds another (1.034693ms)
✔ shape refusals: kind, remote, branch, unknown keys, types, manuscript, folder names (1.256404ms)
✔ C2-03a sage-2021: user is optional, kept when given, and must be a plain account name (0.801411ms)
✔ a hybrid universe is a shape the query code can take (1.4), with sources that must exist (1.046199ms)
✔ a caller-supplied fail receives the code, as business file loading will pass it (C2-04) (0.377005ms)
✔ scope comes from the path alone (design 1.2) (0.73665ms)
✔ C2-04 mirror: exact default path, bare without checkout or remote, and idempotent initialization (75.239758ms)
✔ C2-04 mirror: simultaneous creators publish one intact mirror and leave no staging paths (53.088037ms)
✔ C2-04 mirror: skipped publication accepts both coreutils statuses without removing the winner (176.797837ms)
✔ C2-04 mirror: preserve occupied directories and reject symlink ancestors and code overlaps (18.365788ms)
✔ C2-04 mirror: existing metadata accepts only bare Git plus state and the precreated lock (37.082282ms)
✔ C2-04 state: missing state is empty only while the served ref is absent (53.369586ms)
✔ C2-04 state: valid problems and sync metadata return no content and change no state bytes (53.916094ms)
✔ C2-04 state: strict keys, types, times, branch, commit and fixed R messages fail closed (158.54358ms)
✔ C2-04 state: symlink, hardlink, non-private state and missing lock refuse without replacement (43.176748ms)
✔ C2-04 file: served commit, not HEAD or a caller commit, owns the exact returned text (122.579251ms)
✔ C2-04 file: R1, R2 and R7 exclusions and never-synced mirrors cannot return file bodies (116.237919ms)
✔ C2-04 lock: a first-sync and fast-forward reader wait for a consistent pair across processes (263.203405ms)
✔ C2-04 lock: same-process waits, timeout code, callback expiry and throw release (5032.914717ms)
✔ C2-04 lock: owner death releases the kernel lock without replacing its file (53.90776ms)
✔ C2-04 lock: a missing flock binary becomes a handled refusal (52.06452ms)
✔ C2-04 lock: an unawaited scoped read drains before the lock is released (20.928211ms)
✔ the query reply cap equals the harness reply cap (1.374042ms)
✔ find is bound to its universe and refuses a call without one (69.298537ms)
✔ every result carries its scope, and playground appears only when asked for (39.588069ms)
✔ unmapped files never appear in any reply (41.725677ms)
✔ a hybrid sees its sources canon, minus exclusions, and no playground (39.745104ms)
✔ a hybrid gets a source file it can see, and not an excluded or foreign one (54.569795ms)
✔ get lists visible links both ways and drops a target another universe cannot see (49.741944ms)
✔ a long list pages by position, never cuts an item, and returns 50 per page (195.288972ms)
✔ a page stays under the reply cap when items are large (91.308887ms)
✔ a search line too long to fit alone comes back marked, with no excerpt, and the other hits still return (32.741226ms)
✔ a find item that cannot fit alone is refused, not cut (30.177027ms)
✔ get pages its lines, and the next line picks up where the page stopped (34.036647ms)
✔ get refuses a file whose front matter alone is over the cap, and a line alone is over the cap (32.225032ms)
✔ get pages the links of a hub note, every page carries the front matter, and the pages add up (937.453899ms)
✔ get rejects a bad links_from (30.579713ms)
✔ search returns scoped line hits, case-insensitively, and refuses empty text (27.317402ms)
✔ a manuscript call returns one chapter, at most 400 lines, and names its next line (45.067736ms)
✔ a manuscript call without a chapter returns the first chapter in path order and names the next (25.249972ms)
✔ a chapter name that matches two visible files is refused (26.105768ms)
✔ a hybrid reads a source chapter through its declared sources only (35.611261ms)
✔ universe info reports a hybrid sources, constraints and notes, and refuses an unknown universe (13.375232ms)
✔ an exclusion hides what it names from a hybrid and from nothing else (34.737212ms)
✔ PRD 1.14: a lookup that names a book leaves book-null files out (30.351312ms)
✔ PRD 1.14: library_manuscript never reads a book-null file (28.779537ms)
✔ PRD 1.14: a draft universe has no canon, so its lookups return files only with scope playground (33.850331ms)
✔ PRD 1.14: library_universe on a draft returns its kind, name and prefixes (13.005683ms)
✔ a hybrid gets a source playground file as null, while the source gets it with scope playground (37.428538ms)
✔ the fixture reads clean: every resolver step, appears_in and relationships wikilinks indexed (57.451116ms)
✔ R1: executables, symlinks, gitlinks, blobs over 1 MiB and non-UTF-8 text are not indexed (97.059247ms)
✔ R2: unmapped paths are reported and not indexed (34.657525ms)
✔ R3: front matter not fully parsed stays raw, with the line where parsing stopped (37.636787ms)
✔ front matter forms the reader accepts and refuses (0.684877ms)
✔ R4: a link to no file, to more than one, or into another repo is reported and not followed (34.990314ms)
✔ a block list link carries its item line, a scalar or flow link its key line, and problems follow (31.586964ms)
✔ an unresolved attachment embed gives no problem; a link or front matter value to one is R4; a note embed resolves (31.279174ms)
✔ an indexed Dr.Quinn.md resolves as a body link, a block list link and an embed (34.982445ms)
✔ R5: a canon file that refers into the playground is reported, and the link still goes by path (31.831603ms)
✔ R6: a canon file that refers into another universe is reported; a hybrid may refer into its sources (32.879568ms)
✔ R7: two paths that differ only in case are both left out (39.929801ms)
✔ the reader reads the commit, never the working tree, and refuses a bad commit id (37.264602ms)
✔ a bare mirror reads the same as the clone (53.600446ms)
✔ renderItems snapshot: fact (1.507608ms)
✔ renderItems snapshot: finding (0.280328ms)
✔ renderItems snapshot: correction (0.191449ms)
✔ renderItems snapshot: question (0.161498ms)
✔ renderItems snapshot: idea (0.221962ms)
✔ renderItems numbers several items and takes a parsed body as well as a string (0.972903ms)
✔ without options a path cite has no badge and is never marked changed (0.23437ms)
✔ renderItems snapshot: notice no-cited-answer (0.204262ms)
✔ renderItems snapshot: notice no-answer (0.172786ms)
✔ renderItems snapshot: notice turn-failed (0.246359ms)
✔ a body without the reply shape shows a fixed line and none of its text (0.577884ms)
✔ C2-01c: each level gives its universe, and its book or null (4.098282ms)
✔ C2-01c: prefixes come first: in a book that holds a prefix, a file outside it is canon and one under it playground (0.825776ms)
✔ C2-01c: a canon file linking into a draft gives R6, and into its own universe-level prefix gives R5 (58.413682ms)
✔ C2-01d: each supporting level gives its universe, and its book or null (0.934055ms)
✔ C2-01d: supporting comes before playground; a folder in both lists is supporting, one in the playground only stays playground (0.61729ms)
✔ C2-01d: only .md files are supporting; a .canvas or .base under a supporting prefix is unmapped (0.336669ms)
✔ C2-01d: a path passes at book level, universe level, in a draft and in a folder in both lists (2.456474ms)
✔ C2-01d: a path of exactly 1024 bytes passes, and 1025 bytes made of multi-byte characters refuses (1.088754ms)
✔ C2-01d: a path outside the universe's supporting folders refuses (0.796025ms)
✔ C2-01d: malformed paths refuse by class, in order (1.131483ms)
✔ C2-01d: a symlink or gitlink on the way, or at the path itself, refuses (0.405651ms)
✔ C2-01d: a name that differs from a tree name only in case or Unicode form refuses, at the file or any folder (1.45266ms)
✔ the survey prints folder names, counts, key sets and link-form counts, and never text (56.424684ms)
✔ folder names print DEL, C1 and bidi controls, U+061C among them, as escapes (37.540391ms)
✔ an embed of an attachment counts as an embed and as an attachment; a plain link to one does not (26.309473ms)
✔ with --mapping the survey adds scope, resolver step and problem counts (50.591633ms)
✔ C2-01d: with --mapping the survey counts supporting files (46.72286ms)
✔ survey exit codes: usage 4, bad mapping 3, unreadable repo 2 (18.657409ms)
✔ scripts/mosaic library survey reaches the survey (108.500394ms)
✔ C2-03a argv: the fixed sequence, one https allow, no other protocol key (2.650389ms)
✔ C2-03a argv: only an https URL with a plain host, no userinfo, and a plain user (1.080581ms)
✔ C2-03a helper: answers only the exact prompts for the configured host and user (dewey-0765) (52.239114ms)
✔ C2-03a first sync: served is the fetched tip, HEAD is served, the survey reads it, and the token stays in the slot (194.31246ms)
✔ C2-03a fast-forward: served moves, problems are rebuilt, and a repeat changes only lastFetch (290.730738ms)
✔ C2-03a Filbert N2: a read that took served before a sync still finds its objects after served moves (256.998332ms)
✔ C2-03a overlap: a reader during a sync sees the old pair or the new one, never a mix (194.224747ms)
✔ C2-03a diverged: a non-fast-forward keeps serving and holds until a human accepts the tip (428.940099ms)
✔ C2-03a accept starts the record over, so a changed branch gets a fresh state (173.492714ms)
✔ C2-03a fetch failure: a wrong token keeps serving and records the error, lastFetch unchanged (199.807249ms)
✔ C2-03a a failed first fetch records the error with nothing served (58.387134ms)
✔ C2-03a a 302 to another host fails the fetch and the other host sees nothing (61.485514ms)
✔ C2-03a the slot: missing or unsafe refuses before git, and sync never opens it (58.368256ms)
✔ C2-03a sage-2021: an entry with no user refuses library-remote-invalid and runs no git (36.536617ms)
✔ C2-03a one sync per mirror: an overlapping call refuses library-sync-busy (126.434304ms)
✔ C2-03b argv: a push sends one full commit to the branch, fast-forward only, with the fetch prefix (0.466275ms)
✔ C2-03b T1 push: a fast-forward lands with the seat's own user and file, and moves no local ref (110.989514ms)
✔ C2-03b T2 and T3: a moved tip reports the race after one fetch, and a second race refuses stale-base (186.414291ms)
✔ C2-03b race fetch: while a sync of the mirror runs, the race refuses library-sync-busy (218.556818ms)
✔ C2-03b T4: a dead remote, a hook refusal and a wrong token each refuse library-push-failed (185.158633ms)
✔ C2-03b push: a refused, missing or unsafe credential runs no git (94.141925ms)
✔ C2-03b T10 humanCredential: her login and a 0600 slot library-human, or library-human-missing (0.97279ms)
✔ C2-03b fetch credential: the state names the kind and user, a refusal runs no git, and a pre-286 state still reads (143.838791ms)
✔ C2-03b T5 helper: the named seat's user and file, never a link, 0644, another uid, or a swapped file (30.403362ms)
ℹ tests 151
ℹ suites 0
ℹ pass 151
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 6420.610698
