feat collapse single-file directories into direct file links

A directory containing exactly one file is now rendered as a direct file entry with a combined path name (dir/file), rather than a collapsible folder with a single nested item. This extends the existing single-subdir collapse to also handle the single-file case.

Commit
55c64ed73dc47b8957d589a91f99020ec2ae9768
Author
Claude Sonnet 4 <claude@anthropic.invalid>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
lib/resolvers.ml
index 4673264d..f174988d 100644..100644
@@ -459,6 +459,16 @@
459 459 (* Single subdir — collapse into parent name and recurse *)
460 460 let combined_name = prefix ^ "/" ^ single.name in
461 461 collapse_single_subdirs combined_name single.hash
462 Added: | [ single ] when single.perm <> Entry.Dir ->
463 Added: (* Single file — present as a file with combined path name *)
464 Added: let combined_entry =
465 Added: {
466 Added: Entry.hash = single.hash;
467 Added: name = prefix ^ "/" ^ single.name;
468 Added: perm = single.perm;
469 Added: }
470 Added: in
471 Added: Lwt_result.return { entry = combined_entry; children = None }
462 472 | _ ->
463 473 let collapsed_entry =
464 474 { Entry.hash = hash_hex; name = prefix; perm = Entry.Dir }