Copy disabled (too large)
Download .txt
Showing preview only (34,930K chars total). Download the full file to get everything.
Repository: Dicklesworthstone/coding_agent_session_search
Branch: main
Commit: fcc9f385e12a
Files: 3062
Total size: 71.1 MB
Directory structure:
gitextract_kyop6323/
├── .beads/
│ ├── .gitignore
│ ├── README.md
│ ├── cli-robot-enhancements.md
│ ├── config.yaml
│ ├── interactions.jsonl
│ ├── issues.jsonl
│ ├── last-touched
│ └── metadata.json
├── .cargo/
│ └── config.toml
├── .config/
│ └── nextest.toml
├── .gitattributes
├── .github/
│ └── workflows/
│ ├── acfs-checksums-dispatch.yml
│ ├── bench.yml
│ ├── browser-tests.yml
│ ├── ci.yml
│ ├── coverage.yml
│ ├── fresh-clone-build.yml
│ ├── fuzz.yml
│ ├── install-test.yml
│ ├── lighthouse.yml
│ ├── notify-acfs.yml
│ ├── perf.yml
│ └── release.yml
├── .gitignore
├── .ubsignore
├── AGENTS.md
├── CHANGELOG.md
├── Cargo.toml
├── LICENSE
├── README.md
├── SKILL.md
├── UPGRADE_LOG.md
├── audit.toml
├── benches/
│ ├── bench_utils.rs
│ ├── cache_micro.rs
│ ├── crypto_perf.rs
│ ├── db_perf.rs
│ ├── export_perf.rs
│ ├── index_perf.rs
│ ├── integration_regression.rs
│ ├── regex_cache.rs
│ ├── runtime_perf.rs
│ ├── search_latency_e2e.rs
│ └── search_perf.rs
├── build.rs
├── docs/
│ ├── ACCESSIBILITY.md
│ ├── COVERAGE_POLICY.md
│ ├── DOCUMENTATION_STYLE.md
│ ├── ERROR_CODES.md
│ ├── FRANKENTUI_UX_ARCHITECTURE.md
│ ├── INSTALLER_SPEC.md
│ ├── LIMITS.md
│ ├── PERFORMANCE.md
│ ├── RECOVERY.md
│ ├── ROBOT_MODE.md
│ ├── SECURITY_AUDIT_CHECKLIST.md
│ ├── SECURITY_AUDIT_REPORT.md
│ ├── VERSION_HISTORY.md
│ ├── cass_bakeoff_validation.md
│ ├── ftui_feature_audit.md
│ ├── ftui_parity_baseline_bundle.md
│ ├── ftui_visual_parity_manifest.json
│ ├── ftui_visual_parity_rubric.md
│ ├── perf-evidence-ledgers.md
│ ├── planning/
│ │ ├── AGENT_FRIENDLINESS_REPORT.md
│ │ ├── AGENT_INTRODUCTION.md
│ │ ├── CASS_INDEXING_HISTORICAL_BENCHMARK_RESULTS.md
│ │ ├── MODES_OF_REASONING_REPORT_AND_ANALYSIS_OF_PROJECT.md
│ │ ├── PLAN_FOR_ADVANCED_OPTIMIZATIONS_ROUND_1__GPT.md
│ │ ├── PLAN_FOR_ADVANCED_OPTIMIZATIONS_ROUND_1__OPUS.md
│ │ ├── PLAN_TO_ADD_LIGHTWEIGHT_SEMANTIC_AND_HYBRID_SEARCH_TO_CASS.md
│ │ ├── PLAN_TO_COMPUTE_ANALYTICS_STATS_IN_CASS__CODEX.md
│ │ ├── PLAN_TO_COMPUTE_ANALYTICS_STATS_IN_CASS__OPUS.md
│ │ ├── PLAN_TO_CREATE_GH_PAGES_WEB_EXPORT_APP.md
│ │ ├── PLAN_TO_MAKE_CODING_AGENT_SESSION_SEARCH.md
│ │ ├── PLAN_TO_PORT_INSTALL_SCRIPTS_TO_RUST.md
│ │ ├── RECOVERY_RUNBOOK.md
│ │ ├── RESEARCH_FINDINGS.md
│ │ ├── RUST_CLI_TOOLS_BEST_PRACTICES_GUIDE.md
│ │ ├── SEMANTIC_SEARCH_BEADS.md
│ │ ├── SUGGESTED_IMPROVEMENTS_TO_CASS_BASED_ON_CMS.md
│ │ ├── SYNC_STRATEGY.md
│ │ ├── TESTING.md
│ │ ├── TOON_INTEGRATION_BRIEF.md
│ │ └── UPGRADE_LOG.md
│ ├── reference/
│ │ ├── CASS_ARCHITECTURE_SUMMARY.txt
│ │ ├── CASS_SEARCH_PATTERNS.md
│ │ ├── QUICK_REFERENCE.md
│ │ └── SEARCH_PATTERNS_INDEX.md
│ ├── test-coverage-audit.md
│ ├── tui_keymap_rfc.md
│ └── tui_style_spec.md
├── fuzz/
│ ├── Cargo.toml
│ ├── corpus/
│ │ ├── fuzz_cli_argv/
│ │ │ ├── 00008d730c850cabb696a251f657564bd66fb5b2
│ │ │ ├── 02101f25ff42d061bb6826bb8732629c9a778e53
│ │ │ ├── 02dd64a9a39ce70076bc8ebf97cd2c7c7553fcce
│ │ │ ├── 0312f640c180bbde8757dc81b922c0fe0d531685
│ │ │ ├── 03275c1d481592c25630ed13791b2e30c1f93d0a
│ │ │ ├── 03b06d39f840ef1e5883ff011f5ce127c044badc
│ │ │ ├── 0592b834d8f3c93975a84fead7731e6e1dc67210
│ │ │ ├── 05c38232498f0465d52c5ed2b8905581dbb6f5d2
│ │ │ ├── 0831c5672022b8ecd8e789b49233eae2de1c6ac6
│ │ │ ├── 0859ab2fe0459bc1f553314dcf76581828ee97db
│ │ │ ├── 0a2af6ae395b02af3a276f644517adb10cbcabce
│ │ │ ├── 0b18806c4bb9610c7186ef06c6fe7e29fc7c6cbe
│ │ │ ├── 0cbd13be8159e625c4016608ab23a0f6d01b9992
│ │ │ ├── 103f5415377507db8e2cb938d11e0964ef23b297
│ │ │ ├── 110c943822e1de641d750153073f13458e18628d
│ │ │ ├── 1428c5d3c6ca75890c570a0b4456b36f4abc168a
│ │ │ ├── 158798ca658ca5af60eba2011f906430bd8cee25
│ │ │ ├── 160e8bcd0454848e3305e3609eab614f556bef3a
│ │ │ ├── 16968c2346dbfbc1e1d849d058f35f0d3b7c9fd7
│ │ │ ├── 169722b3f73ba4b7557c7d4abb8416e2fa54ef21
│ │ │ ├── 16ea7ace9f48357f9d0e303a9841cb2a19cacb10
│ │ │ ├── 17ada2900d14cae808b76f484a73a2b599b90bce
│ │ │ ├── 1869fded0714692bf2a53ad1dff71fe4a5dacb0d
│ │ │ ├── 19469ac09134f6ac0197a31bd6172c32445a745c
│ │ │ ├── 19f704ec69e285b54dc9ad77b94574d0eae0466c
│ │ │ ├── 1bfc01828e86a1c35a0f43387c369c90f8494fd0
│ │ │ ├── 1e51ed8664294d797b1bc128e20687779a2b2f2e
│ │ │ ├── 1e60f4b794a83439dc337e20dd177a49c91a499a
│ │ │ ├── 1f7324b3b0e6ae37ce01619218968c707109f248
│ │ │ ├── 2098e017bbf59eef78b2c40e76adf1f25c5566ed
│ │ │ ├── 20b369e47209788ca2ae9fb074dfe5f420d6a91b
│ │ │ ├── 2191d6e6e053c175c50bd683b41707def7aafc77
│ │ │ ├── 22226ae363aff0b15f2a70b6ad97763f89d715c9
│ │ │ ├── 223047f22f151028612460c6e83d2215bafa4e4d
│ │ │ ├── 2398c2dede79c845bb59ae2f04cd644629cfe6ff
│ │ │ ├── 25193c645e7e7f52068cb77f1067c081e28c79f4
│ │ │ ├── 266e498e865a7c2ababba6d0affaa7109c562dca
│ │ │ ├── 267b313eb255f1ff55c474a5e4994d66da645c30
│ │ │ ├── 28302c767c3c4cce47f9c4e2a201c47572136cef
│ │ │ ├── 2c53bb32ffc83d29aa6d92564370485f1eec741d
│ │ │ ├── 2d14ab97cc3dc294c51c0d6814f4ea45f4b4e312
│ │ │ ├── 2d1ae1d922dc4e1631c4160cfc0b72d5ba865ee3
│ │ │ ├── 2d1e0eb491a16bc152583b813504fae1d4422e86
│ │ │ ├── 2e94b46170f79b8733c1be0f5c47c3d9c45d4222
│ │ │ ├── 2f96a2dd6beae965008699849c96290d543a8c75
│ │ │ ├── 30a920883736f2f072737f6394457a89ea193365
│ │ │ ├── 3233f4a80126ded1977de71b1cc154b7aec4e756
│ │ │ ├── 3270100ea1773d2fd49f8174b534b6dd214d6f07
│ │ │ ├── 3286707a763d66fc8439154e7060f174c94dcca0
│ │ │ ├── 3394d2bb5a9bb42e8220aa5ec4f9793aa34f256f
│ │ │ ├── 33f890c2bb456fefed910f9787e6fa555c7be33d
│ │ │ ├── 3648ba1b3618126ed6812d613c582ba717569698
│ │ │ ├── 3b0e7257d031ec8c6f98908e023b448ee0dfaaae
│ │ │ ├── 3b1cedf33a456e32667315e015fae7e0822f5585
│ │ │ ├── 3baad17c0549ed4e0329a4a90830511952c433cb
│ │ │ ├── 3f05c3ed3a43abe1d2c31c7801e5e07b21ac9207
│ │ │ ├── 3f80606e9177132e28016047bbc029b32d1fbeeb
│ │ │ ├── 426fa2297a2bc1a1e513108b19df6653daf6df43
│ │ │ ├── 43fb5dd1a8c985d799f769d4579ce1032d075b8b
│ │ │ ├── 4454c3f4e87987a6a3a82d72cebd616670d90f08
│ │ │ ├── 4498d5d3467878ecfa5e71ead16f695431460a79
│ │ │ ├── 44a3475296e778217b464b57094c2885cea49c84
│ │ │ ├── 44dda71e6843b88c1f3d330d6f48c34097d8265d
│ │ │ ├── 4668c8a6341e58f38e5269f0a8f4b821dc5bfef5
│ │ │ ├── 474acca7032894439dbe9534081365b5aed7078d
│ │ │ ├── 47aeefbd6f077c2d170caebdbe87123c14df9cc4
│ │ │ ├── 48c604f31c3415f812b85cbadfcbc19227ad0827
│ │ │ ├── 48ff95176a61090039adde47caeaaea3be061984
│ │ │ ├── 4b46acc3cc6a970f8fc17ebd90f676162bb128fa
│ │ │ ├── 4c0f726e8f4603bd34bbeb1958b7d362197b6966
│ │ │ ├── 4d9dccc4c289afff972d65d18753d3da35968121
│ │ │ ├── 50e5c504038e0bac37b6f5276212f42b85cb0da2
│ │ │ ├── 50e8e452b9645d0b96a23c8a78bd35e0ec267700
│ │ │ ├── 519b53d49ffee88df5e3def0b5a59eb1d8e60e7e
│ │ │ ├── 51c8044a5d3d7bff4daed3d022775ed1c717267f
│ │ │ ├── 5293cb261ea0e6b9e8cce22ab63e2a0ad6010d02
│ │ │ ├── 5791f7cebfefcee0474763fd2ec27f45fd7abf4d
│ │ │ ├── 58181143ae9532d46c01dc9839de5f2f45970738
│ │ │ ├── 583d9864fb7260e56aa5b6261b16a01e935898ce
│ │ │ ├── 5897fd924b1d80682922ce8e75f71acc65ebc2ff
│ │ │ ├── 59adcf3a0bccf97a030047bfa9a7b0cfbecf7b46
│ │ │ ├── 5b5b9c8b1eb42e000cb23a12189a63ba15a6b873
│ │ │ ├── 5c1863b1cf463c5461652c7e6379ad82765bec0e
│ │ │ ├── 5c78c530bafdba8fcfa20de01ec74f0898ee3d13
│ │ │ ├── 5eb0aa10774f2c02a40385cb7cd6ffd8dcedbb03
│ │ │ ├── 6035614df8acc644887608e92f21152afaefc2aa
│ │ │ ├── 61db13428a17d85630b49051d2d08edb36379332
│ │ │ ├── 6582692b560d87fd4d0c7e6e89af648128c42ee9
│ │ │ ├── 68c9f10c8aca363f3c2ccf0f4653eaed787d90bd
│ │ │ ├── 6a56574a3c4c1a0287cbb0aa7ad8c280413b569c
│ │ │ ├── 6a61378dc046d53f9c1f603c81ae224856936a64
│ │ │ ├── 6ab3394da4e6f1390b0e5d4e5287dbe153a4702d
│ │ │ ├── 6b6330951aabf6a2cde908832f7a2759abf0b379
│ │ │ ├── 6e67a72f231209102763528d0843863e391efe3f
│ │ │ ├── 6e6a59bac6fe42bee1486a2060d46565cef19856
│ │ │ ├── 6e77187687059a5214972bb6513a1e60774be74f
│ │ │ ├── 6f1ff4a8f06367eadeba0f6ff30aee0eb60a15a2
│ │ │ ├── 7175662128cdff85cbccb57fdba575f7cf4c194e
│ │ │ ├── 733c2043861e76c55b7415eee9febac4a4078fd9
│ │ │ ├── 7478ca9423a9510ce828c75346b1d4991688b128
│ │ │ ├── 7a7f11e629615d9adc4c4b6365de033849cebae9
│ │ │ ├── 7aa41cfa047e2b8b66717d423343940150393242
│ │ │ ├── 7b2463c13ab1bacb1cc5c501ac48db7c1427b521
│ │ │ ├── 7c4bb32befa41b49b1fe2cb2dd55c300c7f55a4f
│ │ │ ├── 7c8c9fa9774051eb218b82ce20b625376cb9d284
│ │ │ ├── 7ee115631ec137674d3cf91274f756219175ae68
│ │ │ ├── 7f77ce11ed4f3d33325a7b6cf2b74b0ca09de9cf
│ │ │ ├── 7fbebdec648ecd698039abb8232de61b52117282
│ │ │ ├── 80123b14ce6d70c1532ec01a7ede4e91fa258d7e
│ │ │ ├── 8279367b174e2a9121ab51be30695e080fd8557b
│ │ │ ├── 83020bd96cd8cda2a8cabb722ba3af69f275955c
│ │ │ ├── 83f9cfd5b9055e76c40840c0caf0be9a0c686ed4
│ │ │ ├── 8578ddf9a4ae047e00018d7491b2ef0b7836c03d
│ │ │ ├── 86f43257c59a84df0c48b34e8c280acc327f42de
│ │ │ ├── 8875758484195c397f9804fc0080be329960748a
│ │ │ ├── 89a9011f8be31fb36c304846514cc4ebdf8209bd
│ │ │ ├── 8a974cd74d9f735d5f854e65956a9c1047f19b6f
│ │ │ ├── 8b12ec64544799825bcdca1f5869b2fe9a6b6667
│ │ │ ├── 8b2adc47b9dabfe35282016165f10fd38c00c957
│ │ │ ├── 8b80e75b3c9c3b672b51246343603c2f124dab48
│ │ │ ├── 8c4b839545f367384331f22b5363b1f7dd7c1153
│ │ │ ├── 8de72d095990a5a8e718ef954ab5e6e5fa99cc93
│ │ │ ├── 8f1e745b4292f8d88e860a82b395383890384c02
│ │ │ ├── 8f5f28a1af9e8c8a5d30df1ede197c33d905ab33
│ │ │ ├── 9099ffecb88ca87dfd741d84c527adfaf6954b1e
│ │ │ ├── 93ad7df828df84f9d8c3d941830f8c91c837fa39
│ │ │ ├── 95894e31f09b9b7c841b4078914239da4ef4e805
│ │ │ ├── 96bc678eeb2c7590ad141c2f8e3e8fac2788a0fc
│ │ │ ├── 97f61a2b0c73ec440968739eea1ab57bcbfbf28e
│ │ │ ├── 9825779944f9fa8a9b190cbdb81708a03b365f00
│ │ │ ├── 98556473c714d50e7aab09aa2d0daa85475f1109
│ │ │ ├── 9913de374b93a6a22dfb727244781b13305173e8
│ │ │ ├── 9a23ab202222625d97f4158869491acb2861e016
│ │ │ ├── 9b6bf616c747db5e781c1e5a5f995b4ae2827266
│ │ │ ├── 9bb827d4c567a573da3c62bd7a0177f71fae160c
│ │ │ ├── 9d2bf3f34805238d937c7541bd0312a89e904718
│ │ │ ├── 9d8447ce7cefc0ac81cbcca1a683c2ccbbe04051
│ │ │ ├── 9fb0658edc0af07e00f12298fc3178ac8052affa
│ │ │ ├── a0fa3f2cd535356aa96c800e97e6209b81399a0c
│ │ │ ├── a33cbd012b91fb16a2bc99937de5c8f91602bb5a
│ │ │ ├── a4043b7afe13061cb3af0eb8b07bb6db83575ac1
│ │ │ ├── a473623d536ee1dc67fc230d71d0531c5ecbf4cc
│ │ │ ├── a5485a4b46676fe9f6e7e5bfbb70350130364cdb
│ │ │ ├── a559e61727863a07a609b4bf0516b99b85e4ddc4
│ │ │ ├── a6a3e5680b4c6e60c0171d504f5a8951fae6c173
│ │ │ ├── a90d26e65ca0049f64e0009c889e76a010e7c37c
│ │ │ ├── a91911482fbfa669ca782fd2833523dae8e0de5f
│ │ │ ├── a9d4dc4133e8f5b1c9d04cf4cc93cc0635616ec4
│ │ │ ├── a9fc99c6b4ee81611d0d88276d636824ea2d126f
│ │ │ ├── aa219c633a4b8d9fdb720a1a9f88eb70d9d97458
│ │ │ ├── aba103ac106b219b35fb0f6624061b6cbab4f3be
│ │ │ ├── ad7b9b2f3ffe89c552e70da289ea9c67ace3a300
│ │ │ ├── ae43a256d3e59b1d63f38571b97e877fe010823a
│ │ │ ├── afc1c6faeec3dde86dbc0b5c3ee4bd6ec5bf5210
│ │ │ ├── b0ebb40365ac6bc4fbaa059ec27e1b66373cac92
│ │ │ ├── b2eb867aca4ff8707e67d07e8efeda954d710735
│ │ │ ├── b42290a1c757b9775ce50b1253df2764a1edf416
│ │ │ ├── bbe81ca7c6563d2d8a84c54840defa57253027f1
│ │ │ ├── bd9006455445046d3fecbada41b81d0ab0bea270
│ │ │ ├── bdcf8504a2ac0cedf6a07e926535c3a6d0e2fd34
│ │ │ ├── be74eafb1f94c75ce6b277cd90be56d7ee2e1739
│ │ │ ├── bf2db662d53cedf79d9ce7cab7ebe31aa50f4292
│ │ │ ├── c0a26973ae8aff05f76eb1dd6f08fc33f56448ea
│ │ │ ├── c0b2c85539e9728e94323f98e2dda78eac25a087
│ │ │ ├── c0e0e915af56054e0fa95e30212ab10f269586f5
│ │ │ ├── c4ecda6a8ef14a87e0b571e523d9403c8115bea3
│ │ │ ├── c5c6e653d0be295903ab136b03141afa9ebed04b
│ │ │ ├── c668135d3c1c3f01bb8d3acd581bb3070dcdec57
│ │ │ ├── c673f5c5219b6997338af0db0a63f11a2a1857df
│ │ │ ├── c6d2742be63d3951acf592c897e84668c900a301
│ │ │ ├── c7a08cac3df4a5c60b4f420165c627b6091630b2
│ │ │ ├── c8e6ea309cc6539b9c730139008ca13cd8cb79ef
│ │ │ ├── cb0bd07304d5eac30430f33282e536c9ded701a4
│ │ │ ├── cc95700ddb254e8c380692fb97be6437df06f299
│ │ │ ├── cd0bd4e48cfe372b9b3fa5e5c6cd982bc98bc4eb
│ │ │ ├── ce97f9e77037167e37e89b7fa4c6762d4e5759b3
│ │ │ ├── cec70a5e731251bd68e497e3e72fdca821be4fec
│ │ │ ├── cf0e0dcaabd0cdf7d86260c56579e359ceaf97cc
│ │ │ ├── d5dcfcec99002872cd77731891bf024d64bde29f
│ │ │ ├── d7e9e9a397e79656aa91bb85c167892ed8dacbd4
│ │ │ ├── d8897d2e6f055ef66eb6b7afcd1c038b32e9a15f
│ │ │ ├── d8d971d75975b69b188ce79ebe2cbcd0a17e3c30
│ │ │ ├── da6a6408bd369959fb867b1b1667f1cd5fc18c6b
│ │ │ ├── daa28e43164e6733221058e96fed3e918e5f302b
│ │ │ ├── db8de37eb9965adce742831df191645fd84d773d
│ │ │ ├── dbd83de7dd83d608d2e0365e2e8ee571464f7166
│ │ │ ├── ddb582d9f2b03ec0b914b8f4da82c3c90da4be0f
│ │ │ ├── df0d3f33d31225de0f2a0000edc54129802067c3
│ │ │ ├── df4756afea960de211478a3c3a510d8b469bc0b2
│ │ │ ├── dfd13a66cb2d07e0919ec3eb1cd83db1cf589ee2
│ │ │ ├── e0670c48fb9e274b7036a4c390ae81531955fb1a
│ │ │ ├── e13df85399baf1059d966b1d820c63bbb92cc456
│ │ │ ├── e18519367bc084254e780c9a5858834e6ce18721
│ │ │ ├── e27559e7ece4f6fbc0dfba0acf4f824a194cab82
│ │ │ ├── e2bde5c0756b68fbb42f14e2e131ecf4715180dd
│ │ │ ├── e2cd97cefa544f47ef25711a027dd053690a3007
│ │ │ ├── e330b3bb215288c1abccb78420f1747563f47d72
│ │ │ ├── e385a1320c325326f7dc28486075a372e505f7c3
│ │ │ ├── e3d0e5e909ee1131fb99ff8928fe398d6c29c1dd
│ │ │ ├── e3dedac24e2ebf48ff1cf086a7b19adb6abcf48c
│ │ │ ├── e3f9b154d9855bff68cd2febfe549c67180a13e4
│ │ │ ├── e42d81c07bc657bce9ab22738bafbf118046e1e9
│ │ │ ├── e5412b55e397f3555f68eb3f9c4e0018ce79456a
│ │ │ ├── e58df1e0227bac4adc391739a125528d1eec7f53
│ │ │ ├── e62bd3cb601ce71a325afa5ac757e52668d64054
│ │ │ ├── e67fbf2a38e68a355bd91e55220f691123dd6c6a
│ │ │ ├── e7d450dc1627028b9b4247b6e0bf649330b434eb
│ │ │ ├── ec42df36056f76c3c7090820e24b12e85bf90696
│ │ │ ├── eef16f223cc963dd629fbb8ecf70db2fe0456ba3
│ │ │ ├── f104aa08ce3b879b920c2f58023ae81c9e0972a6
│ │ │ ├── f5e2cc70c9bb705856281a9a84b8c0627b21d9e9
│ │ │ ├── f60088d375c8a3bf5ad0b1382633148046efefc5
│ │ │ ├── f66b4f5d1fd31f29683e67f25d97a89db850489e
│ │ │ ├── f7a5b8da8880f05ebb8190438a7764a755294157
│ │ │ ├── f7f058854fba1c348433c83eb07e8567c27a216e
│ │ │ ├── fb1bd39989ed56068caa543ca6dba4cf4793ed0a
│ │ │ ├── fbfe01ff8786bde9607754c2062749c8b650ca6e
│ │ │ ├── fc43551caa0f59477aa7aa6d99679b86729cbeed
│ │ │ ├── fda8b974ee19c53d8961118eb9bb9b9607cc5d0d
│ │ │ └── fe767be6096983def7fb1089f20516dbd9d02033
│ │ ├── fuzz_config/
│ │ │ ├── 000f934b63ca4fe685bee079be375d19273d1a0c
│ │ │ ├── 01223a18a93af580eb6aa008c235a473d072ec10
│ │ │ ├── 036b5047090f2e1066bf297da1ea0bd8a7df0c5e
│ │ │ ├── 03b97f776ac17268dbd7cfbf68f535a874741982
│ │ │ ├── 03d5e7e5f5275381c0bdb770abfd08c2f9dba2e2
│ │ │ ├── 03f2e856bd502513c4a1b5968fa471266e0b9658
│ │ │ ├── 03fa92f01c89a5d11b215f30bf136bfe25b5fcf4
│ │ │ ├── 0411dbc1bcf7078059fae3ea0ed1f15ccaae4574
│ │ │ ├── 04c27b757e43d87cae89c38373107bb1c9c35d4c
│ │ │ ├── 04d1bf30f0e82073e5fa7170b98c3ba56f1d7cc7
│ │ │ ├── 05a6bfb8e9205aa2c07d9e08f1fbb66c588897ce
│ │ │ ├── 05f590a97e8bbf799fe408272bc52ad98adb46f7
│ │ │ ├── 076c869639dc01dd51cd3175211fd56d5c483705
│ │ │ ├── 077cecefc254fc68d4f1ef1fc825fd9f65676579
│ │ │ ├── 087458c6101a3d265761f8c5645f756a00606fd4
│ │ │ ├── 08ef256927d460849be8352f60585cb721a9b004
│ │ │ ├── 0bb9f9cf35fc0b3601353528411bc0b9a38a0354
│ │ │ ├── 0bbadd55cbea80788ab1db0c2e8a97229c30b88c
│ │ │ ├── 0be70a16a2680d6dbd8c6babc832b43ae6c3d560
│ │ │ ├── 0bf0e76e632d4ea9463aa7c6d8c4465d956a8f69
│ │ │ ├── 0e73493fca1fa5831d177bf59d9ff1fb235969be
│ │ │ ├── 0f2579e291c7f377d685c7352dfaef866ccf6b89
│ │ │ ├── 104c192d045749c9c3d1659034bd6ddcfd75cd95
│ │ │ ├── 1091711c36838fdc64b3937fe0ce9cf82b54593b
│ │ │ ├── 120d466a8789ea0c4adcb0a43069f0d7c16da56f
│ │ │ ├── 133472fc470aa867a2eaade2ab95e053ddb40055
│ │ │ ├── 167e9d8820bbe21f09d42b47c22d82cd30b6635f
│ │ │ ├── 16fba39074181bf4564c47efff91af89ae221f3f
│ │ │ ├── 1857478738408b3cc5f2af2f4d5d50d604dbd3f3
│ │ │ ├── 18c42203590f36ef6f08a9585fa415d7b0240b02
│ │ │ ├── 1f2d1b76f1a6ccc0f73aa5e6b9e98e1acca815d6
│ │ │ ├── 1f6a3e559f4827d1eecd2d19535e1c7cdf99dc86
│ │ │ ├── 2049a426a2c3b8218e028d8d19208c345d7dea3c
│ │ │ ├── 204dee6a1d8b35ffbdd173e0d42426d016d755d9
│ │ │ ├── 242554f934aef85d4495f5b5d504e715073ecef8
│ │ │ ├── 24bb11bd0e89518a96201cfa6444b744afd047de
│ │ │ ├── 24d9dbdb872875cd85fada51cd642592c2d84c74
│ │ │ ├── 25e3acc46a25e294422ba4ce91aa2cc8505a0c76
│ │ │ ├── 280c6f07d3ea82436e9e02b8b5f3f56b34a51f85
│ │ │ ├── 289cfe8e98006de1ee57b4377ac1e2e54de9a2b3
│ │ │ ├── 29b00ea051115c4f947c1400e20251ea7cb3d982
│ │ │ ├── 29f5a02010f7887ffabb8fd120d95c71d6f2635d
│ │ │ ├── 2a895ddb0d93ef3b216a8865563f01e16af8731c
│ │ │ ├── 2adf29c76d0e2d6636d0b5e80d13599db384010d
│ │ │ ├── 2b59a812f09c7bf342b5ae4883c28785f5ad6298
│ │ │ ├── 2bbd347ad2e7b242899373e804fa5bb3901fed2f
│ │ │ ├── 2c095368a81d891ad15fa7d1cf606c1ab30600d2
│ │ │ ├── 2d459d954f4dc93913c842c2db6d6aff5613770a
│ │ │ ├── 2dc8aaf8bdaceb745ab66037201250a4b639f71a
│ │ │ ├── 2e41c1cfc94e4ae62259daf2ebc97976a1c426e7
│ │ │ ├── 2e8c82e5a2d2da31535b0f706333b7956e41e193
│ │ │ ├── 2ee7f517d61cc1b295eb7883be894abc9b259047
│ │ │ ├── 311339976c2126af32ce82ae76c77ef9144752f3
│ │ │ ├── 319ca8bb52bca08859bf9e47a99ad8966f705622
│ │ │ ├── 31dfe5735aaf53350fd447fd4b132151ffd6fbeb
│ │ │ ├── 340c6464aa5872095461a8a8537d1fa35a770ffc
│ │ │ ├── 343ab33032b8827a1b94c45223cd9b1b24dd5ba4
│ │ │ ├── 3484e06e6f04f346eecd5b64e5b27eefd7eb5547
│ │ │ ├── 35e8fe0ab5abb2dd855edc8fe2e05d41360990ed
│ │ │ ├── 3624c1604a12572479063bd4bab1201ea451023b
│ │ │ ├── 364ab4778761cb0ac39e7bcc3e5f300886747b9e
│ │ │ ├── 37b5825496d514e02a06db4325e2534c5f57a565
│ │ │ ├── 37d2cd093edd3549387ffe32ccfcda0d35039c77
│ │ │ ├── 3869310f6bb4fda3d204061facd72f1c0f3611c1
│ │ │ ├── 390bd601837d42277096807a218dd41cc56a4da0
│ │ │ ├── 39523292f127de2a811018df7e1e94bcf13067e5
│ │ │ ├── 397774b40a66b9844a1943a1d0dc0a091914d75e
│ │ │ ├── 39a5812ecf91149ffbd7e825460927541c4d370d
│ │ │ ├── 39be78764f49fe1a9db22fc3953a03c43b1e1c31
│ │ │ ├── 39f0854dd889fd51e5f7b3af508a381a344ab47d
│ │ │ ├── 3a23cb9d9be763fe18d017f5f454bceb3ab6ec34
│ │ │ ├── 3a3620ffa310a881a9b3a7f048c3fe726402ca77
│ │ │ ├── 3aecb474332ad132b04325b2c1c55e5d4ec74532
│ │ │ ├── 3b2c287b4b19692f5648bb186ea3d6359546f1f3
│ │ │ ├── 3d5c64148b134f3ed5ea6ba6881ce8f6ebaa7158
│ │ │ ├── 3dc088d843dfec346d96e7bfa712f9b01c8f510b
│ │ │ ├── 3f18aab1123ce76a0633396ef71338ae8581bd66
│ │ │ ├── 3f7b47892beaa319e4d5b3d811d96e99003a20f1
│ │ │ ├── 41202a349a87c9e4756f6cccf470bb8cf93be284
│ │ │ ├── 4332eda5e126758c98696d705b40af607ed8229a
│ │ │ ├── 473a1687f808e8d424e6afa2ef41e3f0438abe58
│ │ │ ├── 475f54713a9591963d8b8570f12a8854b1b14867
│ │ │ ├── 4872e483dda25a49b342fd835f7de7695150d55b
│ │ │ ├── 48b74b8ac036326ab6d83596da5905723e8afa80
│ │ │ ├── 49ff5592c3f9066a047723911141d587eaa4acd9
│ │ │ ├── 4ab4b63d066f8a549747aa4e87ed8ee6e05864e2
│ │ │ ├── 4abf4b51600338e1974682f43f892def00a53013
│ │ │ ├── 4c4c8f2ffbf920d077f6429ec5f65a1a1921a941
│ │ │ ├── 4c5536e41acc2a7587d5eee55dd65a75fe1069df
│ │ │ ├── 4d0200af28e98b0da898758166385219d1780eb2
│ │ │ ├── 4d5f59fc15557054908f86d8763e6fb39933ac10
│ │ │ ├── 4f0ea587f2c8ad3137091f8173b9f3c60bcb562d
│ │ │ ├── 4fc5c8c06437ba482d3f8254fda1a3017d00f849
│ │ │ ├── 50222bc739c0e9337031d585cd6622cea8003ae4
│ │ │ ├── 50f6bf206c42d491ed87338846e5304a88ca85d7
│ │ │ ├── 517efdb443e9db8241d36b2872e7660546d0f9e0
│ │ │ ├── 523bcb2911b89d37649f18d5deb7b433ebff1286
│ │ │ ├── 52bf173d26b329b125a797584aa904744fc253ae
│ │ │ ├── 52d6b5845ca6d15a9868cd599adf1d9e7a13fba4
│ │ │ ├── 5309e9e25c681976cd80a29a02c4d095961d3608
│ │ │ ├── 53c886c1b69a5bacb24cb6ad8cea70976093ef24
│ │ │ ├── 545948ffea0d23995b0dd3093a6b28de5ce69f7b
│ │ │ ├── 556f3b332d07a6e787fe5f14fd01ab633616998b
│ │ │ ├── 5579b9575cce747c7f9fcc5993d1c84a5768841b
│ │ │ ├── 558bfce96511d591c3448c9958cbad14b911b649
│ │ │ ├── 55d9f3f61d0ea3e4b7b596fcc55ac1727dc559c9
│ │ │ ├── 56f2f5f046b0e77ea2d8c26c12ead3432961c452
│ │ │ ├── 5809b22a039b5e258cce6b052eda619f2ec41d7c
│ │ │ ├── 58f2c49b76b6a602364ff0034a58d984c491bb0a
│ │ │ ├── 58f3b626ed4089fb31b60d2b654a1425bbd924b4
│ │ │ ├── 5ad6e8618ca9e231c0f70d7953d5fbcfaf897cca
│ │ │ ├── 5c8cc0a9d846462894b76224218fcd5531130b11
│ │ │ ├── 5c9947bef960ba494e996963149cfa4188a04364
│ │ │ ├── 5d4f855a8d56a3932daa1ee70f3a67e629417056
│ │ │ ├── 5dcfe6bfe15331fde6f2ed35425ccbe7439f5b1f
│ │ │ ├── 5eba3bbe96b6f141cbf4a440927df98950e0cfc7
│ │ │ ├── 5f4f8843ff16b30487f573199c6affaabbb5fa36
│ │ │ ├── 5f6f04b564eb9670365b42021a77c2f4b013e245
│ │ │ ├── 60674722edad266d8e5dcf9fd3ff430e1d4a0d01
│ │ │ ├── 624b5eae75b11b49445f90cc2f5f0e004cc4c948
│ │ │ ├── 6326b8e4ed85d653f9a043fca18c638dd4df6d43
│ │ │ ├── 63299f71b8f2835270ec6c9f45a53360c0e821e2
│ │ │ ├── 6333767c725118678c7cc10bb2c8181675e3086d
│ │ │ ├── 63b9cef2849333bd95acff04e5f77aae6aace2eb
│ │ │ ├── 64ae13f111854c12e8817b856fd9a2d6eb514143
│ │ │ ├── 651a4686c2aac25fe5c8bb62bdbda69a729dc5d3
│ │ │ ├── 67a4a37f17269c133e66b645b415d933e261b8b4
│ │ │ ├── 68fc7aede28e4c5e4a08711078d7dd626e3e5513
│ │ │ ├── 6b2afe398347283d2d0457f6ee0bd617bb8dd8ba
│ │ │ ├── 6c30a0f17c66480c1336285833bafba8b549b98e
│ │ │ ├── 6cd9db821accdfb8e321a7c4d46e74543754a455
│ │ │ ├── 70771f6f2308bc0dcbe08729823e4794ab706818
│ │ │ ├── 70da27621580b9570c9979868d40e6bc65e74197
│ │ │ ├── 71ec1e6f95260ae9745dfe9ac3e02afa10f85914
│ │ │ ├── 720c15b41c291f879986bb6e3c1cf0b9895e2b0d
│ │ │ ├── 72e39b2f3ca1cdad244481cd17d738331240836b
│ │ │ ├── 731e090776144c55ab8b0d92f089c8d78f106f35
│ │ │ ├── 74dcf32fb91b82abdd34286038561df27e0953b3
│ │ │ ├── 75356325f4e7810f1ea04b22393878619a86125d
│ │ │ ├── 755914c067f064b60561846ecf9ea704fa8ab6d6
│ │ │ ├── 7660149aeb2a5c87026ce40dc2cc2d8509d9dc7d
│ │ │ ├── 76eba4a928a805422f29004a62890944976b7f77
│ │ │ ├── 7728d2ceeaae3adfc6df2a1b5daee198207d585b
│ │ │ ├── 77b286d33b0bf095e7b84cc10135758abf94de28
│ │ │ ├── 79cd4e14dbc9ca2b537afc6011582f00f08c9cc0
│ │ │ ├── 7b5d141f7300d33f9100989b9fc6d9b24694bcbe
│ │ │ ├── 7e865d413ec22239cd3a3d35bf214600aaf45a04
│ │ │ ├── 7e93c023caa13616f0ae039affe8cba0e743f947
│ │ │ ├── 7f10759291bf011dcba9e64c888069aa6fa25299
│ │ │ ├── 7f7e42a552d935e3262b6c244efff1781e2545d4
│ │ │ ├── 80b611c21931f59ed41cd4318568f94e32300249
│ │ │ ├── 8165e3e3891d317e007b8425eed37e81106ba0bc
│ │ │ ├── 8186bc4441739db2b2c0ae8c802b784eece3bed0
│ │ │ ├── 81b350267e2738d28fae3c2ba82930bfa949860b
│ │ │ ├── 81c442244d41602e604c21c68d1caaff24ee3001
│ │ │ ├── 82bbd1eba767f4ec9c017f6a0e71348934af3a35
│ │ │ ├── 82d437c1646f14269666bd9697a387000e055276
│ │ │ ├── 831ce2f9dd60164706cc212a6ea46a5fdd53cfb7
│ │ │ ├── 84972d8f1b1a7a140393dc13b82c48904ce5ef63
│ │ │ ├── 852e83bba4675ebebf92e4ecdefca6efe9fa9712
│ │ │ ├── 859b7da708088324e9ea653b507cb553f8f3b5cd
│ │ │ ├── 85f8a59e1fbce1b94c36488ad754ae8354cae36b
│ │ │ ├── 86c57aa7881318a49cd6eeec86d8f8a00bf57062
│ │ │ ├── 87427e718f4c75d70d6c5de2d2b96a7749da5e43
│ │ │ ├── 87fc03c536f575aec7a837cc7652d7081327dab9
│ │ │ ├── 8858021fbb795a570f041faf6ceca8d527ee2cb9
│ │ │ ├── 8895243c0d0d4cf9136194891fa4b5a12c250a76
│ │ │ ├── 88d005317ff2ec0dcfa98abba0c5580ad976fef3
│ │ │ ├── 88deb1a3864c738206689fd765df61d692927f5b
│ │ │ ├── 8a01b452bb776813f83fee4b4634bc60dfbe0b91
│ │ │ ├── 8caec396b9b20782ccc77722bb9c13d933e2f138
│ │ │ ├── 8d374f3e8bca8e3ae474c21519bdc5c9db11d2e1
│ │ │ ├── 8d6d221e26f4e6627ea3f4077e1870ea7252ff4b
│ │ │ ├── 8e482d16f76a06298b497c0ebb685405810cc30a
│ │ │ ├── 8f1913e94a7f0cabee00759ceae62927351c34fe
│ │ │ ├── 8faac1ab55423b5b6004ec05f6a9e0b3eccbeca8
│ │ │ ├── 908ff290597766fc6f6cf4e6975f6fe8dfc47310
│ │ │ ├── 91a1a5148ace8872e379834b2e112a9f21a6a30d
│ │ │ ├── 91f2d8519bc2271e37910d3ae0748c57b1e4b348
│ │ │ ├── 9371df36acce87de74966ae5c6b6851e71c7d066
│ │ │ ├── 952e3da69260437819440bc908d5d3d75a52cf9e
│ │ │ ├── 962790d1c9b5f3af3e07e2c268a5ca2192a5302d
│ │ │ ├── 97214886eb41fab3399f66c4028186a1e178ce77
│ │ │ ├── 9774cf1bd97814ab62183c8bee12b86bb01d0455
│ │ │ ├── 99217114707c8555f62351558a79e6c7b6a248bc
│ │ │ ├── 9a1e5af8b33a93e49c5987c19d1d5b9120cb3916
│ │ │ ├── 9b103635223c940d144ad40aefb9c3da288cb403
│ │ │ ├── 9d1de8279add3b6d037aa2a801da30d45f91cf8d
│ │ │ ├── 9e0e9f9c3e0fb7639a781ee82737904f8c9908dd
│ │ │ ├── 9e63e093284ac52db5045b2954a92d3a2908ddcb
│ │ │ ├── 9f9267bc5ed81a1128adca2e8197403780cf4aad
│ │ │ ├── a08ab61476116ddd5c23cdf3f8ee1f5aa6df6a7c
│ │ │ ├── a127d358d71c7769c4d72cca9f5a09c9307077e2
│ │ │ ├── a2151771ce512449d892a02f188bac0a0707a05c
│ │ │ ├── a22b9d418f2df9836d3b6bd4ed5ed5056c40ad2b
│ │ │ ├── a2873483551e97b9ff8dc71123bfe1b3ddd9bed7
│ │ │ ├── a2ecb1a7e30dd2d84a8745e27f49c6c5ffecaecc
│ │ │ ├── a372ec6bb216533b84eeba00f3b7fdce04399548
│ │ │ ├── a67db0db7f9ea78bd9df11696d08c40e96413cb7
│ │ │ ├── a6820d724c7a0e6d5b2c0776cdc90c74de3542af
│ │ │ ├── a932f5ff912980982637d76541cf59d09b4c4333
│ │ │ ├── a9bbad1a5e1fcf73bea5bd3b6440282567db30b1
│ │ │ ├── aa2571e8d75c24699156c3abbe9fe50f14a8bab8
│ │ │ ├── aa537f65df0890ef1c9f8b9c2ba42c73254d79c4
│ │ │ ├── ab0014d7f13b02334316807793d2c64aeb7b57db
│ │ │ ├── ab7f5ab6f40e69d5af68c6b27629069a02486e20
│ │ │ ├── ace42de015a900a9a2794f8eec4a0012568f1a0b
│ │ │ ├── ad5afb815763dd797b3ef812a7c9da66eeee88b4
│ │ │ ├── adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
│ │ │ ├── addba5cfc7d6f077b8a46f4d4549d4e24c181954
│ │ │ ├── af06582c59c6e6fa38d50f01e221d194fb1dbc7f
│ │ │ ├── afd15a30584b76852b90d93efe88e6adba6e2188
│ │ │ ├── b00ff1c9f14b674655f250847c6215828d0a1fe9
│ │ │ ├── b0a3eddee54d3c5fb3ec4b174322e98c182d095d
│ │ │ ├── b3947feca7952d3a5e25e4c0a95d937bbd39b376
│ │ │ ├── b3a0896f2a933441826eec47ab8fb93ee5eca586
│ │ │ ├── b4358351fbf9684bac4ff9e95f3548a200053699
│ │ │ ├── b476570d71fed62935582f3cc5b41cfddf251061
│ │ │ ├── b49ff70c32d27205c9d95fc3248082a55e2670b4
│ │ │ ├── b4b43dbae66fbda11be1d04fee86ef6a1d62564c
│ │ │ ├── b4c449167d038c8537b0cbae2f30df9335c649a9
│ │ │ ├── b5b620a3432b1be38593a780d404bacea9c10a4b
│ │ │ ├── b64f53f178931b0af20f6e186bf789ec214534ea
│ │ │ ├── b850a1bb4a82910ff6bf6555cc42f4414fc2198c
│ │ │ ├── b9816d1f5d6867953fbaa4736bb51096d50ebd6c
│ │ │ ├── b9de51a24996ec7acad7888cf353e12e4e54c52f
│ │ │ ├── bb6e8d2d47d5bd2ec11d7c2c4b59b8e71e0d0e71
│ │ │ ├── bbd7f457aca5ecc327e7af72f2d9190d7f2898c7
│ │ │ ├── bd2da9b51a7bbfcb6f4199bccf7ba4f084ef6018
│ │ │ ├── be520469321f177e7d4d23acae50ce3f8f4e32f2
│ │ │ ├── be5da3479756bd7f9fc34476f8c647291173e726
│ │ │ ├── bf0357fe70a9cda81504d98371b12dd34130c59c
│ │ │ ├── bf928f2feff6450ca63a71fbdaf553cc6ce70334
│ │ │ ├── c13a494ebf96b1be961f15dba3a2a69d977aeb2b
│ │ │ ├── c1986d0e35a1f30b6969a54501259b621011806d
│ │ │ ├── c1fadb07f534c58005a4ce9936c6b7d09b2f620c
│ │ │ ├── c2e43d64f4cfc864592c6e99ed09e5b08f8f0e74
│ │ │ ├── c3106577a0e654300dfff62f977ac08048ae0c44
│ │ │ ├── c4538d361b7eefc44f02b254f8c9981dadc5a586
│ │ │ ├── c49b437e9d6e36a224cdf61536d277ef06a3a8c2
│ │ │ ├── c4ae48a5c4305dfb616f0e53037774d3b1e444a4
│ │ │ ├── c5091880eeec9e04c15e43754348e21d738725d5
│ │ │ ├── c50f482805fd887e687aebf0cfa4d0eaa1a32f8b
│ │ │ ├── c56c3379e44908003ab2b182d3558abf51437d63
│ │ │ ├── c7bd58d310b5e244bf9d07e5802730fa2b0278b3
│ │ │ ├── c87cc02ad3dba113beead4911bbfc1bc7dd03012
│ │ │ ├── c88e27b5c16b7a11359ff34dc971cb3fa6c8aede
│ │ │ ├── c8d9be83674528c1796a5a7ea1a8db630387c620
│ │ │ ├── c8faab6974cc2fea70e93a465d5f4f52783fae44
│ │ │ ├── c9735b3c8b4d936374f6d7543cd6fd3af0f84760
│ │ │ ├── cc7fa27dd654d7582c40395a2a08a4745cd8b91b
│ │ │ ├── cdd4e07e62f8a9b10867fe872c2a31b24c39fadd
│ │ │ ├── cdd53fffc6cd0bed26929e6bedcbc4cbed87b5fa
│ │ │ ├── ce4a8c0d7e8be1adf89a294a188b1b52cb40f3cf
│ │ │ ├── d027be05d78845111af4a62e1fa03b6e678437dd
│ │ │ ├── d1228d9ef0a4f0506f388aaae18efedab02c74b5
│ │ │ ├── d2fe257f09f6528a57cfefaadeb0d190e6094f1f
│ │ │ ├── d3f4e5116b7093d68404739ad8b803c89c52638d
│ │ │ ├── d49bee413c95e266049a1b2d7a221762d88dd776
│ │ │ ├── d4e5cb1767e3905478dbbf00562c59245b859ec8
│ │ │ ├── d4ff459ddc4f064df4444e20de984bdbf7413c8f
│ │ │ ├── d5841a5e981cd38480d6dda2f7639dab63b835f6
│ │ │ ├── d683ee552eec28e950d6581c1b245793951b8d4a
│ │ │ ├── d6eaa3f3114df5b3ca1189062881e8df3069e806
│ │ │ ├── d75d4cb36f3e271bcbfdd89e5c7f8614199f732f
│ │ │ ├── d80c45387c0e778625f342bbbc1d0be607e5f934
│ │ │ ├── daa7662f5c1887f9d62794bee1221ddb893af00f
│ │ │ ├── dc03f9db1694863d76487cf879081df26b408cc0
│ │ │ ├── dc6c3905198cad6fc62bd3b23c795d06811ec074
│ │ │ ├── dc84a32bc5b19af121b66b2077890bd1f2d5b279
│ │ │ ├── dcf79c33397e873add82ab9f3255cc6ad7cbd978
│ │ │ ├── dcfdad0a0c5ba5aff8f0c7d4cea7129b5c7b40dd
│ │ │ ├── dd146ed134c0ac0af66f1119d308ed57a941e290
│ │ │ ├── dd366c5b3c423dbc3e989329e382c578ac99b3db
│ │ │ ├── dd98316f54b3119acbfb0c24eefbf03791ba5a8a
│ │ │ ├── df2e895a0761da9df4f93ffa77eee76072d621dd
│ │ │ ├── dfdc04dd0eb151d8848656528d950fbccd4a8ec0
│ │ │ ├── e1b8376a90fdb19c5d9c379c5df82a275d624dc6
│ │ │ ├── e1ed572d9c8511012267a18660c4c0fe58269e4d
│ │ │ ├── e26da7f764c0cb8ab5de5907bd634b648cc62e8d
│ │ │ ├── e39008cf4e1a43b2f65c0b5783ff4fcccd48bb27
│ │ │ ├── e58ae392edbb1c17ef13eef3972f7f6d48af0ca3
│ │ │ ├── e8229860f64316a11abf2f8b85e464646deda805
│ │ │ ├── e854ba87a43375d3d2748b329bba9e906c5c7b58
│ │ │ ├── e9ffb9bea72f49cbe79c7499c61ecbf251b0e25b
│ │ │ ├── eb5b302181143ca57492e74b45e23bf0b8bb7661
│ │ │ ├── ec1ec6493ca2b1f02d8c7110398ed380d03c8076
│ │ │ ├── f0234c2353a3a8d9b56c70f48a468702f3a780c5
│ │ │ ├── f0a218e15d9349ff848aae0951c7279f2fecd89b
│ │ │ ├── f0a64cc6f180a717b05c19247f8b977403ea5a6e
│ │ │ ├── f1edefd3b336affa0c05ca15a4dea8c50e589568
│ │ │ ├── f2ca96b7823afe788a2472940178103bab4e434d
│ │ │ ├── f49a9d3ba3bbbd5bcac4a9f5e3c149c5c2be4561
│ │ │ ├── f52e68325e3e97ed6097c85ba1039e167952754a
│ │ │ ├── f5af358b55dc166cc4865173fd01142d2d185ef3
│ │ │ ├── f5b10a086085d3db74e1786e227de671dbe02ccd
│ │ │ ├── f6995c8316190dacb0f4a1794d8ab1769a21e292
│ │ │ ├── f702619a72eb8c7379d0d875f933e01c8edfcb38
│ │ │ ├── f8b4f1a2416558165608c634a2570672c3ba26e6
│ │ │ ├── f9729c346fcbea781529ead466db6431bf5818f1
│ │ │ ├── fb929055c11d0667e1abc90f1463a4523dee024c
│ │ │ ├── fbcd37d727c981878f92042760625afb223fbf43
│ │ │ ├── fc70da0a54da3def04cb702855cf072be3940014
│ │ │ ├── fdd67a22eb9cee11b2328737fb2b8afa902ade8e
│ │ │ ├── fe8eda3fbb4c69663012a7c064c1cf56403290af
│ │ │ ├── febd536481ad184453eb216ee5bdea180c86584a
│ │ │ └── fedb108169e689d1be17382cb488d854d59d4299
│ │ ├── fuzz_connectors/
│ │ │ ├── .gitignore
│ │ │ └── seed.jsonl
│ │ ├── fuzz_decrypt/
│ │ │ ├── 0126b6151af6f96946d89e4fd7cf97ef01ce54b7
│ │ │ ├── 0310c705c05fef39256804d488738803ae061090
│ │ │ ├── 128bcfbeffb5f9af049339d35a37dc7842037cba
│ │ │ ├── 177fa8ec4f0f0caca56f90cfbb94d71cf1d28bcb
│ │ │ ├── 18317db309288c206885e4824a012c2b59b52255
│ │ │ ├── 2211b60c9f0c26d39cf1a782fc1d0c8f09e7672e
│ │ │ ├── 2ea6739040f240413e8db995454bfc9e5d9de18b
│ │ │ ├── 818c505841424f83ceb62f8f520d90aeafb84ba3
│ │ │ ├── 83c9716a1a84566c59992701a9b0cd4b2c2d3782
│ │ │ ├── 85d28c73e363c6f45ed6637d97a6b8be602de631
│ │ │ ├── 8e615ea43eb26f9f5f5ca32ec898b14b2b269e73
│ │ │ ├── afa20a2e3d13162181a496c9a48d32cd019c6dfc
│ │ │ ├── caa66410ce64f374815e086df96811bf87479c08
│ │ │ ├── db4f8875f6728bd7a7055ee4db0683c9d26c3ffc
│ │ │ ├── ea17b283031392ee39f3cd0da9b018c3e457b440
│ │ │ └── fd33ba686d0b8359846f6c413df934c5df81a0ec
│ │ ├── fuzz_kdf/
│ │ │ ├── 096c396f456f1be04c5417309a4a7c2510c33fa6
│ │ │ ├── 1a63e87c8321af9d632b999edd207a5ef9487918
│ │ │ ├── 1b748d115443e7aae8097f2a846ec90b58a38519
│ │ │ ├── 2e6ef0f5f273d8209cb46d37fba848fbd4f9b813
│ │ │ ├── 3fe9d07becfcf78362742539d2edff21dc5e40e8
│ │ │ ├── 49ec53b2e46b7c7194358119a719862b1de2106c
│ │ │ ├── 4eaaf8a93471254cca6d84d92b98a3e1dabe72b8
│ │ │ ├── 57006f03434db829d4b8c6e11b0f28e0bd343f3b
│ │ │ ├── 5728d7d6effbf8907786471d50ec131e80ebfdf0
│ │ │ ├── 99a34c3685cc96e89094f9a36924e8d7c49ad59a
│ │ │ ├── 9c81e304cd674e7f4ce7a8d40c83e0b27e0ce0dd
│ │ │ ├── a868dd9c88f1c948709d722d51cec1110d153173
│ │ │ ├── b7b130a3a050224805818665f91ce9709f099958
│ │ │ ├── b9e74e64e1f6265e0a2a0161494f26d30f9433ad
│ │ │ ├── b9fdcd68f53900a540262a9815a7ae492ff41fd5
│ │ │ ├── c30f41cf13a5ef909bc7ff35964b81645feb256d
│ │ │ ├── c7c7a0eaa5f3d38a6f7a437735068d9e724ec9f8
│ │ │ ├── d2314bf51fc909324afa4b3720c4143f6d85a2e1
│ │ │ └── d46c5d8251ec39f8e33471d860dc22736aa91ab6
│ │ ├── fuzz_manifest/
│ │ │ ├── 0033b49992b0edc6c420f720c38628e29283dad0
│ │ │ ├── 003f6c4f8cb3fd7c8b7137288a3236f739101370
│ │ │ ├── 006188f0544a4d91bebfe2a8a0e4dd879d57729e
│ │ │ ├── 0073d897e32158a9d7218808cf3a2b3ccbd74f44
│ │ │ ├── 00b041fabdb3c1e2a7ed47d3865fb2db36422780
│ │ │ ├── 0113bd7d6842c385ff141be3274b54596552c976
│ │ │ ├── 013d6546dc209626ee93509bee06266133666952
│ │ │ ├── 014dca91924e49b747f9c59946dea95eb488d088
│ │ │ ├── 015e478aca310e1060a70e05312aa6079b4f10cb
│ │ │ ├── 01927287492329ca0119e84205738e81a726f9c0
│ │ │ ├── 019eec496e2709fd4daf292ba64715658f181872
│ │ │ ├── 01d94a6f21b47b294553d412889a784d3553cf6f
│ │ │ ├── 02008872a89390afc027c4578a26e9f8b37cfe49
│ │ │ ├── 02471010772d15225fbd46efbc4b36f0850a0f29
│ │ │ ├── 0247d3b4867b61f2c7541f110916313a692e7968
│ │ │ ├── 0259b1ac734fc0f1c78f1dac73ef786c7eb8d5d1
│ │ │ ├── 02b0956629a8c68900f884fcece0c0f961cdc53d
│ │ │ ├── 032b327dc914e4eba40b0afc13147b47f8e5bc49
│ │ │ ├── 036f70ab731494bc4a53c6db4bd734accda10ed3
│ │ │ ├── 0395775bfd44ef05a7910d1d8f1700e6e7d51942
│ │ │ ├── 03b01c18044bedb3944c4015c2e05e1a8f0d4a27
│ │ │ ├── 049efd082748b3db82a4edbdafedbd51e8e8d4ba
│ │ │ ├── 04f0017322a082c2d19f3fc48e9f0816b6f0eca9
│ │ │ ├── 04f8a95cefc09cfcd8e7d223e0c683aaf5a7df8f
│ │ │ ├── 05254f9d42369291cb3720399020b4ce4d94e9ee
│ │ │ ├── 05347633cac241add672bab302fb5752833eff41
│ │ │ ├── 054c1bfc5c7e321dd735f5ff8eddc3c90ae9ca75
│ │ │ ├── 055068c5f522dc4917704f3ff2b7f41dec84cfd5
│ │ │ ├── 055123b41ccff5525115ce6f7b5eac7b3205715d
│ │ │ ├── 05e5f4f304b5775fb42a6ac301cbfb9f02c3d5c6
│ │ │ ├── 05eae54ab0171995bfeca1baba46777f15b12a03
│ │ │ ├── 05edc94611053dd6d76cac3654dc5ff0c6539631
│ │ │ ├── 060359408694dc6b0a4f0fc9631befdbf58a25c9
│ │ │ ├── 063af04d205e8ddba4445e0091d0c469cdbb1bb4
│ │ │ ├── 0667d2004b999927545ba230066e45c5f94dfb70
│ │ │ ├── 066d05f0fbd6c4c9d70838bd039ca88de1b9748a
│ │ │ ├── 067d5096f219c64b53bb1c7d5e3754285b565a47
│ │ │ ├── 06d0114ebb63afa48ad4386554b53da6bd53984a
│ │ │ ├── 06de2e4fb182b0e1bc025eed9c61b0eaabf60b84
│ │ │ ├── 06f96b262d1dcfe078e80d919826d7723b6a4a23
│ │ │ ├── 07255a4001cea23e8f6bc1f98e9a5c2af8307b8d
│ │ │ ├── 0730cdfce3240c6b2cf9c2611de67d9bd26913d5
│ │ │ ├── 0734f129e4189e695a6bbbb4874753483d7dc382
│ │ │ ├── 079e0900aad5adad4361cfbdb9ab7602e4e788ce
│ │ │ ├── 07b5ee143875075488c5273dc60394880012799b
│ │ │ ├── 07e6b4954761a64888951ffb8add90dc73127289
│ │ │ ├── 07f5472dbc207781be215abfc4472f3586477bc9
│ │ │ ├── 07fddd6943f2e96287694c732f486474bac1aeac
│ │ │ ├── 0819cfd8be8be10706ad1e21cfaf24a06f6f1d52
│ │ │ ├── 0859d0c4f1baa7dcb07cb1aec4a1263ec39229e4
│ │ │ ├── 088fb1a4ab057f4fcf7d487006499060c7fe5773
│ │ │ ├── 0890b6f41e0347a9cc575aba987165f5296c52db
│ │ │ ├── 091cc7d5dbf4bf0d5561f0b25902abb0a2ca392d
│ │ │ ├── 099600a10a944114aac406d136b625fb416dd779
│ │ │ ├── 09afc0bf309bd16edad34cace47ea277e3519297
│ │ │ ├── 0a346b56ee15b145319dc50c450705bde2c11bd5
│ │ │ ├── 0ac6f0bc14c4f843c44030d35993e8063460f10b
│ │ │ ├── 0acb03a0cc08e6dfc9a76e017ef03ae35868874d
│ │ │ ├── 0adad21897c893439862935663cb9f0754fcac47
│ │ │ ├── 0b000dbedeec6e500a9fa717e6aa37b37fd20d12
│ │ │ ├── 0bab5722de590fed5eaae604bef45cb040b85931
│ │ │ ├── 0bbae96c34268bb8128caf713ee494055711a80e
│ │ │ ├── 0bbf43f33978e41b039fd514c3bba0b0c3059386
│ │ │ ├── 0c1d5a2ea5515de9970af322af3e85ab0eb083ec
│ │ │ ├── 0c24f958380fc366bb1d3a6cf12a9a20b3ca9b11
│ │ │ ├── 0c7725b516b00ef1210d23ae4f629d7569a9ca83
│ │ │ ├── 0c79233b8e1324d476404bc7b6e873989348074c
│ │ │ ├── 0cc1ba1ceb086ff7608097e9c339c2a16bba3ecd
│ │ │ ├── 0ce6fd9603f18ac35bcfd3ffc5d2143bbb3126f5
│ │ │ ├── 0d0fcf0d94a9f9f199536b0130f43e27362059b8
│ │ │ ├── 0dabf42f196b2ca23d2fac6f38facf14586cf9b1
│ │ │ ├── 0dae66b3f283bfb4b6bfc154fcbfab1667399020
│ │ │ ├── 0dbe21f52e98d417b42433638a7ab23be1719018
│ │ │ ├── 0e11e7780a5979bf7777f0edec956cc3bb940206
│ │ │ ├── 0eb6febee8f851e1a42608e4ba5c9f3f974868b0
│ │ │ ├── 0f08cb179574e2f6ba7fd7d7f577789286927f5e
│ │ │ ├── 0f293638fcfb7c42524b95e98ea22414218d81b4
│ │ │ ├── 0f9103bf9d19623f7169a41f75c3c0c976c515e5
│ │ │ ├── 0f9d3883716adfe1576a93e2acd3b0782d70c0ae
│ │ │ ├── 0fd77701c13ce60c6a0c1c5652bb78abf37733ee
│ │ │ ├── 0fee4a1512d1ca4cfcd9fae2821fabe5198e2bd8
│ │ │ ├── 0fefd27cad4915946049f0352bedc0fa59d601e2
│ │ │ ├── 0ff71fe0d78ee2742552f1af7c1c44b4882c9f12
│ │ │ ├── 0ff9c5710d668956ce58db9046662d264667a943
│ │ │ ├── 101ac8e369a395f2b84536e78c1bc42c07f2e85f
│ │ │ ├── 102d2c418e269ab41b7e8bc8a25160303ee5e304
│ │ │ ├── 102f9e43f55dbf8f4b9c8418723a5c793c81202b
│ │ │ ├── 1061936ee2ed6eb6b411b9e08b62d0f82e9360be
│ │ │ ├── 109fccf5b2b523e7cabddf2ffc9021d7adf11ce7
│ │ │ ├── 1184f5b8d4b6dd08709cf1513f26744167065e0d
│ │ │ ├── 1196dbcc3371ddc958b245b15204aa922cebb364
│ │ │ ├── 119c66e00208a41edd9124a02174b0eed54b370c
│ │ │ ├── 11cab938c53eae0364016bec9838c18bea4fb7d7
│ │ │ ├── 11d4a06a2f4c9e206570b6cd5b7d426f79d42f3c
│ │ │ ├── 11f4de6b8b45cf8051b1d17fa4cde9ad935cea41
│ │ │ ├── 11f6ad8ec52a2984abaafd7c3b516503785c2072
│ │ │ ├── 123c3576b55c26158ada628f608ab36b9c8846de
│ │ │ ├── 1279ab87c527a04670ae4cd6d5c2871ca4d899e0
│ │ │ ├── 128239a98ad5c44f8ab87c11f6efc6f901cf36a4
│ │ │ ├── 12b6ad304116874034b5779d5b1fb488067c4eb3
│ │ │ ├── 12d9ec61397276086e92bf03359f4eac83494031
│ │ │ ├── 12db8f85bfe3e0b837059fa01e53748a0727b52c
│ │ │ ├── 12f6015fa44b924c2f0c274283305b9bb38abd9a
│ │ │ ├── 12f8a286a103804fb5bacb2fabf2d79e0ec76938
│ │ │ ├── 1314aa333592e905a9aaaea0b46542cd3091f6cb
│ │ │ ├── 13319a867ba5ceeced524404b2d1d8e671598b98
│ │ │ ├── 133df1e96b2c002800c7b4238ee8b6b3916f02e0
│ │ │ ├── 136b93b50331a9b63db3bf695460a643d7ee78c0
│ │ │ ├── 137f554ee0f6b903acb81ab4e1f98c11fe92b008
│ │ │ ├── 13bdccee429922f12bd8ff9af7632f0dbbb297a3
│ │ │ ├── 13f1bea7680b3770b751fdc27b615bd81339eb33
│ │ │ ├── 13f923ba73714a11f9c5bfb5b828a08bfa773673
│ │ │ ├── 14302e800fed359d0bf497dd0596cbbd368523ef
│ │ │ ├── 14c9ae5867644c380469bdf002c2afaec494aa29
│ │ │ ├── 14d70d9a7b76bd8ba78d1d03aa0686e722aba249
│ │ │ ├── 14e728ac72b59253225e650d357a09c158c72ed2
│ │ │ ├── 150431e06f74e880b6848af3c59a3b6a25a3b5da
│ │ │ ├── 150d8d615c9b7b42f000786207a9f25ce774642a
│ │ │ ├── 15225d627a0e9c16a2dc93e93cf20d59fd60a0f4
│ │ │ ├── 154a727a5d04db46a3e8d212b0255df962f1bde1
│ │ │ ├── 15543824d49a0c371ee757cccb56d59d4b48dc8f
│ │ │ ├── 157dff8bbec834cece8e4cfd768be5a6ab96ddc3
│ │ │ ├── 16077c190abe85b0a67b269a059d2550ac8b796f
│ │ │ ├── 1616169aa8df395837e090dd5317a638863227b9
│ │ │ ├── 162a2922cd983d9c1996a52a1d5af64724ba37bb
│ │ │ ├── 1631404208e77c19ae94fa53644b725a697a6db8
│ │ │ ├── 166118cca614a47d9c26d4287c9dcae7bc130b14
│ │ │ ├── 16878eaced78f293f281a4394705fe3f19eabcd5
│ │ │ ├── 16905ddf7b726ca98354213477419714a8ce97a9
│ │ │ ├── 172720b98aa09c6e2da9c2c923887a1ba187b35a
│ │ │ ├── 172b7a258f05476e5279c132e88bd9671cab721b
│ │ │ ├── 1736f344976dc0c9eff6da38de7bd3dcdbb3ad2e
│ │ │ ├── 17592f1e46829d2332673918e797f182fd63dc7c
│ │ │ ├── 1786783e84569302d65cdb592c8abdd71997e797
│ │ │ ├── 178a56798dbff29282d6429f38b90a3c38176e44
│ │ │ ├── 17a20e3c23fd2d68a91430516f98adda339b5e75
│ │ │ ├── 17ba0791499db908433b80f37c5fbc89b870084b
│ │ │ ├── 18409f12d471904b1b324de65c6aff415c1c5a05
│ │ │ ├── 1855ab3449f6c88cf6aa1b4934d0255c0aee0e2d
│ │ │ ├── 1859d9982a973a8e8e3847191636f7b1c4f6fd94
│ │ │ ├── 196b6389f1311f74b44bd406db713d2830124b51
│ │ │ ├── 1984fa93dfc82250e73902e2094b31f111574351
│ │ │ ├── 1999f967511f9931e244f41dd5ba8f586bf1b74f
│ │ │ ├── 1a139c28e803cb895cb9c8e2008baa3a4800168c
│ │ │ ├── 1a29dbf01695c8457debb8dc12e0f7a1d3e7672e
│ │ │ ├── 1a30f2cc216bb8459843204398b5431c90ae09ba
│ │ │ ├── 1bc01adbf15f9a2146d439f34d6c316962958cda
│ │ │ ├── 1bc9e0764cb9ae279a27eaa37792529015ae0620
│ │ │ ├── 1c1fc881d7074cbfe129781355adfc8f4510dd60
│ │ │ ├── 1c452b522903c9b6cc1d7ee28685e56f4d4f3a2f
│ │ │ ├── 1c5f039c98401c78fc859e8ba39f434467c4269e
│ │ │ ├── 1c63023736fa34edaa0472bca59b29c71f685313
│ │ │ ├── 1c6ee8945a330b22dca0a1f248e6eaf9e9b4673d
│ │ │ ├── 1cbc0701f571c57fc689e4d0cb7320cbcc47d85d
│ │ │ ├── 1cc082453db0c1fa6484c964620ce13a6495c329
│ │ │ ├── 1cd5123b2c94e4b37a96148a2d43b603138e2588
│ │ │ ├── 1ce8d6e48ad6a5541a2fba389435a110951b2fab
│ │ │ ├── 1cfe6329531e65837a48878188eaa4b928056e1c
│ │ │ ├── 1d214277d19efb8d4d78a929f75a105796e7f265
│ │ │ ├── 1d28dfde0b2b31337dc9efb6fc98893732dca6c3
│ │ │ ├── 1d6218af537c56e29654960efa9d2a130e3550d1
│ │ │ ├── 1d7a7560de069798a1f66f270354f55bb8ed780d
│ │ │ ├── 1d7d4fb77f5d6a80b915add906e1f114b4b3d3ce
│ │ │ ├── 1d80b236737362b6763b7b22a2ad3b19d659ea67
│ │ │ ├── 1d80d873b86c73a774d41c7f504ca572c637e972
│ │ │ ├── 1db1e9c1e0b138d33a6a062e03033078e3cdf314
│ │ │ ├── 1dcd48da411ef26ca335e0347025a79c78423bdc
│ │ │ ├── 1e16367fb4bdb0286949fb4a8a50d959fb6d78af
│ │ │ ├── 1e3c14ab05640bf588144da10bb936d28efeb1a9
│ │ │ ├── 1e5c2f367f02e47a8c160cda1cd9d91decbac441
│ │ │ ├── 1eceffd53c2e082a2df0684a0221f2d16f430c8e
│ │ │ ├── 1edfd5ecbcb7c50c862e3ebe191fef60ccf7a7ac
│ │ │ ├── 1f187e6139077f3f55a145fd026d3baf937e3d4b
│ │ │ ├── 1f39d340b18dc9b554bc535fd249a10b49260475
│ │ │ ├── 1f3d06ddd5437d4514185fe691dbb59f2bb53916
│ │ │ ├── 1f668c8902ba9efe59d2ea6a34cd6bf5cc5f37dd
│ │ │ ├── 1f7557c7de3b93383d2e48fce35f039adf41e16a
│ │ │ ├── 1f790217fa6bae2b6ec46521c2cea06680cb2bec
│ │ │ ├── 1f9849b0cb24187ad03c9d184cf086fc1b4eb2a8
│ │ │ ├── 1ff4c4e9170262e620a41def028d9d6d43edc735
│ │ │ ├── 20d6007e33e76f0ff3ba49a497368af9aeb4d7ef
│ │ │ ├── 215a956168f77421253e947c2436371d56aa7ea1
│ │ │ ├── 216c075a457b4945e2594fa325a5820ac63de222
│ │ │ ├── 2184f131e5af33c14627fff444e9ead44896863b
│ │ │ ├── 219c1782ac5f71bfd734999a1afb7670d0ca07a3
│ │ │ ├── 21cc6cdf6933f957c28a9d0a35d29bf237819705
│ │ │ ├── 21e7f06bf3afea9e1c4c8ffa7efa2d4ffbd70ba9
│ │ │ ├── 2202987b7d0d68a6213dcf9f95abe6de70e400ae
│ │ │ ├── 22b7bfcd6065c40803265f7f6db35a85b58e8687
│ │ │ ├── 230c2a19de456daf59aea7607a69d101b8abd853
│ │ │ ├── 232d21941dfdb9e55f19c2cf6592309a4ba67d42
│ │ │ ├── 2341a15a08fb357274df1c3dcdb4304cf5df9fd5
│ │ │ ├── 2343bee24829ecf3f2092e8087f273710e42b771
│ │ │ ├── 236c4b0bb9d846e26c21de410bd105e40434acbe
│ │ │ ├── 236eaa74e961723e0a697bded434f85a116eb9c5
│ │ │ ├── 237ce6edacbcfcab10f9ee374825b330418d5022
│ │ │ ├── 239e7a68a995876fb5e6af6209d0e0809aae4fa3
│ │ │ ├── 23a48c247f7a12ecd2e488960a4a32c858f4d012
│ │ │ ├── 240efe256b302e414b80ac46c605ee2e273300d0
│ │ │ ├── 2493619b3e38685a3f99453f24c7e466040592f6
│ │ │ ├── 256d295f4e87aef201a703198f9c932fc015c5ee
│ │ │ ├── 25980b41f9e2743440deda73c5486d134000fa3b
│ │ │ ├── 25b6589aaccdcd9496cc795588e1d01865f318f4
│ │ │ ├── 25b95b039141fd2b01a0de23f42f2bb5b7aae59b
│ │ │ ├── 25c1f403285891a81a3ce4a27e38ce62f7a642cb
│ │ │ ├── 25d9d15d2b775ae65847f7dbd87a5076745f99b2
│ │ │ ├── 2628263c649c2dd81122ba9ee0e4d3f8b2b2dfd1
│ │ │ ├── 26771d9f8386fa3e7476567ca9b69d5e1ff38461
│ │ │ ├── 26a5d4575144ec44ba60f9d5f1ab07e46b823938
│ │ │ ├── 26da4ae4fd3cc97742a53f5010fe7aa7b2659274
│ │ │ ├── 27338ef809358f9ed9c5525547157dc7201a5f7f
│ │ │ ├── 275f2e4648d1078f44abcc73665cd50760b49547
│ │ │ ├── 2762b3b7303c297a640e88bd94cf3f216987af76
│ │ │ ├── 277c9a08e3881f657825ccfe636c44110f86f9ba
│ │ │ ├── 27a1ebc75a4776e2b341fcf82001d32f47f6b793
│ │ │ ├── 27bd3c5c268f3835042ac0e1d96f7e3d49c4fb0e
│ │ │ ├── 27bedfa1e51ae36f35fb4602d93099318649c1a2
│ │ │ ├── 27cbdd2e1f71bc5c19ca37f9a0479ff85c1d6dd7
│ │ │ ├── 2809c70d0161be859f0d7d56d277964c83d7941b
│ │ │ ├── 28602696c48f94a8986e05a93f53df2f074d68bf
│ │ │ ├── 28838b1929cfb5d5fb59f3c28b3a381c734aecd4
│ │ │ ├── 28f8bac71263d216538fbf30a315b7eeea8f0b36
│ │ │ ├── 2947f2e90cda5e7c20cf2d67cc5d4c2c28386773
│ │ │ ├── 295c738d4507000072be961bbb1879db167562ec
│ │ │ ├── 2960b092c24042ef6e92d60a1621680a0a7b6f28
│ │ │ ├── 297c3d22a37550f74fe842983e02923604d5dd53
│ │ │ ├── 298ed50471738cd75cf28b8ed3684a0732eac173
│ │ │ ├── 29afe10969b9e2b0b9a7aa06fc7bb73b7b01f52a
│ │ │ ├── 2a17e6cf06beffcf931f5d3394dca1e725b6c530
│ │ │ ├── 2a3c14fc5e2382dfd8360e475e57d4cc5473ca0b
│ │ │ ├── 2a76bf5f792ef887b6cadf4d46e9b3bd01c6fab1
│ │ │ ├── 2a95b67553c33d754298eb6ee01fcfae6e1b03f3
│ │ │ ├── 2a9721827356716247ad4d99d94f6a1e6ae92d83
│ │ │ ├── 2aa7725488a917ea4fb369e74cee680c2c6f6624
│ │ │ ├── 2ace62c1befa19e3ea37dd52be9f6d508c5163e6
│ │ │ ├── 2ad8b2d68feec151408552340eb77587fba87bed
│ │ │ ├── 2b774edb0631cd161c8dfb8c190698e315a3dd1a
│ │ │ ├── 2babf932e75486b81bb1b53c882fbce1eef8c1c3
│ │ │ ├── 2bea96c684438c27b8e9f70140f4f6382c0cf9f7
│ │ │ ├── 2bf0dac82bb2b944b679ee658666ffec6e336c32
│ │ │ ├── 2bfa989034f43999b0e7770ef7cb463317acc4ff
│ │ │ ├── 2c1b74330a478b7a9c4cface1acddf2799fd79e0
│ │ │ ├── 2c288a66a089ba217c925c3e5bc710b78341c8cc
│ │ │ ├── 2c382d8885f2d2fb64ed3ce4aa9d00cc6ae75fcd
│ │ │ ├── 2c8c392400150efe27116c5c23edc39657a5c9f1
│ │ │ ├── 2c8f9fcfcfaa5abc0d983d2dfb6edec72fbd06e7
│ │ │ ├── 2ce2c025ec68b0c3340bb8f56897f722a0cd2682
│ │ │ ├── 2d1cb217cf8f4c2ba75a7738526d0f4c47af70aa
│ │ │ ├── 2d1cf82b345ca6a65175047d470607d826825bdf
│ │ │ ├── 2d1d5c500eece9f3b3d5e7bbdc8536becd1afed3
│ │ │ ├── 2d228be273f5e117fe3e29bb54df778e93972d1b
│ │ │ ├── 2d63759924fecda05ff2fd422845501dc0adf3f8
│ │ │ ├── 2d6809a25aaeb7e81e0154cb4fdb2a77d4d27ac2
│ │ │ ├── 2e0a71f160efcf980bc119d548fa27ee0314398b
│ │ │ ├── 2e7c5a954bda0a5d7779115245ee0d26ae49ba7c
│ │ │ ├── 2e907e37837a33eb0ae3c998d3804b120f3c98da
│ │ │ ├── 2eb36c101070a456b4bcc066f701c7516f1e0493
│ │ │ ├── 2eb7981e0fbf7e8343b67de3d6837b52bc1e532b
│ │ │ ├── 2fa00ea5f90cb58fea6ca4bad536a6fdc9aba4d9
│ │ │ ├── 2fb10137eccdf4c105a638711119a8719e447871
│ │ │ ├── 2fd293bc34ec68be110d565e092d96a25fbb8f9b
│ │ │ ├── 2fee93debb3d4e2b91846f13257c56d152087d45
│ │ │ ├── 302d26248190db0a111feed94fba1fb9c9ccdfae
│ │ │ ├── 304c8eb755feba4ce375639b05ebcd6bc240149b
│ │ │ ├── 308d5f6b525c274a4cf60e06aa5aefd60c4def82
│ │ │ ├── 308f59b32968e04e82b2891ba67ffbabdfd5b8e2
│ │ │ ├── 30a3dd65f13d9b4ea63cb6d96d4f9f3514b226d3
│ │ │ ├── 30e399c8e10ceb0159d7db5069e3487be184e0d3
│ │ │ ├── 31292c21af27607cc56925511cebae19e5181dd0
│ │ │ ├── 3166df7178e0625a65a99b35fd05dc7ec32d2dfc
│ │ │ ├── 31789ace8fdb0fae2976e8303b614c51d0a139a9
│ │ │ ├── 320207545589f0e4be6c65bf81f0c6da06e71222
│ │ │ ├── 3202e6827932dd9b7e73e2c15e37bc1b82401845
│ │ │ ├── 3208097f6d585c5f179d8ea81b556cfb183be414
│ │ │ ├── 3236cdf989c6c644d9cb3fd4a4284b5d38367785
│ │ │ ├── 32747b2fb9f67646af177f4e8edad550e8517a23
│ │ │ ├── 327bf0ed6722e84ec7a84049403db7098f0ca628
│ │ │ ├── 32f36826124b980508f6a8a06403b17ac25b53cf
│ │ │ ├── 335a84fb113277a6ad545f92f633c5ce1aceee06
│ │ │ ├── 3384bd1ad8101f87f32a0ce59ed38f778b5f904c
│ │ │ ├── 3395de18e081d9d9376ce849628f422204ab921b
│ │ │ ├── 339f299f1034f2f19d64632750d1448145c92ff2
│ │ │ ├── 33def802e2a29af67dc96902af460349dd9a25d7
│ │ │ ├── 33ebdd5488eeb128afcd0f318482e9566acda525
│ │ │ ├── 33fff9861ee11ecf4f7f5ec17f00b57325d5ec19
│ │ │ ├── 340b12b1d2f288accc5c9e559686bc236f04ec02
│ │ │ ├── 343bdcca4f1445ac8e3575b0c76d0b1f16a70e1d
│ │ │ ├── 348111bbc3e8c2c1ad1db5f8210796d042c1b9be
│ │ │ ├── 34a1a65920f896f69bbf3c346dfbf3d241f81b48
│ │ │ ├── 34ac8bd26ccbcd9858dd45350fc1d714fe6a30f4
│ │ │ ├── 34c4365f9a7579468055bb6e7a9fda590358b355
│ │ │ ├── 34d7d4145bc862506f07e3afcfe26b588d4c96d6
│ │ │ ├── 34ee4e0fb298fc29b69feaf316f18cf3f9fba10f
│ │ │ ├── 351733f0c158433bbb8af553873bd0409c0c52ea
│ │ │ ├── 35196833663fe1e66dc2feb47b6e26e5fe44f14a
│ │ │ ├── 3562218b95d438863a56df560e372f1c376bf482
│ │ │ ├── 35d19261fdcd553ded45308bd097c8a2fd7d443a
│ │ │ ├── 35d96efd9f4ac9fae10d0d419539616fb98f9822
│ │ │ ├── 35e7040f2bf803305e024f6e708a6a2c4ffd3170
│ │ │ ├── 361b1d1f5cd745180726d2693c2992fbdea5b0a8
│ │ │ ├── 362cfe1d73162471883d7386ee53f7fb42af6dab
│ │ │ ├── 36850342543a9ada4596919c03c07d43b7b07565
│ │ │ ├── 36fa45d79b68e3e5223ef0bb2d1c29bb43a4f7a1
│ │ │ ├── 370b3a813fa5d4df99b1cbcd12273a8ddedc5aa2
│ │ │ ├── 372b48649c97e0f3510da5eb65593093e154dbee
│ │ │ ├── 372cecde6bdc292bba06f88c5fed34f5f05fc346
│ │ │ ├── 3753ae73a4559c73400224088eb6b2c55ad5cc9b
│ │ │ ├── 377137184527025e0ea925c9a8541ad4d99d5547
│ │ │ ├── 379e9c8b787812b54a54997b939830299f5ffe82
│ │ │ ├── 37d540606ddbc3bfde1d7ac9998f7af3322d64b4
│ │ │ ├── 37e17f2d625a921a40f088e4e63b48d1df72f79a
│ │ │ ├── 37ed45d9fd8759c65f9c20f7212a525aafe3a558
│ │ │ ├── 38786743e47a1200c85b8919dbfd5a0a2f220c87
│ │ │ ├── 38c42d3fe894d06965ef5110d4a7a01c1e197c7b
│ │ │ ├── 38d1309c8b3f136690d7f730abf9534c55689ec7
│ │ │ ├── 38e56425101b1c12aeae78cfd2b6fd310b7a2ea7
│ │ │ ├── 38fd625f357e27ffbdfe2668c3434dcaa383f254
│ │ │ ├── 391be45fded893f9b7292fcce2851ad4fe0b26d8
│ │ │ ├── 394a9e45e71b73a413f59a0a5cf743facb04ffb6
│ │ │ ├── 39965d9b54dc858506c6edb0b0f90aff2d70eff6
│ │ │ ├── 39c72f1b63f8125b5505df6bd4171f586334d01a
│ │ │ ├── 39d99091b6be761e640f6a69c7882d15cdbf6604
│ │ │ ├── 39f38fa68ee08ad29a9188bd0f6d6ef4f6f12a3b
│ │ │ ├── 3a09a3de6657ccfbbdc20f9992a0b36146362a23
│ │ │ ├── 3a0bc54d21606c0262757bede95d1d634ac743a3
│ │ │ ├── 3a11f439f987e242d22bbcc681b8032397afe4f5
│ │ │ ├── 3ac3bc7744cfe0db75494814f6ee7aaa4969bdf4
│ │ │ ├── 3ac7dc86a3b3be5ca766b154e24e8e234c520fbf
│ │ │ ├── 3ad49e798d7d966583a4c3358c7e9c1a5a4af2f4
│ │ │ ├── 3afdef440667864e1a86de9c9e0b17ba46afafd3
│ │ │ ├── 3b43f0e6473d251870ebe3b2d3ca7ac96929ffa2
│ │ │ ├── 3b7a06bb1102f7d788e3167ff05a9b20da93212e
│ │ │ ├── 3b8228ab095577b57783a4e9e84884ad493b1914
│ │ │ ├── 3bc0450fc0822685676b85d782a5a82a50f2d4ea
│ │ │ ├── 3bc15c8aae3e4124dd409035f32ea2fd6835efc9
│ │ │ ├── 3bd4cc94f2eedbb8839f447022337d027b8f2270
│ │ │ ├── 3c10c0691c25e0cda2f91b968fd565f82eedb7cf
│ │ │ ├── 3c18dde7f397a3d2ac85e4e6b718d182719b9fa0
│ │ │ ├── 3c2346ee3027e07d54f36ca342e2c734af2278da
│ │ │ ├── 3c336cb88f39a9bb9834874f9fbb4d4cc5451293
│ │ │ ├── 3c4f5eb04091be902bdc49260a25d82939e6195f
│ │ │ ├── 3c71b41a3339af54b8fd324b8032ab67a54d98cb
│ │ │ ├── 3cc0c9adcf3882f01409c70391c3cd30588ef34c
│ │ │ ├── 3ccbde3ee9ce7fe4451ed263ead17827b5a20c63
│ │ │ ├── 3da9cf8540afb4478b06e25f3ddcf0c8f3cd9306
│ │ │ ├── 3dab001eef911a7f6ef0116315922f6c9b6bbb41
│ │ │ ├── 3db583f6b7dbac51bce70b1cbcd6684bcfff9fa7
│ │ │ ├── 3e4a1c7d66a8cfa290e84fb8f8ebf70cd82cb394
│ │ │ ├── 3e8d29b0b9ac8f775a8359459695cc61c9ca1a04
│ │ │ ├── 3e8e8a3a15c76f1325055b65cf1c553004f3b118
│ │ │ ├── 3ea9d5a432c432ced51814405e6054c036719a60
│ │ │ ├── 3eb4d8e0175c68935f3adecd46e0905eaa540674
│ │ │ ├── 3f1fce56d85c2be73de56da44061ae3d5d1047c0
│ │ │ ├── 3f3d2d8955322f325af6db2238355fa07007ebd9
│ │ │ ├── 3f46553672e465842ec1e13f655fb2412f369a75
│ │ │ ├── 3f5b4fd54d7d65119eb30c3189f8c1db1b235c17
│ │ │ ├── 3fa9f42362648ab1664d4c94a394992fcbd1cd94
│ │ │ ├── 400cd284379f75d94d72c83b34b52a7f68115192
│ │ │ ├── 405aa6d9e95a1ddfdac04274ac0d886147b9fdc8
│ │ │ ├── 4080aad4e09976800c567178e96a2224afb44c62
│ │ │ ├── 4080e40e55ec005e0608226f382fda9fa3f00ebc
│ │ │ ├── 40834971eed0f77d42f9b5c71026396f82ffe665
│ │ │ ├── 40b34add174514e531f9afad8b2d8b3c4b51b53d
│ │ │ ├── 41297a62e158d9c33b0d70979388a43fae09b043
│ │ │ ├── 413c895cdd4c65a5ee4116b925bb7983c513afb7
│ │ │ ├── 4188306a902fc5b7684dcb7522c08832e91f97a8
│ │ │ ├── 41c7e44bb0579aa7f4019bc0f2a4fb6daceb6df0
│ │ │ ├── 423b069c60c6272209eb2792833e88728cf105d7
│ │ │ ├── 423f7c4dfaf780084ee2550103711768642f8c87
│ │ │ ├── 4280f0a60bdb986b51e8b8dc2288cd8c19ad0e2b
│ │ │ ├── 4296b33daff22cec69fa15e9294cac2a4c1be6a8
│ │ │ ├── 42fc7cab138c3bffc4e81fe3f8a2e77cc3a8d3d1
│ │ │ ├── 4313d0cda84a261b2b03933749ea4e4ac526e6c2
│ │ │ ├── 437a074f2ac29d235596072ef1298b97265162cc
│ │ │ ├── 43c875115514f41f7a8dde1a74d3ce2e80eaf557
│ │ │ ├── 4411f39256e106721697067994543efcd7402261
│ │ │ ├── 446135f27042adc7ff2547ba3df77b175496ee80
│ │ │ ├── 4468e2b68d133ac7828889993098e5eef8dea921
│ │ │ ├── 447f451b8b7ee11d357e28834f0df6224cec82cd
│ │ │ ├── 450db3efdcff3410a2538efa74bc2904d4f1e844
│ │ │ ├── 451400a2054e00af514b005ed831f39e43ea8ceb
│ │ │ ├── 45341f73379cc99aabe7fa303867ba18a77786a9
│ │ │ ├── 4542f1c6bce7b5ef1c1a73b03e24506086700ab3
│ │ │ ├── 45453f7d38ff031145fabe9fccd261192eeda418
│ │ │ ├── 4597cf04ea0b24d1fc67257eebb4fc4489c2c3e7
│ │ │ ├── 459953d144f98c42a4cfbb452c8b464a4bce6a0b
│ │ │ ├── 45a6c96209eff0195cfee139f70a5d5e7fac9a7d
│ │ │ ├── 45a933e6c049300ddda26d4b7e07bd46e9667e82
│ │ │ ├── 4653549544f320473b7fbbb0f831113e21ae3ecd
│ │ │ ├── 46b6bf4bc8709110705a65b6f772fd77da1978c8
│ │ │ ├── 46cee0e08f9472278dac5b6a2e507535673fc0cc
│ │ │ ├── 474b20f1420832d4e3ce060fc445c617d1768438
│ │ │ ├── 474f1d0aca79492fc90bc8309528abd9581449fe
│ │ │ ├── 476d54b21b620fc973c77c76362cb1d661e5ab87
│ │ │ ├── 47fe5c8c67662d0db976f29239aa14d2f8b7ca02
│ │ │ ├── 4851375ea86f359673ebc54cf0113d1495435f79
│ │ │ ├── 48754ca4cde3878664f922dcf04b46f416c5fcdf
│ │ │ ├── 4889648e8a44b34f0c29210a988460e643285f84
│ │ │ ├── 488a339d8589fe302ff2b90692264218b250ff88
│ │ │ ├── 48be565a9634f8000885f8cb150dc352c9105bd0
│ │ │ ├── 48d4d61fda7edae362ecc83114c1f1907c8a0b79
│ │ │ ├── 4913c66edc1516e7e1b888a387fdc74678c5ed17
│ │ │ ├── 4916e9a8fd8fca7cc291771622bd3e49eed5db10
│ │ │ ├── 497d26a61e86ada8f6166298f35b61b40e2dbf62
│ │ │ ├── 49844e0dcbca72321f4f9a962269fef8728bba53
│ │ │ ├── 499be66ad7666c3a0187210d3c8a4f58b24765e9
│ │ │ ├── 49a57c7fdd847ee747c0ca96a735228154b2c67b
│ │ │ ├── 49f5169175b89fcc6c8170decf2a9c7a21788b4e
│ │ │ ├── 4a0a19218e082a343a1b17e5333409af9d98f0f5
│ │ │ ├── 4a1a62c02323eb9ddc3fcd706b762606db5fd381
│ │ │ ├── 4a47c77243a9b1db9b34d788bb7757f25315cd5b
│ │ │ ├── 4b150385dc629b52921df99a5138431a3c53ae00
│ │ │ ├── 4b3e82b270d5cf60415f6b8a37046839a1eb82e3
│ │ │ ├── 4b408d78dd49db9489e37b74b5e9bfc17f2c2ec5
│ │ │ ├── 4cbf6c660383852039f6dcd7c5e6f34ce9d1a212
│ │ │ ├── 4d3176c70b79ffe89111fa4951a41d3361014cea
│ │ │ ├── 4d4ebd417302379449fffed4cdb5d1aaf7257f47
│ │ │ ├── 4d6c6af1e4a1e332819857cbd32311a9d5676fe6
│ │ │ ├── 4dbc78b6ba2c08e2b7d8c7be098b7736c48a1915
│ │ │ ├── 4e4215704e6087d68358cf586283a359ac0723f7
│ │ │ ├── 4eb38b4be4322ad7fbc1eacf5ae840eed3604647
│ │ │ ├── 4f3f060d2b254598f050840aa988f4cf36736983
│ │ │ ├── 4f450f08c58bfb4efe8e5469cd56a68a5b8ec93b
│ │ │ ├── 4f479dd70969b1c61e2aa9e0d7b28ce951320684
│ │ │ ├── 4f5765a9a68b1d1e8bd9837311615bb712f744e9
│ │ │ ├── 4fcd7aea14399895fc3b714ba4ab8a5e1e003692
│ │ │ ├── 501ab5444eae9ad32b562570b36ff628ec3790ce
│ │ │ ├── 50495e08a3b12d9709e75faed61bb5348c546bb4
│ │ │ ├── 507f205ea6c56684fccd943a609cdc0bb346a69f
│ │ │ ├── 5178385df63a91f9eba586f0de99be8acff5d65f
│ │ │ ├── 5211f28f1e05bfc4ea0f6e51e4c5a780810c9f9a
│ │ │ ├── 5226ebf815a6f3a2dd66fe52f5d23a658f488344
│ │ │ ├── 522b95c0267408f0303d8f0800a0acc88434bd51
│ │ │ ├── 522ded6f6768a63a36c0052efd621d656cf0f7ec
│ │ │ ├── 523e68fd4357b677e785685bfaaf15605848a80d
│ │ │ ├── 524811f443cf072d261ba6f1c19ec2bd0d91e5d7
│ │ │ ├── 5286e94b4793ae92b19a3cc532954e4aaa6500d0
│ │ │ ├── 52aba038b86998c05b5507fa9422b51e68367509
│ │ │ ├── 52db6fb74ac440a76e95a1544b457cde550470d0
│ │ │ ├── 52ed58efba9852309859e7115373a88eba4d6fbd
│ │ │ ├── 53095bf7785bbb0fbbb9567a9238342b24a12f14
│ │ │ ├── 532cd4b10773917daae39df03479f8b3244c68d1
│ │ │ ├── 535561a4b91974bfc0aa4747148e19eaee605d6b
│ │ │ ├── 539e0278337f619b40d8f087446c228bab6cccc7
│ │ │ ├── 53fc543b35d9dade41d75ff46ebd99de95c49d32
│ │ │ ├── 53fe417ce92625d6aec48ae87124d603e5fd760e
│ │ │ ├── 54088bdbe122f577e2bb2bbaf0892d2a84d1d107
│ │ │ ├── 545dda9ac933f164fb06b9ce56412feb0e87389e
│ │ │ ├── 54976ca2093d1368e56a4c7d0a2b909b5a2472bd
│ │ │ ├── 54d18dafbe5558371956e46e8a3f71dbd35a64e8
│ │ │ ├── 55668c2a8032d4bb7e67186547d18b420efa1842
│ │ │ ├── 556ce15192eb2fbb9dd0038e4fac6bffc9bf9a97
│ │ │ ├── 558511c9c3651ece20f53411db2280c83a7830a3
│ │ │ ├── 5589f830d3ad773cad9e3ec310c594274960ae5f
│ │ │ ├── 56e0f9f2e224f5870db0c75e222b7f84ff650697
│ │ │ ├── 57164b5b72873859518379803db5d70122ffc6f2
│ │ │ ├── 573fd0b6bd990a3168d1527eef353f5c3701cb83
│ │ │ ├── 5764af93bca63d9c5fde5855afc605ffecc362c5
│ │ │ ├── 57799e19812c6415abed8d8eb16fe73c0dbb86fc
│ │ │ ├── 578a81ce19eddfb8740cc918ef30e3e3de6fed29
│ │ │ ├── 5846ca010fd76d7aefc92e4b5a56a806405ed3f1
│ │ │ ├── 584b2a4c8f1a04b2299eccef30368d80f07e0690
│ │ │ ├── 58d420b7a408f1c6f155c2e8b7907595136e2392
│ │ │ ├── 58e3c6f57d11f93ca54603fabe37c8b5f9fcc09e
│ │ │ ├── 591d717e7afc6b6f670d8b2166ecf3f7402a9feb
│ │ │ ├── 591e403c211f3400bc5e93075a05d91702c3f410
│ │ │ ├── 592aa173f4857b6f37f18c687109124a154c838a
│ │ │ ├── 594eb331a727d4dbf5af307884e8bb9efb9a08fe
│ │ │ ├── 5964b11c9939954c1b0e487f156e71d677d3839b
│ │ │ ├── 5993bf51dcc85ee696faf3f69684ef22dcd4bb7b
│ │ │ ├── 59d8ba0d0490b2fcc0a6cabaa9ef23aad6ca8c70
│ │ │ ├── 59f6299681965548f40fde40d3155c2d754c5c40
│ │ │ ├── 59fb69c6db0d55e803195ed43528c4ade75917e1
│ │ │ ├── 5a0160a039e2b324dbcd8a7d4ae6f74c9fca394b
│ │ │ ├── 5a5f5371b1d2368d46157937b94ef96067ad9e0b
│ │ │ ├── 5a7e539f9a8f862158fa28224b1349e518251796
│ │ │ ├── 5aae4dd436f51866bc8ab3e7f68691a07f740901
│ │ │ ├── 5afa8cad31bcf2c5d904bd8ba754e6677ee770dd
│ │ │ ├── 5afc3e1fee1233f0e9cdf3cdf799c3f0f29e7eae
│ │ │ ├── 5b086a7767cd2cb3dff6ddd3a258c057262b2735
│ │ │ ├── 5b2f4c9f931eb48805af7d510eb94b3d7859218b
│ │ │ ├── 5b339ffa1a980cd97e7ecb6869251e219c0ac426
│ │ │ ├── 5b378bb29895dc729a02cf9da53c5783f5ed09a4
│ │ │ ├── 5be4662a424cc1a499e5227b8c685bbcdf089dcc
│ │ │ ├── 5c29a15abb9eb86e7e02e986bef11965b507ecc9
│ │ │ ├── 5c4b33387c247bb9825d6d458d962df814b46c8e
│ │ │ ├── 5c50e2e091b59dc75219bbef78edb8340202629e
│ │ │ ├── 5c7007f1832eadc11bf0dd73d2c74ef167fbf451
│ │ │ ├── 5c72da08f13e3df6d60f53d6513dd6552e66c36a
│ │ │ ├── 5ca74922c7d71c3a26b4431eb90c264326f079fc
│ │ │ ├── 5cef62b6376467e41f0ec5bcab698ec088bdf3d5
│ │ │ ├── 5d110ef6952a97232b85d38c47aeb91362a4f4b8
│ │ │ ├── 5d326935586dc7e8dae79fcb91c31ca079ffc675
│ │ │ ├── 5d453f1961da8d8aca27ffda3b43bb8cdee39df5
│ │ │ ├── 5d9dca33a6be38fe569e106e5cc886854ce3e8c7
│ │ │ ├── 5e1d727a4196f15ce01c55c1fa4ff51587f46676
│ │ │ ├── 5e208bc71186feda27cf3251ba094696fdce8c33
│ │ │ ├── 5e400b915ed5cdfa0df99df1d3280b418e9fddc1
│ │ │ ├── 5e5481335bfd96ebe488211384f06a8bbb8fb490
│ │ │ ├── 5e656964a20e04bec5754870a3a3fd392141891b
│ │ │ ├── 5e6f19659eb4cc7657b20e1df0b7440ee1a0740c
│ │ │ ├── 5e7771cd274c3247859b9e9171e192349e51337f
│ │ │ ├── 5e8db4609549ebe1b720f571139f9e76389e7da3
│ │ │ ├── 5f004a2615edaa7b8e2df2eff7b8e0c10f54016f
│ │ │ ├── 5f421e3cf6daf0642f816053eb0ca330fc5ef51b
│ │ │ ├── 5f449004c9e39807f0e8f8d7b7a4ae97c3b71e25
│ │ │ ├── 5f4c1c618e8458445dfbf02dfa7ae8b909636645
│ │ │ ├── 5f5dad4fb9769faadc7ce392fbbb5cb62fa03e7c
│ │ │ ├── 5fb77413b5cf53b8ee9bb03847006c5fbdc007c9
│ │ │ ├── 5ff75a6b7bf6c4b6479680c04b4760c22ff97833
│ │ │ ├── 60215a10e730f79c20b7d4fcaabec120335e379e
│ │ │ ├── 60272b580667bc336839441f3db4f019728b3392
│ │ │ ├── 6049592232ed99e05cbd7c100608ced7cfa8ba01
│ │ │ ├── 604e195d66a392eb33bd71396d450aba2986e930
│ │ │ ├── 606f50d3891bc0fc033e8aa3bcacc865c136176e
│ │ │ ├── 60b01afd5379fc6d51263eacf6820fd4337d89f2
│ │ │ ├── 60ba4b2daa4ed4d070fec06687e249e0e6f9ee45
│ │ │ ├── 60cd435dbb7d7c1b33ad7a03acff155c286f814a
│ │ │ ├── 60f4cef6efa266e9c2a502084079336b26beadab
│ │ │ ├── 611f2784d7499ce48e59ac4ebf1dc3cae4245588
│ │ │ ├── 6193586878f07594a8e844c318d1663d92e032b6
│ │ │ ├── 619a07125bd0500300e50fb8e8f0c5ef1d4fd0ca
│ │ │ ├── 61e615f5d223296fbe35ecf40f7f0ed027fe90fb
│ │ │ ├── 61fdaba3650e4bfbad84131122ce949343672e69
│ │ │ ├── 622833b9d1425c97805dc74dd3b1abd1f4f3b006
│ │ │ ├── 626855d0d646249185f996be47ea02fff27321fb
│ │ │ ├── 62a2f275c26bb87707b9b757eeed0021da48e06b
│ │ │ ├── 6312ca5c168ca862eaea09bd0ac81889b89a2409
│ │ │ ├── 63347e049baad1da689010fa9a1bd4133bbb63d4
│ │ │ ├── 645938395f67b641fc971581f6ef9f64169d0a41
│ │ │ ├── 646dd560fd8f3519f4b547d01f43c94150d8a5ce
│ │ │ ├── 647540e12fb95b8406199edd247a16a9c2186442
│ │ │ ├── 648f2517faa4a9739a91298f49666439d974d486
│ │ │ ├── 64c9e51daf077df780429ef914f92bc9bd49710b
│ │ │ ├── 64f74ddc2c5aa8f65815509d3cfa1bdaaed8809c
│ │ │ ├── 64f7b6fad7d69c74efe01d7b2b6f7e5775379dbb
│ │ │ ├── 64f9f8e441f73ba147f020b02ec78ac759b41bee
│ │ │ ├── 65126beb58fba7d27a2f36a7c91a8b56d1b9b235
│ │ │ ├── 654e0aaee80e38636c503629d32225db31a616de
│ │ │ ├── 656b3e0b9c2dbe2725bd3f08261db20751de0b43
│ │ │ ├── 656fb09839385e8251d78499ae3ed05ce97d7cb6
│ │ │ ├── 657127ba2c00959ea67205b16c63bdb2f10a2515
│ │ │ ├── 65aea98c57dcd2a1ffb0d35ca20603caaf7d9f03
│ │ │ ├── 65b544011acdbe217d3bbaaa65f1970aaa69cedd
│ │ │ ├── 65c20e09b9f3a47f5039569cd37a5686df76f02a
│ │ │ ├── 65d3a2099c67f644bce1218a2543b1a1c4dec4a0
│ │ │ ├── 665f5bbc3ca48e2398a4a198fe47d4e881a5e51f
│ │ │ ├── 66a6ffb4d6668d7bbba65d5a288e156462d5ee6a
│ │ │ ├── 66b4ca637035bc4df1f0ac6c7774ca1e9a27a8b4
│ │ │ ├── 66ce98d3bfaa1c2c5eaa0cc9d768d89ad444d58c
│ │ │ ├── 671f0dd3f19de4b4bd2fc06eabb4bf0d3825ce19
│ │ │ ├── 677fdfc640db7d7977e89f91314e8e0ea7918e99
│ │ │ ├── 6798a6cc00180e65c6b51c3990744757221eb0be
│ │ │ ├── 67af585ba7303b80777576619f8c46d1b012dcc4
│ │ │ ├── 67b40800d585a70e1b2ee84c3109c005c326567b
│ │ │ ├── 67ea809a689ee506415c7e52c3df441cb2826771
│ │ │ ├── 67f08a93e78cb7e0c4f2c99b83640102242c3187
│ │ │ ├── 68481156e2ccb16fa0ec15dd1bbc4cb2524b7b53
│ │ │ ├── 68c44cedcd6000de4a3283cab764c81a529ca1cb
│ │ │ ├── 68caa96c6ecd6d1e335686d4af4d53fe8006be48
│ │ │ ├── 68df978b8802f1bf1a708bf2661187a9095afbca
│ │ │ ├── 68e6cc15163fe229e77ac95819c08e64cc6252fe
│ │ │ ├── 6948d3cdbf8af79afea52bdd2b15ba20e23b17de
│ │ │ ├── 69905c910f37e69820a697fdb485468c8fbe4854
│ │ │ ├── 69aa5878320887984588c6b0568b974c8710bce9
│ │ │ ├── 69b7cfbf4db9b4011fefe6fc34d383a4b9820295
│ │ │ ├── 69c6263aba1c5f70b5b9a568a32f18fb360374ce
│ │ │ ├── 6a24ddfeb4c80c6e632ce750bbee73a880973a33
│ │ │ ├── 6a25fc3b03006936a321c9c770ff196bdfa5616e
│ │ │ ├── 6a3eb2da615f620404ae55afe5c39c03380d209b
│ │ │ ├── 6a3ed5f7541fe9ceba61df074ce4253e7b86d5d3
│ │ │ ├── 6a8fe97e7e0aff2a886b48b3f471bb7da954c1e5
│ │ │ ├── 6a95391b29b757f09f0029671b65a44451f6a9ee
│ │ │ ├── 6af58d7771c70c96a7ed5abff2fefd1662de1951
│ │ │ ├── 6b4038931b4199be105b653ec04bbd7ea1b11509
│ │ │ ├── 6b408f4fa72ed212aad96023684aa1ba1be3a4d1
│ │ │ ├── 6bb6d0a600bc89dc37873256ec0d1ad7bc31e134
│ │ │ ├── 6be7c108587c54329783a29666987df722ef3790
│ │ │ ├── 6bf6271b4becdd27a2c8367966fccef2548a32b8
│ │ │ ├── 6c816dffae36bf7b4315b6aa686a591042f2cb95
│ │ │ ├── 6cd93133796be9aba238524f6736b3208d49b125
│ │ │ ├── 6d013e136c0e276e4d1a9cbaae1d58ec8d66c2b9
│ │ │ ├── 6d9f94222f9ec834dd28baec1de035fc188d08dc
│ │ │ ├── 6da9dee7ddd170f998bd64d10f4f55c2806cc571
│ │ │ ├── 6de18b6871e065271da0a4c78184d4c40b78a1e7
│ │ │ ├── 6df6798f657135cb6df8dec89cd2f03b156c7712
│ │ │ ├── 6dfb2838c073b12b29c8a0292b2b58c2bfc4aac0
│ │ │ ├── 6e2e1bf0d3bbe5b5955cd958884deebf0aa3302e
│ │ │ ├── 6e334b9848443d6eb7af800cae51675fc214ea4d
│ │ │ ├── 6e36570008b093e78a59d0280d1cdd965f9676b9
│ │ │ ├── 6e50e139c2984f2666d46bff74eb9c2bd49a3bf5
│ │ │ ├── 6e9a4baa26b989fbb2335bae8da3cdd9c3bc2b83
│ │ │ ├── 6ed2e2ac8fe395647378bfebc1f72fdf22c4dfc2
│ │ │ ├── 6edf700f1249eb939aa7726d2bcd4299fc3dfc8a
│ │ │ ├── 6f6ceb69027bd7e4251fbed8321055eefa6e63cf
│ │ │ ├── 6f70930cace121ddfbd0e42d07517a3050f57f53
│ │ │ ├── 6f748fce4819418108bc2101af0d4bfc9eba1a99
│ │ │ ├── 6fd311b05f522a3562126d30b3559231d8dfa84c
│ │ │ ├── 7002503224d9281d81775c1eea009ea6878a0d66
│ │ │ ├── 70121fedb21edc37e07cce4b2eaf4ec8b658fe68
│ │ │ ├── 7018bf96f81aaea48a8ce21dee2677036c4a2900
│ │ │ ├── 7071b2de1b5322e99a5cb040eb8195b1d4c75796
│ │ │ ├── 7071fba39f78039cce76a63ccfef0f7d3f1c3dac
│ │ │ ├── 7081f69ac36f0c5baf82587cdee7fdc47c1ad399
│ │ │ ├── 70a5e8b7d0e36ceb64aebfbc8cb5ac556c88f681
│ │ │ ├── 71059afc6d075b0e4c6d5e4478d1c76aceddd687
│ │ │ ├── 7125029088bc38632ac389950d7cbe3fdbca2cc0
│ │ │ ├── 71297df83d7e630f52d5e79742df4c8a8129207f
│ │ │ ├── 715f2d11f3f65b3638c536cced1d42792b57ce1e
│ │ │ ├── 71853c6197a6a7f222db0f1978c7cb232b87c5ee
│ │ │ ├── 718fab8e665a70f163b7a12f8298477980779d9d
│ │ │ ├── 71f7b757fb9495d8709b03f26057e665752e87bb
│ │ │ ├── 71fbc3a660a26ca287903f82daf16fca2c895f20
│ │ │ ├── 72005fb14bb03496ddceec4b9ea929b0be071519
│ │ │ ├── 721b64139f9f060b5241233936b58617d16634a0
│ │ │ ├── 723a89cbe93e33707529c913a0fa09a510f7c8be
│ │ │ ├── 7255c68f599fc18b7d5f4a4a5ce277e3bba1f335
│ │ │ ├── 7280b3f1c9d09be0b3a80fa59e784e7b7820a9ba
│ │ │ ├── 72c34a954e7fae460fd8ad2dd3b62ea4380d6134
│ │ │ ├── 72cd8f4b26bf1e1386861cad4acbc6d0918be3cb
│ │ │ ├── 72e02f95519e7935956da6e16d039e2d7467dcf0
│ │ │ ├── 7307475418073ff604a26ba6f8ee440c6b22f29d
│ │ │ ├── 7343f8986b9c637ecaa0c3c05a3b3b7efc729174
│ │ │ ├── 7365111e8c3d4c405d0c6b95e5c25aefa7cddbd9
│ │ │ ├── 736641ba171b77938e0ef54941a8c5ac6a3a6521
│ │ │ ├── 73a2ca1316a7826e2dff390b2dd6af276d84224b
│ │ │ ├── 73b1658169b5b210f4c297290a7fbb953a4e5ab6
│ │ │ ├── 73b8147313acf220c795b00f0219629bae0031f7
│ │ │ ├── 73d2efede675386d697305a87305daf866e0cc58
│ │ │ ├── 73f0c445241acd08b13ebc88cffffaa661f1cf13
│ │ │ ├── 740c987f93ba7bbfc1668b82307e2d79156d325b
│ │ │ ├── 7411b09e7eb3b5025f6e6a6f685503c249ef44a4
│ │ │ ├── 74336b1c4fa712829155ee269060506af0bce38a
│ │ │ ├── 744879e9d421932426b4188a5f7af2a400d5be21
│ │ │ ├── 745d9b13c7c7de8177ce6006201db3425e090356
│ │ │ ├── 74bab7ee8b44f4bac1fa097fa480f6902bfc0879
│ │ │ ├── 74c362852b5c947bae2e08d1a05e7db3eba934cf
│ │ │ ├── 74cc7617085b87dc88a9cfb523425a974bc2480c
│ │ │ ├── 74de01d86c4b7f3a445a220fdc4cf6623d05e2d3
│ │ │ ├── 74ef84a20e2f2c91fc84b3fca16584f3418e966e
│ │ │ ├── 75363113d6d085c6cece8646f15847839f296318
│ │ │ ├── 760fb7500540952e64eb575c3c153b2a5c67032e
│ │ │ ├── 761039217507ea135d6fcefe94678e0ff25d99b3
│ │ │ ├── 766c630cd0c36150961b821b8e2da60f0871d631
│ │ │ ├── 7694b11ec914635f184d6f1fb73250fd6589506a
│ │ │ ├── 769d7773f2a529a73a19399b2a06d6b384741ced
│ │ │ ├── 76a1d01890c4a6c1b022e9921ff4d4526a4484e3
│ │ │ ├── 76ae2bebfa0ea782f12a6a28f341e9fdb5a70b81
│ │ │ ├── 7712e5e36eede4343a0ffe6593b436eb0031d17b
│ │ │ ├── 772fb7f6b3ee3e28983d16f0abda41c50fb8d56e
│ │ │ ├── 7730fe73e3d8c7c9310e741bbfc60bf153fac85a
│ │ │ ├── 7757439037152b75047e9597b4de347d3bd2bda1
│ │ │ ├── 77d9d9f718621c64bc8d5b3be84e53e6d5002992
│ │ │ ├── 77e9d0244355be3d68f920b858fbe9b1a10ba3ff
│ │ │ ├── 77f11c0c3e252afa7467b8b2a2521b17cb4da40c
│ │ │ ├── 77f3c10f472eb9d39171799241dbe50a7e91a340
│ │ │ ├── 784b3c240135574580c344ee7ee302836d66bae9
│ │ │ ├── 784ec8114435911d91840995a39f4b9fdf6fa6a0
│ │ │ ├── 785386b047c86f5a09bdef34ed24a1fdd3e5369f
│ │ │ ├── 78997dd36178ccdc19de4b34949eddbf7b55608d
│ │ │ ├── 7967bc78831c52fdc76d74ecdc7b43bea3a7cef5
│ │ │ ├── 797969cc4507a8ec5a1728fa109247710a5587fa
│ │ │ ├── 79d25b69ad98e20c4fdeab89d08bda4f54c477d8
│ │ │ ├── 7a2862bd8183b0ee0b143bc138ca41f9da74bdde
│ │ │ ├── 7a3da42a74ea0e80c0d5eb57b98537700679a571
│ │ │ ├── 7a41bdd287770eff99d7fbe42155337b06f73d3a
│ │ │ ├── 7a7bce61642dcea25bf2e9b226c2b17ca64fc557
│ │ │ ├── 7a9a19cc4d2d0c96ce27b5a29ccb2b65a40590a5
│ │ │ ├── 7ac1ce6e5a69adfb44c2ae5cb5430de8bd529e49
│ │ │ ├── 7ac28adf6d5d816b91652f9d90cc9a8c15bd352f
│ │ │ ├── 7b34ddb952ffd36194b6c23e30e17c0a31f5fe6a
│ │ │ ├── 7bc5f065689bf05d373c9b89923ac51f6910a2d4
│ │ │ ├── 7bcee6a5dfd877f507c9a7ab19ae409f55e521e7
│ │ │ ├── 7bea7361e7f1d5f305534c42bb018cf2fbbedbbe
│ │ │ ├── 7c338ed2840d2bf55f9f5e4eed04f66c80840eb3
│ │ │ ├── 7c48ce01b1006c562e8f00e00b3bd1542503963e
│ │ │ ├── 7c5c8feff890229fdfc0536633bbe323b00f2196
│ │ │ ├── 7ca513f3a37ea20dccd8e4b72f447e3a81137bef
│ │ │ ├── 7d2b11a17efb47d2d2e514099e7a035d6a328424
│ │ │ ├── 7d3af4b4986e4726bf02bd195dd0f822c8747298
│ │ │ ├── 7d4a661e9e7f38e3ba1e27cece7e1f92416c1380
│ │ │ ├── 7d92bf544a66d9430c1a14df2dc81ef8bef6a42e
│ │ │ ├── 7de1ba51cf77c9d6f0337eaf143ca2fed4fa9f04
│ │ │ ├── 7de1d66acccfdf3a77dce89254b313fe2da362d6
│ │ │ ├── 7ebfe75a23e1d2fe618c6d700efea978ca0867dc
│ │ │ ├── 7ee0552f721e4f9f8689a8c50f79d7a6f12a9765
│ │ │ ├── 7ee3b452e6c9c94faf9edcee561571a7458ff29d
│ │ │ ├── 7f379556dd07f330182b7155c56778345150c1ab
│ │ │ ├── 7f717c6a7b422398ee28dac58e3ddfe159f98933
│ │ │ ├── 7fc2a82d07d5ca43a02a0f2b5d0a7dbb959b8ec9
│ │ │ ├── 7fd6710dc313f012f7610cccf0f89f94e4a6c9da
│ │ │ ├── 803fd09995a97ea13a394bac74d1ed5a2e6671c2
│ │ │ ├── 80510823eaaa9d21f8b75fe4ca2097cc8dc2c155
│ │ │ ├── 80ce3c876335642ba3d648d58d86252312e62e96
│ │ │ ├── 80f058e23fb8eb9f19fcf8e5a16dfa19397d3bf3
│ │ │ ├── 813aa30e17da315d5b322b34a96fce5ac8730ac5
│ │ │ ├── 815217492b6d5cddb6c5cf72cc3f124b0818a384
│ │ │ ├── 819b07c67d164b8fdf338f403637ba80b33a5a46
│ │ │ ├── 81b19fbce8c737684cba678c83bcec75018d3876
│ │ │ ├── 8208dd3adef9d7bfddb789222778813ff5446f2b
│ │ │ ├── 8255f60b56a9bb06d778aa21c2cdef00d332addc
│ │ │ ├── 825cac9287449e9dc7f545e1266c4b425bcfa43d
│ │ │ ├── 82988ce60bc305df3509a8107127ac6ed411ac3a
│ │ │ ├── 829985dab434ea049414df9c867aa15c3ca2dfd8
│ │ │ ├── 82aa7e3876115df44f7d8836ac85aa7d9e516264
│ │ │ ├── 832d5b3188671d25731e6cee98080ac3930e1ccd
│ │ │ ├── 833d261be77ec49b5eb14bdfae5a6f515b77154a
│ │ │ ├── 83745ddaecc7295bd5987b2ea2c640521bc2ef6e
│ │ │ ├── 8396a08d7b6af2d075b0f49c4dfdd2b3a1954a03
│ │ │ ├── 83b7309db4f6b572edee40a1529fb572d7849ee1
│ │ │ ├── 84715408517e0b2c274091d67f1144d01487ae05
│ │ │ ├── 847f19c54a56327321aa2753e3367ed8aa6660aa
│ │ │ ├── 84d5ca02b7dd95dcbc53cdd72c6fde66eb392bd2
│ │ │ ├── 84db9986323329726e1d34739c9b27febf41a6b3
│ │ │ ├── 84e7a7e59e12e16ada61f97498f30101c6f75e4b
│ │ │ ├── 84ec9896f8b880499122b3213e75783a878e6e03
│ │ │ ├── 853ef60418abd6ceb0af0952e305ca782b5a3bfb
│ │ │ ├── 854906f02c9f064e568a62f32fe768aff5ade53f
│ │ │ ├── 85877a15ffe90d7f3cf5df62b3689dfe99825e4e
│ │ │ ├── 85953c4583a9e4c29f49e1ad524df42f9b9d5b8d
│ │ │ ├── 85c42ae953a5ffd207cc73486ce6dba1fbd98d91
│ │ │ ├── 85cfdd8ff1f25a19ba4ea902307a02224fd1f586
│ │ │ ├── 8633c0d1a2136f1a3ab248d6fd023aa156134954
│ │ │ ├── 86510396f902f0f6c477507d41f5818e8a10ae41
│ │ │ ├── 86937ebd0bd844547e3e8858697c2bbd4c8a9f9d
│ │ │ ├── 86978709f845cec2c71f524339067a022dc64e82
│ │ │ ├── 86a726e8c8650e656cfd8f2fdcbaed3babd4c2bb
│ │ │ ├── 870406cab56a3e34935ce2c0618c1ba083d9c89f
│ │ │ ├── 872f3f469357d7efc817924e5f300ecb21c5d841
│ │ │ ├── 87376199cde08cc5a081c781fb10c1d46d75eaa7
│ │ │ ├── 874e1ffc7267c63ec1cf15a714daf73129baf5a8
│ │ │ ├── 875c089d28943c789bd01358ef247c533a9a2f13
│ │ │ ├── 87d4c09dc4fa3a30e8ca71e967f8b29735f3397e
│ │ │ ├── 87d510897ab02478fbd40f66fbae172ac61bcce5
│ │ │ ├── 87d559e6541a29581df48337c1113c24a6dfe08c
│ │ │ ├── 87ea33eb20390de3955ceab905e29c8118b6f210
│ │ │ ├── 87ee1adeb8b44054256c8b06d5742ac330831ab8
│ │ │ ├── 8808781aec13551817753d017e63d01e9a36e038
│ │ │ ├── 887f646319f21d1832a1f410c764a85b284edae9
│ │ │ ├── 8882632b7f0dffa4d723ab9cf17bedb55690ba5b
│ │ │ ├── 889dafe75e2ff3e156c19c64970e831e780340b2
│ │ │ ├── 88b89dc6c74be13ccf3b127810cad928bcc80148
│ │ │ ├── 89083907a419b34f60767720a7321b0c7e08e69b
│ │ │ ├── 890ec7539973234d9e8e9b6a269f025f8b2f70cd
│ │ │ ├── 8925f4fd67fdfabfdd3085e1c3bb82dfdf601ba3
│ │ │ ├── 89554db32d4c262b3cde61e1dab1c8bbb03a6712
│ │ │ ├── 8955ebe508aad7a5304f5528b42a71ac590907a4
│ │ │ ├── 8986dc7195f91ecfb4036576053ec5cf1443ffb8
│ │ │ ├── 8996736185e4a9e1bcaeacc40d7623ae71b4f4a1
│ │ │ ├── 89a70c9e9a51579a7afc940154fda92cb9e34041
│ │ │ ├── 89a8899fbeadd6126533a53fd73d7bd7fde61a81
│ │ │ ├── 89f71b240a6f84db97ffeae5071c2f5827101835
│ │ │ ├── 8a37acf9d516019c62a2485627bb9ecc10a32d14
│ │ │ ├── 8a609c6306899f9048b2dd83720aa01ecf7a22bf
│ │ │ ├── 8a62acaedc8819babbda795ea8ae6c6ca3663327
│ │ │ ├── 8a64160745226c52ada7d2fb46c564671b94fea5
│ │ │ ├── 8a980e634d67a313fbdf4e667eaad93f937053cf
│ │ │ ├── 8ae92d85bdc2ab45307d84f8fe1b7b33b4b51ef5
│ │ │ ├── 8b2d9bd2f821948bc59379cb551c230b677559e3
│ │ │ ├── 8b434c54d0baf4f4401a5ecd1811800e51c182f0
│ │ │ ├── 8b64b9a53bc7def08b33aa60af18aecdf97e6b79
│ │ │ ├── 8b9966f8de45327580315d73d623bf4919cdd42f
│ │ │ ├── 8b9b3ffc8dc35e72f3fd548de9a317adb33219e3
│ │ │ ├── 8b9fc6f1fa2c7be5f04a819338d9024aebddc354
│ │ │ ├── 8bf058ff648f7c6a7478c685bdee033bd7c87ee0
│ │ │ ├── 8c4a751404315cb24bf1701823ef10c0f678bdaf
│ │ │ ├── 8c9087fd8352dbfa734e18ad7dc146451e10f4fa
│ │ │ ├── 8d66aebe342a099b0f3b2775c1eb617875e534b5
│ │ │ ├── 8d6fe3a5a60cdcdc4e8a520f00ed80931000d60e
│ │ │ ├── 8d7fd542d6991618960d6e63b0266aa60b032842
│ │ │ ├── 8dba8c3293ef83e5bd5e3f65574b998dc957184c
│ │ │ ├── 8de89e740f15c9a24c083e5492fa1d75b8ae80fd
│ │ │ ├── 8df6f9746aee06061963e4551280c50645ddc70f
│ │ │ ├── 8e180d5c21e026f57ecb222924a750c3d8e6860a
│ │ │ ├── 8e3c7460789ee814f8dd6df8d2a120a1bc25c4f6
│ │ │ ├── 8e7f7c92dc3b1c70bf70d6db08989299c631dfba
│ │ │ ├── 8e94e5a8c5a77029d60e11b499c5ffc3d955fd60
│ │ │ ├── 8ec16d2d89c4d2d0d97d1647077e0fe59b5e6d37
│ │ │ ├── 8efd86fb78a56a5145ed7739dcb00c78581c5375
│ │ │ ├── 8f1653c62a69a759ec64557c473fe38f9bd602cf
│ │ │ ├── 8f27d5d19276e456a4ed7ba7633374814dc64b7d
│ │ │ ├── 8f2d14d20a4b915bf7babce673ebaac865395060
│ │ │ ├── 8fd0c1bf1aea783d64b98657b650270dd228a0a2
│ │ │ ├── 8fdd8e53e5eced795f033e8c0d383002afeeb259
│ │ │ ├── 9003a3d699faaf1b4d969a2f09f12b94d1984c67
│ │ │ ├── 907d305f8dc2eeef29777cbf02e71174a12d6edf
│ │ │ ├── 9097b7d8fc4ac664300586682b06ef4d1f97bfdc
│ │ │ ├── 9098bfe3cec3bd38d4bef4b06ba940390876bd9d
│ │ │ ├── 90e1684500be7ce760ff920bffb912e8e1fab3c3
│ │ │ ├── 91533056639e00bca25609c84326c7746b1a8651
│ │ │ ├── 91748141aa5fa2d5f31589d3ce70c74d20a1cf79
│ │ │ ├── 917d3283e2619e02b6a1cd83d46a7777ba82c1ff
│ │ │ ├── 918685c3ed600c58ef1679e557f243ffb55df666
│ │ │ ├── 9198957475a60c8e669f5762ef8f22366d8ffa79
│ │ │ ├── 91dfde1d6e005e422f64a59776234f1f4c80b5e4
│ │ │ ├── 9206fdc05603e6aa440fba244e4b12c715deed0d
│ │ │ ├── 9235b5df1e09cb6edea4727858790b83f460b837
│ │ │ ├── 92527e52276794f0fadc6bccc6c5c45149438dc7
│ │ │ ├── 927d7b53856175931bbc99cd8b95c6a250f1f172
│ │ │ ├── 928705450cace2a6b485c6aa8c991080b5c4d7e1
│ │ │ ├── 92bf25b363502731e36a7eede6825fe59c739ed4
│ │ │ ├── 92d64f5802f317ff0e7c96c0e4a1b14c3ddf2016
│ │ │ ├── 9326f2230eb094ff8d832531288188473bfdba91
│ │ │ ├── 93577763529d52b0ecb74fb859a0297638ad2376
│ │ │ ├── 936c2600ced56141dfda6e65c677109a58484103
│ │ │ ├── 937d952f2856439135bf7c407c57f31067dbb584
│ │ │ ├── 93c3c80a0cd5dbbe003b040ab3088876141ec93f
│ │ │ ├── 93cb0ef4d3cf5b473073ca9c2875411c671da2e4
│ │ │ ├── 93d497503a0e154b8a6666750e21e603309c61a4
│ │ │ ├── 93f97bc6282e64688a1f26ffeabd424468d23e27
│ │ │ ├── 9421ef7a42f96e840ed4b8be14fa69bcd338a590
│ │ │ ├── 946ef6ec030cbdc0a213c0636667acc55fa0c020
│ │ │ ├── 94c5406b16807a300a6fab102213dea896520d26
│ │ │ ├── 94e07024c64822c266a8902ab7c8bcda46c1e96a
│ │ │ ├── 94f147f2605aacadebe9358fbd3f4d1794834bc5
│ │ │ ├── 95001067eca7fea1ef39595276bc6cdb16264047
│ │ │ ├── 9510b11555d73deef859c468e7ac5ee2d479e29d
│ │ │ ├── 9524073b629a0369a7ba7f5b8b413bcad1f01910
│ │ │ ├── 95848cbfae314a6e74983b5b747197cbfea32c3d
│ │ │ ├── 9584d5e727b8a3cd49c847f95f7293ec214750ad
│ │ │ ├── 959cfd1ff8f88fae5ba1f0d579cfa5787d0d69bf
│ │ │ ├── 959eaaa00d41e966c75cd70e62176c229274992b
│ │ │ ├── 95d0e08dc637634520140386b1092c9e4e7b447e
│ │ │ ├── 95e5889b03a5124ac8e88ebb7709af2ed79f877f
│ │ │ ├── 95fd2ba8b2060849c962ba4cf2bdda8682db7849
│ │ │ ├── 961ccc14462216604e10de9654857bddb713ed0d
│ │ │ ├── 964fa4ea0734abc37035330e5703a9d977716d25
│ │ │ ├── 96f9191eda654d2f33e2a91d91d78a3b5a5e63e9
│ │ │ ├── 9749ada2649e11677b2887efe919da6a101f0d8e
│ │ │ ├── 97d170e1550eee4afc0af065b78cda302a97674c
│ │ │ ├── 97e7488b0ca63d35dc7bf61ac1d7cf60271e2f50
│ │ │ ├── 9801422f896acb4aa9bdbff478d722f34d389d5d
│ │ │ ├── 9823452f7bdd84dd3eea0236c81e3c5c0e1a7655
│ │ │ ├── 98543f4e9151b4daf5b0946edd64055acd0098cf
│ │ │ ├── 9878681d4f564ff3d1dac5cf35e57791681839cf
│ │ │ ├── 98942b2fa5fc2386ae6b65ae48c44950b54bd9c6
│ │ │ ├── 98b3643f683293bae56776ce4ed5ba5a24f97537
│ │ │ ├── 98c11b35f135ebfb8a6cc1e4b51768963c31eedd
│ │ │ ├── 98cb89f31e4299060a213b8628ff76e98ccda5de
│ │ │ ├── 98f41d981857c8a644b33730768de1b21ac3ad3a
│ │ │ ├── 9948373c0e8e1a2ea3c7ee118c4c684e873ab666
│ │ │ ├── 9970bf47ee4c690e233d6b9646911ffb1b47b3e8
│ │ │ ├── 99a751a61f49587009801b57cd0bc698a0675327
│ │ │ ├── 99aa766b8a4f0ab6578a41f74a72d455b92d90a6
│ │ │ ├── 99ceca3a07dad7f983ddbb9a8e102a572f2bde40
│ │ │ ├── 99dddcfe0ce0b01c0b8e1ed5227995d987b2e6f8
│ │ │ ├── 9a127e94619f3fd8ba23d902ea57b0a15de36106
│ │ │ ├── 9a396639f005f80ffa18770dd3ab22557c2bfd2a
│ │ │ ├── 9aa861982dbedcb42bc2d0a9e799fe20b06a2def
│ │ │ ├── 9ac1958b7370cf81d36794c39a7afa8bb8461874
│ │ │ ├── 9b3a0f66c64788ee1021d801a3d5344f206cc360
│ │ │ ├── 9b3b914851af53cdad17fd5a53581ce2a4b10c1f
│ │ │ ├── 9b6c94891513e888b56a7c73f3d8d99a42e8b01c
│ │ │ ├── 9b814752c087ef667d398a0b00925d2d5516b28c
│ │ │ ├── 9c17362676cf63c52c396fdea414e8f66d30c114
│ │ │ ├── 9c7c90cab1cdaccaa897651941edbb2495aef2e1
│ │ │ ├── 9c7eb9654c0705ffb3a76dc61e354e4dd5891927
│ │ │ ├── 9c80aa1c68c55720f7172bf20c83ba2030f2165c
│ │ │ ├── 9c977e49625711ad3927a8281cd20dac00becc51
│ │ │ ├── 9ccd9f3f526df57224dbe0cca5ba52fb35ca7004
│ │ │ ├── 9d4858e0f4fabedf2edc2484f99d074ee911ffcf
│ │ │ ├── 9dd24f849d902c86eca38e64a0e131e384c1fb2e
│ │ │ ├── 9dd5bfd8b9d53ade81181b05be73d69ac6dc8553
│ │ │ ├── 9e3725a1e43ef2fadffab785961e1675ef2a6a15
│ │ │ ├── 9ec34954b2c68c3ce6a2dc317d123923da09ad4a
│ │ │ ├── 9ec8613d24f57c9a78726ffba8bb116e1ec71baa
│ │ │ ├── 9f6f549ec9383ed8ac7172d5ba77cf81f787f57c
│ │ │ ├── 9fb677ffdf9bb95c03513db87a0f659f4eef46f8
│ │ │ ├── 9fb96a28e0ecf0c7722887f1a2b00d8a6f709a27
│ │ │ ├── 9fbab75d469c0ddcddf43a5b9d9adf945a994264
│ │ │ ├── 9fc789e6e2c169abfd6b06c74cc59d15a1196386
│ │ │ ├── 9fcf145ddbea0f17085875b937e3476b2a19fdfb
│ │ │ ├── 9fd163299e284cac73e460592ec22bf5e5b7a663
│ │ │ ├── 9fedcbbe9564a051bdd40ff51b5fa4af5025ad89
│ │ │ ├── 9ffec196c62d15fcfbd00844aa3c260ed15afcbc
│ │ │ ├── a0441ae490afc5e7b8f49969822cd8f6f26d1ba5
│ │ │ ├── a0c6febe36c4444c9cc10a3147925c1998a77094
│ │ │ ├── a0de3d33eeb99d9dd1768baf1d3e005f94a49788
│ │ │ ├── a108fb1ff5209f98abeb4b8d4d5b45c7af394547
│ │ │ ├── a1334dc8d05cebb90550ba9d53bc547954417857
│ │ │ ├── a144f0701f5c7e1adc9abfb798cebb4a068dc661
│ │ │ ├── a190f7298c1366b9c185239111796b48dd0ee292
│ │ │ ├── a1d0f77c9e1de1cca9fced42952c6b99a1cf4311
│ │ │ ├── a1db2e467d1757272a526a435d8453bdeb57bc7d
│ │ │ ├── a2149f4e9f06353d5ef9fdb2a482ab1bc8a00b64
│ │ │ ├── a26667d204cb5da404762b194cfee37e62854ad3
│ │ │ ├── a2746e09f7e03522383d5837fe0e608d5f343c0a
│ │ │ ├── a27bb96cef7ffd10f116373490d450c9474d44ed
│ │ │ ├── a2bb413527abd1016ee54b53a1ca94d01b7a7cff
│ │ │ ├── a3319ead46bf9f7725fd36c33887fdbcb4a9dbd8
│ │ │ ├── a35870abfe36c5087c497bea881bb345206835df
│ │ │ ├── a36ebc82b53618657c6e85d6c5ff321de21aa312
│ │ │ ├── a3b1275c7991c4887bdea9c04274e0581cee77e3
│ │ │ ├── a40913ea98f302840fcf73d3473fb5739efe69ca
│ │ │ ├── a40ddcf84db6be316c8a4eaed141ffea14f5e96e
│ │ │ ├── a421c4a794455e2ed0a4bfb6965823d769315ae6
│ │ │ ├── a44081211250d219276181ed32b7bbdc9bdf6ac3
│ │ │ ├── a459a4211a7801b6940484ff4e9a1c4d23046e2b
│ │ │ ├── a4641d2ad386dc90f49ceeba18da662724381227
│ │ │ ├── a4a8cc21063f1da4850491d45ded402707d5522d
│ │ │ ├── a4b6badcc8f3c74db32ec99548a13ea2f3c94406
│ │ │ ├── a4ee8d03c2e208def1e15f8761e74d5f2f43df41
│ │ │ ├── a52486c8faa7590c713109cfdf53ed3139ae6ffc
│ │ │ ├── a5392332a30ff91577a68056a8986676b6c64f32
│ │ │ ├── a55d2e03fb1e866fd5f57aeae21c3d841838a3c5
│ │ │ ├── a5735077e5ec918a745ceadfd9550c0ac11e9601
│ │ │ ├── a59f388d9db5e11b4051952a4ee6a7413a4ee57b
│ │ │ ├── a5bab9e8d03296f4b99a66dd62a4dc023dee6f82
│ │ │ ├── a5e2aa6359356e92673d4b49cc1ae7f789af60a1
│ │ │ ├── a602f9e53d9d0ad0c3cb5ba4620157a0f8f6ec90
│ │ │ ├── a6100d3bc3b0291f65f36820dc096f08b39923e1
│ │ │ ├── a6532c8d444d4dad7369b265f1e85d73462f6464
│ │ │ ├── a69908c8bff6fefd41785cf6f145b61e7526cfd1
│ │ │ ├── a6aaee0fd63fbd3443f5291ad5c96dfe7ea50065
│ │ │ ├── a6bb96678f32d8cbd7842ea780dcc0b0de0e0669
│ │ │ ├── a6f568324cc23a5385be3c8c239d3db0c7172e79
│ │ │ ├── a7369ddda5a160e899869745df3ce72589090d26
│ │ │ ├── a7745410062a7a69a0e4e7013101706b5e6e1799
│ │ │ ├── a77e91fbe3b497e67780104d80b9baf2dc855f2e
│ │ │ ├── a7ba0ada495ee679d148169242224922e1b031fe
│ │ │ ├── a7cb9cc085d63528538a1b262bb978382999904e
│ │ │ ├── a7dd29c3b33fb01bf38932d6360f773e06ca3435
│ │ │ ├── a87f1dae0f8ab5a2c664ff647f9a6bbf1514c737
│ │ │ ├── a8a21280fb21eaed561dbe8c8847c0d11319d36b
│ │ │ ├── a8ba7e14662710eed8f8549f34f925daca620123
│ │ │ ├── a908920e8359127729b1d6a15c36da9973c4b529
│ │ │ ├── a9240f166f8d5084150b991df88191d353e9b4e0
│ │ │ ├── a92fa154f80b32d73c9b9c5f571bff6f7baa909f
│ │ │ ├── a96ba2d6a55300acc8f9d1de7ee823dd5135a8f5
│ │ │ ├── a9c2ffe5b2f1282922c4ce065ea38e58b4bac6a8
│ │ │ ├── a9d35892e5836a74fcd23a6cfba5dd5879949064
│ │ │ ├── a9d3e092c9b85ce07ba3a1592321b5f43345a78c
│ │ │ ├── aa5c87957076415cf2b60a592bd076c11e0d87a1
│ │ │ ├── aa64548d1d823f7a13a7a2337ccbe54229ee1176
│ │ │ ├── aa76c48a193aa2ef333bf50a3588c2b1d76444c8
│ │ │ ├── aadd102a95c1005eed8418b1f19c4deea7c8fbf2
│ │ │ ├── aae4823680f8e9a659303fe9555a0c3ff5d80fe5
│ │ │ ├── aaead72efa125cf8bf3d56d5b5d3dba2f8db459d
│ │ │ ├── ab161aa34bda96b20b6281217ce6c51dd55f137d
│ │ │ ├── ab7fa25c3e3f1c4b43ab59623882e79c1f3fd6bf
│ │ │ ├── abb0bb281a728bd1e693b0471683e67a0f57ef4b
│ │ │ ├── ac153594fba786b366c93b7645f8f8a2b9836e1b
│ │ │ ├── ac6b275741d040ed925a652b39a90e88e720ab88
│ │ │ ├── ac9231da4082430afe8f4d40127814c613648d8e
│ │ │ ├── acc5bcf2274fe0d508f96696aabebb6ac4386b8e
│ │ │ ├── ad2a8f0f6e1ee029025844e8177b9fbb41947381
│ │ │ ├── ad800cc0250b233b2ffad321cb8b585ee1edb0c2
│ │ │ ├── adbd6562dc5c51d4e4b68a581ed5af33f50083aa
│ │ │ ├── adbe60e8a3a032e3a9c6e41fa73bae6e4d1e03d7
│ │ │ ├── adeb4a82e2a3a3c1cd32de3c4488d241286b3a30
│ │ │ ├── ae1b7156ab2dba6456c2cc0fc27208e663b34ecf
│ │ │ ├── ae882b459d1dbd85179fdff066aa754b02e3c050
│ │ │ ├── ae9b541966fb8737f6e0a7feb974bc05bd378c76
│ │ │ ├── aea5992604988b218addf8e3fa819b56ab70f787
│ │ │ ├── aeba26cd606a1bca176609b820d6febe35192a25
│ │ │ ├── aed46455adc8bed05635efd40d95610896519fa1
│ │ │ ├── af070a627f34901ffc090a8baabf645a7f9a270a
│ │ │ ├── af0e2bd7ab592d34272a771b67b40e88b4c4ad95
│ │ │ ├── af1207e93bcc14b936eecec46fd8a0d05818f0e1
│ │ │ ├── af388253a7f50c219266940500cf132e07d11869
│ │ │ ├── afafc6409a3fa2791cf0722b6d87a1a676b6f059
│ │ │ ├── afba6fdb2532b3ca2ef1fa610e3b76fb1bbd38ad
│ │ │ ├── b02f57f5161caa1800a480349871ac3213a0b0ac
│ │ │ ├── b0b171139791e140e5c23e5103f4a1b36f024542
│ │ │ ├── b0b70ccf3b39396c202ecd61e3b0fe06b81b0444
│ │ │ ├── b0b8e3773cfa73c772cdff5655e666953557f8c3
│ │ │ ├── b134bd04ffa8fbc92b4110593a7a54390249cc59
│ │ │ ├── b13b58653e13fe09509581752abbacab554db4a4
│ │ │ ├── b153361e004e593da95d6fe88d966d01a715304f
│ │ │ ├── b155e86d9a43cf9d05175f714284bfaff34edc1a
│ │ │ ├── b1966287cb58515bb52cd094784ef88a6b78b426
│ │ │ ├── b1d543b2543afac0f93582fa99e00a65c18d57c5
│ │ │ ├── b1ed13d0e6ec40aa1eba3cf3eb9cff7816f13b89
│ │ │ ├── b2622cc6477b05c34d963051a20f64f3bd679b6e
│ │ │ ├── b27adefeaaa6f19905688de084dbd6a055cdfa7e
│ │ │ ├── b2a4d85e98db09f91346ce0d81cfc7a2e0c066fe
│ │ │ ├── b2e1d22ac4f450ca203b9a706c8a9518fbe1eefb
│ │ │ ├── b3799eda5c1d727b1176b189c9ead48d3431bfe3
│ │ │ ├── b38807427ba5dd2dbf6cd7fb9a809dbb5fbfff76
│ │ │ ├── b3b6f0ce9c9a3a21d8eeb6da56f6965163ced234
│ │ │ ├── b3c53aee908c5641e3bd9aee3af9c35c388dbe3f
│ │ │ ├── b41ab8630e5ee40112f139936a9bd0fb636ee5be
│ │ │ ├── b4266ec68f1ed072ad5e02d37819294b01aed51b
│ │ │ ├── b47b99ad3d6fd54f4eca6d8edbf2e792e5d311f9
│ │ │ ├── b4f38b58a503aeee7228e38874088194410e2822
│ │ │ ├── b4f44c1fde61fc9e482b8f1767e377d5c5caf914
│ │ │ ├── b59ca11a0ab30888b81a14283c565c87026d32eb
│ │ │ ├── b59ec93886f3563342f6cd09196333aeca6768af
│ │ │ ├── b6198f5a6c35196f1ad0b11f0e8a25128bf1ec7c
│ │ │ ├── b6589fc6ab0dc82cf12099d1c2d40ab994e8410c
│ │ │ ├── b67f3b2a5eea1a0d00c27ca6503b467ba26c38c8
│ │ │ ├── b769ffb499b1db835f57ccec37f4542b742d77d2
│ │ │ ├── b7fde61ad56ddfaeac7e1d9ddbcb85baa239154c
│ │ │ ├── b80ace4c3f8f0d7fcfe7c00bd45a77b553058a4f
│ │ │ ├── b8448e48c7eb8b5f9206d12fabefab3eb3d563f8
│ │ │ ├── b858cb282617fb0956d960215c8e84d1ccf909c6
│ │ │ ├── b8abac800b5d0a02725bbd37d6cbed65532336f9
│ │ │ ├── b983b47562c02a23e06646234093bde3c0e37617
│ │ │ ├── b98c6967941d1d5e4f256516d9e735f386190c69
│ │ │ ├── b9f6e8df12d8ae9dde6b07010950aa9b8991a4f2
│ │ │ ├── b9fdbe0705cd07c5ea75a9110e3ac3549eaf026d
│ │ │ ├── ba22915b09d8b5d2b0e22218f116ee6695b6bfe1
│ │ │ ├── ba26e959e316810f88b356c0489bea1714f1b5c0
│ │ │ ├── ba756389fd658c7cd61c959df7fab74744683ef4
│ │ │ ├── bb46728b3b5606137411440273b69e40aaa07a4b
│ │ │ ├── bb5a7a3b14cf68ea2273e8847af03d3cd22f0763
│ │ │ ├── bb6089b2b32d1600c52aa70f603aad1c20925a73
│ │ │ ├── bbd17e83c6e23c2c6dfc7b87920a8d030bc8911e
│ │ │ ├── bbd514db162c3276d884ede1725b5f658a315ab3
│ │ │ ├── bc18e7d53762c375203629a8e195fd64520f0726
│ │ │ ├── bcb0c5869a5307c814b7b5488c2d237c49e5aad2
│ │ │ ├── bcc224a549f3e5ae237328897ac01dda6cb9d4b8
│ │ │ ├── bcf7efc013c3900a5558d1f98f65a8881b0a6205
│ │ │ ├── bd38b4e43527b113ca30cfbb3d978af0f5d8ab1f
│ │ │ ├── bd4422d976d5dd79060712ffb5b9ea30c56abf75
│ │ │ ├── bd714bbc2d04d957a0645235181d949171367522
│ │ │ ├── bd79aa97c2d843cfb9e07d6873a64ff4d83a802c
│ │ │ ├── bd9ace7f52d06d9d0e3be7e478df3c18ee7b8889
│ │ │ ├── bdbbe5a24c96a20f7bccbd20fa5ed39876b9ed1a
│ │ │ ├── bdd0360e742f95c476942a4ceeab0fdc30325714
│ │ │ ├── bdf2aab285c70c1ab13b4b250207c94281ffd41a
│ │ │ ├── bdf784a34d659d59f19dd3a175b9e11df4ca7d7d
│ │ │ ├── be5aabc1c515f33f049a36df00bf856a85056450
│ │ │ ├── be941d669bf3d13a837ad30fe735a68696ef85a3
│ │ │ ├── be9e0279e0e6bafa62281dbe46353ec2525f4e90
│ │ │ ├── beb252e7d73ff3bfed7ff2ffa3f0115b65cee7ee
│ │ │ ├── bec13c87de3ff63c4516cec2feecdd67bccbe1be
│ │ │ ├── bee53a895da9e20081665bb6caf6e8eb4ff95542
│ │ │ ├── bf0bae741247ba35538898aec271bd1bf2d54817
│ │ │ ├── bf10d0c34b7e0db0736ee48075b06c090fb30312
│ │ │ ├── bf12fb128f0a99e1fbedee76148628140a2b9cb3
│ │ │ ├── bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f
│ │ │ ├── bf3c578f12a8abcd46b51e3c87cf1b5a4d5a01cc
│ │ │ ├── bf4ff4503a36002031cb74ed74df2eb0952d50b7
│ │ │ ├── bfe45d7b586336f816082aa1431e3fda73056f7f
│ │ │ ├── c0024c17303a2e684dc92172547ea5b77d2468c2
│ │ │ ├── c019790975569602bc0f6501f34f7dc20f986922
│ │ │ ├── c06ca44d9974438e9a35fa0f34ade4494f67e877
│ │ │ ├── c06f6f9031859261196bc02c075a1a8e71820a63
│ │ │ ├── c07733a701c61577a976536e93f09c3519808918
│ │ │ ├── c0d63dddfbc3523608304cc80ef04e521acb685e
│ │ │ ├── c0e5c686b64dd2d2c8e0b4bd3b73b6447991e58e
│ │ │ ├── c187da44fff2ff08f2efe0801814fca9837c5acc
│ │ │ ├── c1de1e9e74b7a282d9bee6ca8b0696deee365b11
│ │ │ ├── c1e268861ff28ce965af34ed75858b321641c783
│ │ │ ├── c1e5d7136e00a944288b8bdbe4fe772a91dcef5a
│ │ │ ├── c20e0e3e91f01a0eb4b73c6e50a19eecb93c3a41
│ │ │ ├── c276a738d5f6a1ffd6c6fe9e612483b4d920d1ac
│ │ │ ├── c2bd3cc00b0e145cb5713491d9f1f718cfacd1aa
│ │ │ ├── c2d5ea1cc8a7d90536f754683f9d164dbf45e2c9
│ │ │ ├── c353616f4c26eaa0ffd04eff9d8a3704fdae2861
│ │ │ ├── c378736d00935c82e0269fd919dc2a035ea96ff9
│ │ │ ├── c37cdf7e2074a76c17bf785be3ce4e1f6114cef2
│ │ │ ├── c39ac0a6b941c8feb4169142bd7277b4750ab4c0
│ │ │ ├── c4043153c778aa0f924e823b8453da90b425e5b3
│ │ │ ├── c44886dd2cb47e85301bc39578031c418fe56a68
│ │ │ ├── c5060e6f41e0e54165b122e53d780f63c41dffce
│ │ │ ├── c53c0ae58bcc536bce0a9308dd1ae2c26fc63b77
│ │ │ ├── c5408eb6de50fdfcd38af654ea6cf348c6333659
│ │ │ ├── c541c370d1a091fc14ee0f6438f3a27c5c034cd8
│ │ │ ├── c565b3c9bee894e67be7dbe3b03bd66473f1a710
│ │ │ ├── c5b2ea981f65d511cf1e211f2fe3d3071ed4761c
│ │ │ ├── c5c9b39bc6339324f375e4459a6c04a3eba764f0
│ │ │ ├── c5e4f269a2ac9fe9ec53ee89d7f3911ddddaebe1
│ │ │ ├── c5e558ea5ee802bdf709cb74e2943ff1a3b417b4
│ │ │ ├── c5ea9019e6f48e1bb40ceda0f7a3c706550644ca
│ │ │ ├── c6715de98dfecdfa7318d355f24e1265bf0aa3b7
│ │ │ ├── c6da5e2edef188ae7adba024625dc121b6c4fb41
│ │ │ ├── c6f9cdbe547adce2cd6e8a7025ef785cc8634220
│ │ │ ├── c6fe4d05ced76c51832a5049d4169cdcb538b03f
│ │ │ ├── c7106dce6a3618a3f2fe6cc862cfaee64ed0aa28
│ │ │ ├── c76713b887112a7d221e948194c6662eb69cb8d4
│ │ │ ├── c77e136677ebd490426345a4232e4562c16d99f4
│ │ │ ├── c7a27f4ae92705347bc129b5a9635e61be1fe1ba
│ │ │ ├── c803bc189438c0f82f0a4db74b89657f5c52ebb7
│ │ │ ├── c82442e401b1f2b11ab7fd797394ba2b813f9aba
│ │ │ ├── c84530b820e51976f2f5ff7d8d687b11896f0446
│ │ │ ├── c919f29419d613e8859a1451f8b69e624a8462f5
│ │ │ ├── ca7fcc4731640a7e9ba658942ca744d784c87c57
│ │ │ ├── cb14d77c9ecbcad149076157ae577385e74eed03
│ │ │ ├── cb2dc868c5ecd883c8cfc07dfe7f95b1aa276acd
│ │ │ ├── cb30fcc7156e4fdc4bfd8768a8c2a74d44080b82
│ │ │ ├── cbbee5de32c1b0931986d49e7156e5e3766cfa17
│ │ │ ├── ccdf7048014c4b68ec8ea6a8820d17c9a0a27723
│ │ │ ├── cd53c6d48d02f7cf28884a3feb301df5bcbc9e68
│ │ │ ├── cd6465383ef8b48427c0dd2738c0d859e6bd44a2
│ │ │ ├── cd75fc555cbe9a42b484eac3bd8081b0d4647b97
│ │ │ ├── ce08ccfa9fdfd9a589d102f0788e7f4f34b301d3
│ │ │ ├── ce2e2dd9bd9963d349ca84dd3b0353d801073583
│ │ │ ├── ce4f37343387ffe4851470fbcef15c79849a9d8a
│ │ │ ├── ce717247cb5c79b0ac456dec29a89f163505f3d5
│ │ │ ├── cebb2eec7857f3cb3778becf0d4d0dd6b92432d4
│ │ │ ├── cecd5ed5a70c8bffc13d3d11279c009c77b66172
│ │ │ ├── cedb351dc81ad7f9842f7d08d038580b07ef9b43
│ │ │ ├── cf5574590c2e70e63fa63beb363067ba002198ae
│ │ │ ├── cf5ac5672fdf5ff36e104e761bba3825f5d6505f
│ │ │ ├── cf8c22517d80b044694fd7931e3cb7ad282bd630
│ │ │ ├── cfa9d88592cb6a7e525979e17397d8fae1aa99b4
│ │ │ ├── cfdb693eba5960b2cb32d981c90c73e59f0bb1a9
│ │ │ ├── cfdcd68c86218ef5f4ab884b00a5dfdf764dd655
│ │ │ ├── d015cb1d4b3873997e2a0e242fe6a176ce7bf337
│ │ │ ├── d01bad5f29314cd71bd7fc99608fe0a6f80bad1a
│ │ │ ├── d048a0332f1e2533274664743c1b3b2b90c38364
│ │ │ ├── d05c988eaf9f825cd99835c8fbcac943051879e1
│ │ │ ├── d07ca08a629344da347f58d8197232fac6215fa1
│ │ │ ├── d086154ea1ed7e7e56fcbee339590ad84759e9d9
│ │ │ ├── d0994a8bbd253367cc7767a63372053fee8af220
│ │ │ ├── d0bb35a5696c0b905aa9468b7d4cf17882ea238a
│ │ │ ├── d0e22d0bc65a9455ef968762cdb5e97280b87fd3
│ │ │ ├── d0edbfae5a6466296d4ff94632b6e7c81ae236de
│ │ │ ├── d0fe8068e382dfe9198ba3cf1cbb791afe4a375e
│ │ │ ├── d13ae9fbb3c69dc919cf2942926b08e15a848e4c
│ │ │ ├── d162ab8709bbd7ba953495646c850823748ef97c
│ │ │ ├── d1854cae891ec7b29161ccaf79a24b00c274bdaa
│ │ │ ├── d1b98f1abd5dd51520ec179d7d369b1fa1262a4a
│ │ │ ├── d1c83d8743f2907ac244e660f0ac2b53406e145a
│ │ │ ├── d279202ad4c3553596c8ed7e77b57c9ac050429c
│ │ │ ├── d27db4dc4fc14d555487695acef375bd9657262b
│ │ │ ├── d2a1e363316e4c82917715d6db7ff6ffbf503df3
│ │ │ ├── d2b28da60ade64564c50208a4c82cca42d83afbe
│ │ │ ├── d2d0ba7f288f86642ee274e7854060cc8da8eb75
│ │ │ ├── d2f76e6e2d1042de0d226cc8e9a7e070991fc3d5
│ │ │ ├── d333318e5e6f01d55b86909499ca62b4104d5758
│ │ │ ├── d3588a2a72e66256cf690ab82fadf1f2fc50733c
│ │ │ ├── d378b675145ecff3ae67f440a1cc7416fcea5e10
│ │ │ ├── d39485627d2bbe955f898eefb701285d5faab858
│ │ │ ├── d3b2c83ad151ea9b98f64b2ef23722a54c84b25c
│ │ │ ├── d3b749f3d92ceb97ba84c4a5bc1a914e7b354799
│ │ │ ├── d3bb329ef5f92ac1bac4eee2a3c406957d9ad4d2
│ │ │ ├── d3e2e607632ae479d072999375ad9df11e3db913
│ │ │ ├── d3f1131183a16798fb9c862fa8e0755e7a234956
│ │ │ ├── d3f152b8ca43515f8a4b5e0963e1c4567d5a6d2b
│ │ │ ├── d40383bcbc731c1b3290057d8730a23d06bfb133
│ │ │ ├── d42fc4ae0da326038c9589ae2a63e4a2618a61c0
│ │ │ ├── d455d53f069ad8bec38ea51be853f2344904b4b0
│ │ │ ├── d45bcd1ed857d13b8d26d81b5cc0e936c94a5d5e
│ │ │ ├── d45c3e58ea20c7d118dad4c1dc03811cce8dc39b
│ │ │ ├── d46a3875a8055176db72fcad5c0550951f53da7e
│ │ │ ├── d46adb2286c2d28d4f4c070d9738eaefb8799806
│ │ │ ├── d474b28d4d3868d3b409505107ef3c2937290ce0
│ │ │ ├── d4eaa99c5b7677288de80d05928c5e26c5031997
│ │ │ ├── d510583e52f477554b1befaa7190bebf65cd4188
│ │ │ ├── d52b935ef614539e8f284c803c0b93223d75b2ae
│ │ │ ├── d578577d5047f076c033fab505817fe342ffbcea
│ │ │ ├── d57f25b714eee33942eb6853c4ae5776246220e0
│ │ │ ├── d5ffa1f27468ecee1146eacf88e657f9484fda7e
│ │ │ ├── d630fb00ef0f0a2995c62e959b13c33b664e3ce5
│ │ │ ├── d66cd07bc08836d626b36f4c12e3d11aebec3af2
│ │ │ ├── d67d4422dccb731ed3fcb61ffdb76a979af68dde
│ │ │ ├── d6e0c95ba1b8b4644f3ea9566e649d029900f865
│ │ │ ├── d6fbe61b6a991eccd409ca6b922b9d1a8bf8be86
│ │ │ ├── d703a22e65c8a1280e4a0ecb4ffd407b79839508
│ │ │ ├── d709edb9c9c90cac9f7474610bcee857acf3d86a
│ │ │ ├── d750010a709171aa3f400cbe019efe556b93b506
│ │ │ ├── d7691f47b775367dd77bae46660ad2ed29172dcb
│ │ │ ├── d76d350b759b5c82fb167226671640bbcd176a5e
│ │ │ ├── d77af0a79824468f60efe2ef77d6bcbbbf1c252e
│ │ │ ├── d7e8eaac6293255aaf7bd7a39504e2eb28dfffe9
│ │ │ ├── d84e64915ebb23e3fa4dd95f8156a09d45d74f98
│ │ │ ├── d8602b9e5945c8024966dd4dc77b69c760e017b1
│ │ │ ├── d865f410be1a725b020ec33161efba3365b4a251
│ │ │ ├── d8a181448dafa2720886c3c6d9eed9724914ce27
│ │ │ ├── d8e54f5def4e966279baa1c30418fd50dece7f8f
│ │ │ ├── d951243133f8a9476a989f05412e7ddbac9b0b44
│ │ │ ├── d95ef5025db631422eb926e03fe4620587716f01
│ │ │ ├── d96f3106b5babe556e058711988b90bd2e5eba30
│ │ │ ├── d98186e56ea7cba8592c121992a339fe60cd575c
│ │ │ ├── d9e83874d260f2f10d48d98c0b773b836096d426
│ │ │ ├── da12304c7f1ca9c3f673e93f7accd50bd9e40108
│ │ │ ├── da6803102d9d283e29c2acc598b138f6bec65dd1
│ │ │ ├── da70b7529e28ae088787f84c11ae6cef124f432d
│ │ │ ├── dad7d68ab9099738c002065a123ec91cf4388a08
│ │ │ ├── dae30bd9f7e7c2bee801aef30cad430a51eb6f29
│ │ │ ├── dae7c37cf239e28746d00d2811f6c52f7c2c9e62
│ │ │ ├── db4731e954b3df8f755a563babb04f40a03f70c3
│ │ │ ├── db6a4543b6dd41f7cdead99fb446bc349056a396
│ │ │ ├── db73cae3b93bca8ca653a1d02fc0476445c663e2
│ │ │ ├── db88644b3d004078b0d3ac8f4f48c3e0039ec709
│ │ │ ├── db960539ae065eb88b878f229dbe7a9b354b6a82
│ │ │ ├── db9791e8c4fe304c73fb76995e819addcf3c7f22
│ │ │ ├── dba8c110547a47411eac58f1c3fdd6a45b594648
│ │ │ ├── dc3fc7dc1c5a791ea00a9b83594eaa48e29585fd
│ │ │ ├── dc5aeee0ba5dcc88d3143338b71943586a3968a1
│ │ │ ├── dc70d7c211f5ba1f6c19c2e530418b149202e67c
│ │ │ ├── dcbbc57c1ee45d207d8847cb1808680cc3ac74ae
│ │ │ ├── dcbf7831e04a6d7b9b08c0583a546dff1faf4aee
│ │ │ ├── dd29ecf524b030a65261e3059c48ab9e1ecb2585
│ │ │ ├── dd4256fae27a87dbd63a8808414478bd5cef60ae
│ │ │ ├── dd681c9159332af385c6ecee62ff001ea89bb70a
│ │ │ ├── dd802af437aaa74440570a553e1d688912b48f92
│ │ │ ├── dd81f2dc51952b5f8e6b587814779f03a9fe407f
│ │ │ ├── dd93453fb2970d59e21db38cd16ab2f55157661a
│ │ │ ├── ddbe14919763ec4c9fdff15edad2e93cbd8469b5
│ │ │ ├── ddc40aec8ffe87fcb4661a4ab675f4944e3d94ce
│ │ │ ├── de00d3d6de62c9398444754f82883bde134e4b78
│ │ │ ├── de221b3a78bf0faff640f0df865f1a39b3320be9
│ │ │ ├── de2c5acf5b5c0f48d8cba6d1145a0d967a493562
│ │ │ ├── de2e806389a2f1cb304d0a9a92c32b9948e76b18
│ │ │ ├── de3fadf083499ea69028ac9917ffd2ca34ebf84b
│ │ │ ├── de89eb3a895da6aae53d1309859efca3ffdc6f00
│ │ │ ├── deae2e96a7fc6bd06c873a16c569b6de654117f9
│ │ │ ├── def03a29bf06dda7befac55709c21a3c23ee102d
│ │ │ ├── df1a004346920860ac56353876a1f18e6078432c
│ │ │ ├── df462de2973204edcc9e3dfd60dd911f8531e36f
│ │ │ ├── e00904e7d9577c80e830a20b7a46b5063dcdd54e
│ │ │ ├── e014618c12037fb95937b01fef7c21194850947d
│ │ │ ├── e01c0443f6e920bcad542add601e6ba607c80378
│ │ │ ├── e048958cd1942a7362d3f07b89bcc3f031691a0b
│ │ │ ├── e09112a79b064e4bd20ed2e9c862b7ccbed03171
│ │ │ ├── e0e8fe48e68ce2fffe1d5272f79bde98165fc889
│ │ │ ├── e1809b4e6f8c10a221bc25ae723e22f49472917c
│ │ │ ├── e1cb7eb758be155ccb2dcbced2195c9711215df2
│ │ │ ├── e24070621687375583ffc91d7896ee589b70d648
│ │ │ ├── e2f855110c47e10f9be887ca8e45c9362966fe39
│ │ │ ├── e38ca5932f67313a7b5e65f551bd011b9f8b9326
│ │ │ ├── e38d4c6a4477a774592e4148bdf7f963e59c814b
│ │ │ ├── e3c67a7cb8c03ec4fccba1c083b662c91c73c436
│ │ │ ├── e3d1222ed9ecc833408e958dc32062ed3ac76633
│ │ │ ├── e496748790e162babac97266494bb87b188386d3
│ │ │ ├── e4c3b999cc459e58b9af1d671da867e411085dc7
│ │ │ ├── e503ebc79eea106e20befb531bb0580458ea511b
│ │ │ ├── e5383c85fcda28429483284bee2b99be6b3c7839
│ │ │ ├── e5c599f26029948f37e493e2138187b46d5a2296
│ │ │ ├── e5c65af89c0cb104b34e4b95146680dadf44854f
│ │ │ ├── e5da5e7811a24e9f8c8b42db2b1938ce70cf1928
│ │ │ ├── e5fa5609645656eb9846f3783680fd4353104dfa
│ │ │ ├── e60d746184d67a7c6c86a8f4ac531f1cbe5f851f
│ │ │ ├── e61f1b17038dcc7d428cd8d91e46a98dd29b4a66
│ │ │ ├── e636f8753bc5b894526b61d28cbabebc87531419
│ │ │ ├── e647ed3f69e91701e441e9044063d85bcd21b18e
│ │ │ ├── e688edcc6a61d071a50b1cf75862c5a7bb95d021
│ │ │ ├── e6cfe0f785bd3ee90612a04bf2b8de247160a4df
│ │ │ ├── e6de28717b39f5e380b95b0cc8eebf42c590d42f
│ │ │ ├── e6deee34dab841dfa08f25d851689a4dd47e38a8
│ │ │ ├── e70130edcabcdcdfe13cc488316b075709c14259
│ │ │ ├── e70ff1dffef0ab7169a297cbcad58fd4145b6c39
│ │ │ ├── e72a964a82eca97bdb3ca93ca476c11553764af6
│ │ │ ├── e76dac95550b32ca69ab73b10656947943c797e9
│ │ │ ├── e7922fac9bfc346b419839a4c7635cd15909dcbd
│ │ │ ├── e7a2e3be4db44ce21dd6c459dd0791433c35a867
│ │ │ ├── e7aee0f85bb185ec092ea440b3d5eb11ce3ff294
│ │ │ ├── e7fa1d92a8c7d6b8cfb9a81cb18d42d190fd5652
│ │ │ ├── e836a1de4dbd94e3741b390fe6446f5105612a5c
│ │ │ ├── e94509e8057d3d6de55cf800749b6007b1b64f53
│ │ │ ├── e948388a7715e34c87d9c1d4dc808f023305cf4b
│ │ │ ├── e9c77331059ac23965deb2586fa84ed4e3c2b71c
│ │ │ ├── ea1fc1e34a2f094638d240229d62f714d0c4915d
│ │ │ ├── ea7b2adbb99935340f3ee814c1a29982f813ee35
│ │ │ ├── eaa41dc3a57b84d20b7c6c96ba6bd4fbda5b9c3c
│ │ │ ├── eadc2915945cd8c46e340f1c22ce9bf6481420d9
│ │ │ ├── eaf8883b835448416f845fcb8553d641daa617d3
│ │ │ ├── eb274da744f47a61ff64ca65acf4d92c9eca35c3
│ │ │ ├── eb381bbd1bd7fe502fcbc6c4301b3aa7c1d6b28a
│ │ │ ├── eb57bdbf2651950ebc41014981cca3f5db128cb6
│ │ │ ├── ebba271875275d3869ac477d5cdb1b5edf5dfcfa
│ │ │ ├── ebcd3dd4e06fcdc3f5d30a70a439ac28b8ac7ee4
│ │ │ ├── ebe6c656f2d2e82f3507fb7430e7c9362f199080
│ │ │ ├── ebeea39b334b856e8b49c513f36f91748d1cddb2
│ │ │ ├── ec0b38e775dc428b4d0dacf6106a3b2ee11e4e00
│ │ │ ├── ec8a604f398c083f831b0df331d43dd29c33a250
│ │ │ ├── ecb4376d0db030c449f88247cf0a2554dff70d5f
│ │ │ ├── ed59797dfed3f82661fdfd3338a7abf4a37380d0
│ │ │ ├── ed737e757460c021ec8f7c02c720acf69a287d41
│ │ │ ├── ed93036a1131734f3339ff2fc4e0a291e99a58dc
│ │ │ ├── eda5110beb8012b81702894922473f44af749756
│ │ │ ├── edb477c0c4f3bd1174b291c6149ceed9684de93f
│ │ │ ├── edd035e3794d529d86dbeacd7c91a051598bef83
│ │ │ ├── ee11bb4111d888a32ef608e7b464f826e78f1d47
│ │ │ ├── ee8249eeaf49c382e97ceaf8bdc2913c662d438d
│ │ │ ├── eea663fc6a4315767e83a1813b813cbf8687e454
│ │ │ ├── ef51f697f225e22606890a41e5b94bc166a13177
│ │ │ ├── efc458a3fe5db89be14f7d3a09136f91c9e5ade8
│ │ │ ├── efd1ddc1c52a772d576820745fb7aa2bd10437c8
│ │ │ ├── f02762a7fcdb1b0c31a5fa4bacfed8a1c4886dd3
│ │ │ ├── f076b13596e9ba47ef358e904098c7792291470d
│ │ │ ├── f080446304324098b74b9addc0a16960d33e1b84
│ │ │ ├── f0e8e904cdb47da95aa8f2431aee8b950a3b5fad
│ │ │ ├── f107031029ba62edf05f86896e373c2db8f137a6
│ │ │ ├── f13574ddb80c70f5f1f8f66aaf6428067623862f
│ │ │ ├── f168756ea1e9da1b39c942cf0400a7258a5f3242
│ │ │ ├── f19726796f982a665b0199cef6d6e55b6004e48c
│ │ │ ├── f1aafe65790f6aa55b2637fae7dbab75ae9ee303
│ │ │ ├── f1b48bfd63d4ebba9a54b4150609680a49d7f948
│ │ │ ├── f1c9cae05b9d1368c75a417309c8b932062321f1
│ │ │ ├── f23f01d576a1214c2642c12b28b6c2beabc994fe
│ │ │ ├── f268cadcd87ad02eff199b6ffc47d13684fb0872
│ │ │ ├── f27ca1f2650e5855fd9c767425cc6f574bffc0e6
│ │ │ ├── f2ce6e465c9453ca7e5dd5e73fbe053fa72b6fbc
│ │ │ ├── f2da766758cc66b117d77e400a84ca8c37692a93
│ │ │ ├── f2e9221c838871a9d67e12a4ac6b418ae0094f32
│ │ │ ├── f2fcc1a7f09e91b5470d46243d93e739b835370f
│ │ │ ├── f30f945b723735abf8bc01370eccb1d2d1c04fac
│ │ │ ├── f3459f2ef08c231355365cd60fef0d5e42f80148
│ │ │ ├── f355df3e93c60fc8761f2664021666a0b6b5bba9
│ │ │ ├── f35a22719542beedfb5151c1ffd5542cf4259c3c
│ │ │ ├── f36471aeafac5332ba76531d3c063dc57dde724d
│ │ │ ├── f38562ef340bd9005a06815486a3b24512fa17f1
│ │ │ ├── f3d15cb03c5ab7fa26d64d119e8b5c47dfaafdac
│ │ │ ├── f4133147ec4af04930f80794cfde883aa84f82eb
│ │ │ ├── f4a2b8a90b15fe2862831a00b09f61305e1a9aba
│ │ │ ├── f4dddb7fafd2bfdee68f60e48b3d3ad08225638b
│ │ │ ├── f5a6140f0733dcce47cf834d185782228e5f8c4e
│ │ │ ├── f5b7e6d36dc0113f61b36c700817d42b96f7b037
│ │ │ ├── f6721fb49d5ef3bb41bff904fb9fd4078d45459b
│ │ │ ├── f678db19c304d5f9b7df02f3319c7c9c452891dd
│ │ │ ├── f69b6bf8a4fb50bcfd7a929a91c576c7f142ee0c
│ │ │ ├── f69f9e6a842385a10a63d3902452ea399f665408
│ │ │ ├── f6b82f51c6c8dbc5b9725f8f99021a4115686d3b
│ │ │ ├── f6d8d8aca0c537f42ff1170262de735ac8d368b0
│ │ │ ├── f7235109c8e5f89ec07e5d745a8031e9eba4e4fe
│ │ │ ├── f76050957f138cd98c8bcb70fe9d645ac1eb384f
│ │ │ ├── f76d62d100a1e8f5f547a917376011f5eab08e21
│ │ │ ├── f809a70c8f8c73af451d3274aae21a56139fe131
│ │ │ ├── f80cf7d82b10b997b7f3645e871215f22f1e3c81
│ │ │ ├── f834bde21859165b56c0aaa6547991a1ce7d94bd
│ │ │ ├── f8da3bd2576f2727ea86f4d9adac3b9414b46c2e
│ │ │ ├── f8e3fa6afe70097811e341ab99c1a17446ffd61f
│ │ │ ├── f8fcd7b7a9b527bc1a7cc93a4078b3d82f36306a
│ │ │ ├── f8ffc7665d502533f12a456dc66b5ccc1ff607dd
│ │ │ ├── f912399b776ac88e1dad4a18efd31399fea80f10
│ │ │ ├── f93ed8c42b62f7e9b82fc997a19624f257c70857
│ │ │ ├── f95031531de9e202b32291a05af9876cc3ce9a8c
│ │ │ ├── f9788c950d2dd9f6b14d2e7bb78c8b615edc7c88
│ │ │ ├── f9967deae6d58d55273d6d42eb21c6cc92324c09
│ │ │ ├── f99c8639d7a3fa61d37ea7836607e1cbdd1e357e
│ │ │ ├── f9b5bbd0f79ea98711967a099486df367a10e420
│ │ │ ├── f9b89c54ad87e8acb2a634e30ac15e8ca5f2a247
│ │ │ ├── fa5388c3505e19b2594740ca14d489eef7f88eee
│ │ │ ├── fa679c8413b7c5e08e98f8f2aab0828393da2b08
│ │ │ ├── fb96549631c835eb239cd614cc6b5cb7d295121a
│ │ │ ├── fb9d086f7e09d899a7aa85c4aacb446d6be6b8a1
│ │ │ ├── fbaa9ab770dbc683a854ec13c9812d3a41cef2e3
│ │ │ ├── fbba5cb04e6dcadcbae46d1389ee6b20bd7688f3
│ │ │ ├── fbc7fc48c176d0c37f3800b9a84e087df5ed0c5a
│ │ │ ├── fc63a99d912d2e8bc6fa5b89697b68db86851e8d
│ │ │ ├── fcd16b8c302b8a976f7b2403034ae668a02979e8
│ │ │ ├── fcded1aeea2cc7fb273a5a257a111aad52a1a89d
│ │ │ ├── fd0f2c0ac3a94e2445f4960acffbab66276fe058
│ │ │ ├── fd44e98d796d78eefda958c7482b352284bac0a3
│ │ │ ├── fd99bb37c407c410979c32ac3a8ad98106d56d41
│ │ │ ├── fdc69a6b15aae0c7387ac06665609d07abf009ad
│ │ │ ├── fe240db3c2cf44806965964b6c0bee9a9aaf0602
│ │ │ ├── fec5377a68cccf295ce1ed0054a10dcd4bbb8c3b
│ │ │ ├── fec75060fbc2a7129d2935474d36af9cf585aebc
│ │ │ ├── fecff0273b2b0fd75e99911c333d72362fbd8d49
│ │ │ ├── feda82ba42feb1da5ea4e8631a61aa407ead0230
│ │ │ ├── fee5fce787e411a6197c3a78148e4cd2d9491892
│ │ │ ├── fefd42170819637d98298c3d8525f2709966de49
│ │ │ ├── ff27acc5779ab7aa2378ea435d87109a020e80ce
│ │ │ └── ff53d9a038d690f0f8a5e96246e1a26b0523811a
│ │ ├── fuzz_query_parser/
│ │ │ ├── .gitignore
│ │ │ └── seed.txt
│ │ ├── fuzz_query_transpiler/
│ │ │ ├── seed_and
│ │ │ ├── seed_double-not
│ │ │ ├── seed_empty
│ │ │ ├── seed_empty-phrase
│ │ │ ├── seed_leading-wild
│ │ │ ├── seed_many-or
│ │ │ ├── seed_nested
│ │ │ ├── seed_nested-not
│ │ │ ├── seed_not
│ │ │ ├── seed_null-byte
│ │ │ ├── seed_or
│ │ │ ├── seed_paren-stuffing
│ │ │ ├── seed_phrase
│ │ │ ├── seed_simple
│ │ │ ├── seed_trailing-wild
│ │ │ └── seed_unicode
│ │ ├── fuzz_redact_secrets/
│ │ │ ├── 01a61d6fdde312f0f415d81122189d007a6faa8b
│ │ │ ├── 06c990b57d85cc50a8b2d9d9df6c8d7acc72ca1e
│ │ │ ├── 0c8c597533cce753a8803ce06536a021aed22037
│ │ │ ├── 0e005991cb246cfcc00a4dd297d70d5ae810b434
│ │ │ ├── 103625057b22373ede029764ae05fb1efcf4280a
│ │ │ ├── 12f74c7be8674bbfec9017f6c6f029922f7e617d
│ │ │ ├── 150c69cc156c2966f4b0ca1e3af393323f3e59cf
│ │ │ ├── 1727d740840b4884f5f0b6d2a30ed098a35c8a6b
│ │ │ ├── 179145457cbb75b12cb2748eabb64f4b35df7666
│ │ │ ├── 1dad6fff5174367f41fa285a76a0c046c4d328c0
│ │ │ ├── 2012658e8bfcc3a62bbad3a116f0494d24e24fe3
│ │ │ ├── 23f2a5326e0922c5a3f4eb67fafb90a947e73b14
│ │ │ ├── 249ccb76d6dfee06f135fb490ab21097550cebda
│ │ │ ├── 25311cd9fcc636f0b5b6e3e311ff03b66af98ae4
│ │ │ ├── 26fc843d64e834b383f9a92e1ae669f7be70ad1f
│ │ │ ├── 2a19113b6c07868ad3bcaaf43082ba6a58c09567
│ │ │ ├── 2a24aababd3ac0c10adabf52d6eafd48fbeebc28
│ │ │ ├── 2a4f298d10968a94976d529d489b43f97b458c2d
│ │ │ ├── 2ab4f5e728a94b3941644707d832f2c16c9bee39
│ │ │ ├── 2e2c286ea2844e2dc29f728fdadf91f597aaf82b
│ │ │ ├── 3704e5175df12c450fae225abbbe913b88020c1b
│ │ │ ├── 396183bff0c95c5edc26fd2c0450308a372ba484
│ │ │ ├── 3bd96c82da965fcd49c43d682ed90e3802e6e070
│ │ │ ├── 3c14ee3c76a9e7a11b52e9f1a32367b555cec7ad
│ │ │ ├── 3c160aff4764257e51daec63df1d676462950af3
│ │ │ ├── 3f8861267c0268caa030c90a88ff0a5913a707df
│ │ │ ├── 40f525c1ba8b83f96d735faf0578916fa6cd27a1
│ │ │ ├── 41e68f48767c52a64cea63e274182fec854b6abe
│ │ │ ├── 4961ff8715bb251301154fef0245a189b34ca1e3
│ │ │ ├── 51b5d590064b7257ea9ab83994ead33623dd8680
│ │ │ ├── 51d3839d7bea5d3bea6e54bf7e8bf887bb3d0a7d
│ │ │ ├── 52ad7e655a9e4d7f3d0280b9da3afae1bc8cb23a
│ │ │ ├── 54573344c7758f8e156f532833cd77492d5b3ccb
│ │ │ ├── 560d012ba8179e0e3cdb226f13c3c339145972a9
│ │ │ ├── 57f7a094831e6da293752008e6ae5502a6f3e243
│ │ │ ├── 5811941aefb60b66f3055f3ca8d9e9c1f4bf827a
│ │ │ ├── 5bea166f7301040caab839dcf833dbe960bc354c
│ │ │ ├── 5e3b49b9338939af80f435d0e170bd12d7369dbc
│ │ │ ├── 5e60ba7b548f6c1a4d48292757d8ab286a9b4528
│ │ │ ├── 61d4f0fa2fa049991a7f077aa78d8dcc436a4fa0
│ │ │ ├── 628a74c5d0cee2f821b101a0972385f4a770c815
│ │ │ ├── 6865225ec52f1b3c7309f242f800e42aa1b16980
│ │ │ ├── 6ab3bebd75abab28cb9819e69fe9cde562b389b8
│ │ │ ├── 705c2a96e17a40236c5ef1ff7fdca6c4324d6bbd
│ │ │ ├── 70fff4576f54a85ad5c5e3c5adb9ea113ec121e9
│ │ │ ├── 712c32b5e0c44ab9a905e32634d4044f28da66c8
│ │ │ ├── 713a2efe0a6748043b1587cd19fcc5293d382588
│ │ │ ├── 7182598900a6bd7f96d90c38053b0c2b7022030c
│ │ │ ├── 72a951ca0291d1714fc74898bde90248ba36f23b
│ │ │ ├── 791401a93016fe9b8a23c7f5b33a4383cf6255b2
│ │ │ ├── 7a2a43683254a9c50309ceb75947229e9d763c19
│ │ │ ├── 7a2fc8d9d44c6e0c237a6703311ef7532894240b
│ │ │ ├── 7b2e440cc3d6a70c57727de2e80bfc3da0d3d2e4
│ │ │ ├── 7f5377b0f515ad417ac22a27496250854ca7233a
│ │ │ ├── 7fa0fa9f43592fc9958273eacbb0fb176fb32b96
│ │ │ ├── 81afc508f11596edf4000a0aa9e7f069aff82021
│ │ │ ├── 832f34f6c8d3624bce6993822d03c2243b8d6926
│ │ │ ├── 83347d93e5f6f633e9f068a77597e608b9dc3906
│ │ │ ├── 8385937b09862b54116b90e24e22f1bd7479da2e
│ │ │ ├── 857b0462e64611369c47b3baff6f9aa238e7a62f
│ │ │ ├── 8590042bedb01179137fdcac1b7d950757d03670
│ │ │ ├── 8b079a8515c6c283c6b7d874c3e9aa3b3c063359
│ │ │ ├── 8d5d2af9bf9bfa81c58e9f580c075f5908a6a91e
│ │ │ ├── 9098d66fccee1e0bcd4e1ceb9056a4b59806d003
│ │ │ ├── 9154f0324f3ea65813518cb55961cd0355aa714e
│ │ │ ├── 91b1746ead727fe8a8dc5b46b5e1b542e8d786d1
│ │ │ ├── 935096c8fbb5c23f2781f3f49fc440c5b5f51ce4
│ │ │ ├── 950cd5f7b7d4fa1dd1d0b0940fbd3e1c61a23f7f
│ │ │ ├── 9a987e1e00618d3799dc4a3e28ba40ae4b145266
│ │ │ ├── 9abe7015406c67b10c42a6c616dda50fc5a1cdc1
│ │ │ ├── a1f909bbb31f213bb80309ef7b4065ed42fc3119
│ │ │ ├── ac07d63e5f7946bc6a5646c0214e08a99df8650a
│ │ │ ├── ad957d03ab9abfc2dc575845da484ba44b58942e
│ │ │ ├── b2aaf4c5170b5efcaac1ccdf893e68361454f11d
│ │ │ ├── b2e82def46b30d571829e004d051145e7b9c1ed3
│ │ │ ├── be0739730051f7d5ba91d91dca984e69e8821928
│ │ │ ├── bearer-jwt
│ │ │ ├── befd879eabb2270ff265e7d9c19e309fe24e9e88
│ │ │ ├── c140349dc02d03f969c1497489b974df5a2c065d
│ │ │ ├── c4611c276b524607c5e63e47cee65d99e3779890
│ │ │ ├── cbb2b144757b4bd66180575e5d2855f7b87ea784
│ │ │ ├── ccb9356ead29fc97a4ab0c3ae2f7e2b8ec46f3fa
│ │ │ ├── cd1ba7dfdca9bb23355f1439372beaffba485f8a
│ │ │ ├── ce8a00318b23a2bf0bc43d1ab26fac0863f57de4
│ │ │ ├── cf65dab11212b63bdd9a9b1b46ad427fb58f1dbb
│ │ │ ├── d247f439588e44e891366d0d02fdc715b22528e6
│ │ │ ├── d3592f3134006b9484b5b986e279baf24ae94bec
│ │ │ ├── d3bbad1568c0359c90e8685b78ea879746b45b37
│ │ │ ├── d5ddc648c83e2055ead82b9398a68cd39786f241
│ │ │ ├── d5e02fe870f9ec66c5b4af5d9d19fec45b4b9e80
│ │ │ ├── d6befeb54164dc0ac4ca12f0ad5aa84c8071720d
│ │ │ ├── d90f0e5ed141e31e50d7831af4ad882b2000a4aa
│ │ │ ├── da77f0e7b2e26893303df6fecfd7e60c8f227f83
│ │ │ ├── db-url
│ │ │ ├── dbfa25ddf775463a133accdbb6f141c1fbdeef54
│ │ │ ├── de6c4f2ff1698d5d2f96b8493b633c990aaaf10b
│ │ │ ├── e08fbf8435f84712ab300a79a42e7837df084ab8
│ │ │ ├── e22d2fd1d8c12dc77e3c7b4f57fe8ae5ef43274f
│ │ │ ├── e36cf71d05200aa229304f4557def88b8f00ec20
│ │ │ ├── e563e29b6a0c7d3970fae2ec54092b154c9959de
│ │ │ ├── ea2e45cfe5d0e0e02435301647e3651ad3d1d42e
│ │ │ ├── ea598573966770cd5b1642d404609df6e2f75c9b
│ │ │ ├── eba5dfab45a74e4c9dee4f1566f3189ea03bcc3d
│ │ │ ├── ecc4df9a4649e1c56beb32a127d0a6691ff02b1f
│ │ │ ├── eea4ace343d74f0313216e63604ce37c9bd3d643
│ │ │ ├── escaped-bytes
│ │ │ ├── f8ffefa21504da3ffb54613ab5466e24ad6c915c
│ │ │ ├── f949864ea448c29f4d84cb99c27f7c04829406b5
│ │ │ ├── fae7e04b700e83fc3cc1f7541ba21d1d87d7060d
│ │ │ ├── fb6c9e475bb9a52f27311cd47f8c3ba0b6c79c22
│ │ │ ├── fbb57086843f0c22550c5158784645dcf8cd0b7e
│ │ │ ├── github-token
│ │ │ ├── key-in-object-key
│ │ │ ├── long-repeated
│ │ │ ├── nested-json
│ │ │ ├── openai-key
│ │ │ ├── plain
│ │ │ └── unicode
│ │ ├── fuzz_robot_envelope_roundtrip/
│ │ │ ├── seed_4d41e886
│ │ │ ├── seed_76a9cf12
│ │ │ └── seed_99914b93
│ │ ├── fuzz_time_parser/
│ │ │ ├── seed_04d6c157
│ │ │ ├── seed_07453d0a
│ │ │ ├── seed_18860964
│ │ │ ├── seed_1c6c1404
│ │ │ ├── seed_23a326d0
│ │ │ ├── seed_24920dec
│ │ │ ├── seed_289ff636
│ │ │ ├── seed_36b38a7c
│ │ │ ├── seed_628631f0
│ │ │ ├── seed_90015098
│ │ │ ├── seed_97bc592b
│ │ │ ├── seed_9cff1781
│ │ │ ├── seed_b5e9e3cc
│ │ │ ├── seed_c5e7dfaf
│ │ │ ├── seed_cce906c4
│ │ │ ├── seed_d33d790d
│ │ │ ├── seed_d41d8cd9
│ │ │ ├── seed_e1bec4c2
│ │ │ ├── seed_e9f17f6f
│ │ │ ├── seed_eac9e8dd
│ │ │ └── seed_faa48af0
│ │ └── manifest/
│ │ ├── empty.json
│ │ ├── full.json
│ │ ├── invalid_types.json
│ │ ├── minimal.json
│ │ └── unicode.json
│ └── fuzz_targets/
│ ├── chunked.rs
│ ├── config.rs
│ ├── decrypt.rs
│ ├── fuzz_cli_argv.rs
│ ├── fuzz_connectors.rs
│ ├── fuzz_html_export_renderer.rs
│ ├── fuzz_query_parser.rs
│ ├── fuzz_query_transpiler.rs
│ ├── fuzz_redact_secrets.rs
│ ├── fuzz_robot_envelope_roundtrip.rs
│ ├── fuzz_time_parser.rs
│ ├── kdf.rs
│ └── manifest.rs
├── install.ps1
├── install.sh
├── lighthouse-budget.json
├── packaging/
│ └── homebrew/
│ └── coding-agent-search.rb
├── refactor/
│ └── artifacts/
│ ├── 20260424T222109Z-codex-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── baseline_cargo_check_all_targets.log
│ │ ├── baseline_cargo_fmt_check.log
│ │ ├── baseline_loc_wc.txt
│ │ ├── cargo_clippy_all_targets.log
│ │ ├── cargo_clippy_all_targets_known_doc_indent_allowed.log
│ │ ├── cargo_test_html_export_lib.log
│ │ ├── duplication_map.json
│ │ ├── duplication_map.md
│ │ ├── isomorphism_html_export_error_derive.md
│ │ ├── loc_delta_html_export_errors.numstat
│ │ ├── skill_inventory.json
│ │ ├── slop_scan.md
│ │ ├── touched_rustfmt_check.log
│ │ └── ubs_html_export_errors.log
│ ├── 20260424T230127Z-repeated-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── pass10_final_rescan.md
│ │ ├── pass1_trait_boilerplate.md
│ │ ├── pass2_wrapper_collapse.md
│ │ ├── pass3_rule_of_3_helper.md
│ │ ├── pass4_constant_literal_consolidation.md
│ │ ├── pass5_error_mapping.md
│ │ ├── pass6_option_default_flow.md
│ │ ├── pass7_test_fixture_dry.md
│ │ ├── pass8_control_flow_tightening.md
│ │ └── pass9_alias_reexport_audit.md
│ ├── 20260425T024205Z-second-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── architecture.md
│ │ ├── baseline.md
│ │ ├── pass10_final_rescan_encrypt_error.md
│ │ ├── pass1_derive_error_boilerplate.md
│ │ ├── pass2_private_wrapper_collapse.md
│ │ ├── pass3_json_output_plumbing.md
│ │ ├── pass4_search_filters_fixture_helper.md
│ │ ├── pass5_wizard_option_fallbacks.md
│ │ ├── pass6_config_env_error_mapping.md
│ │ ├── pass7_cloudflare_env_constants.md
│ │ ├── pass8_breakdown_row_projection.md
│ │ └── pass9_remove_chart_slice_alias.md
│ ├── 20260425T154730Z-third-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── architecture.md
│ │ ├── baseline.md
│ │ ├── pass10_docs_assertion_macro.md
│ │ ├── pass1_ssh_error_derive.md
│ │ ├── pass2_sources_alias_audit.md
│ │ ├── pass3_cloudflare_fixture_helper.md
│ │ ├── pass4_docs_version_constant.md
│ │ ├── pass5_docs_date_fallback.md
│ │ ├── pass6_analytics_query_error_helper.md
│ │ ├── pass7_rollup_stats_projection.md
│ │ ├── pass8_inline_js_assertion_macro.md
│ │ └── pass9_setup_wrapper_collapse.md
│ ├── 20260425T180745Z-fourth-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── architecture.md
│ │ ├── baseline.md
│ │ ├── pass10_final_rescan.md
│ │ ├── pass1_analytics_error_derive.md
│ │ ├── pass2_metric_as_str.md
│ │ ├── pass3_drift_signal_json.md
│ │ ├── pass4_group_by_test_matrix.md
│ │ ├── pass5_status_table_constants.md
│ │ ├── pass6_token_usage_agent_fallback.md
│ │ ├── pass7_key_slot_error_helper.md
│ │ ├── pass8_encrypt_assert_helper.md
│ │ └── pass9_key_management_wrapper_collapse.md
│ ├── 20260425T184600Z-fifth-simplify/
│ │ ├── architecture.md
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass10_path_mode_rescan.md
│ │ ├── pass1_simulation_failure_error_derive.md
│ │ ├── pass2_sync_method_as_str.md
│ │ ├── pass3_master_key_backup_json.md
│ │ ├── pass4_source_filter_cycle_matrix.md
│ │ ├── pass5_master_key_note_constant.md
│ │ ├── pass6_config_input_defaults.md
│ │ ├── pass7_analytics_cli_error_helper.md
│ │ ├── pass8_bookmark_search_assertion_helper.md
│ │ └── pass9_setup_wrapper_inline.md
│ ├── 20260425T213512Z-sixth-simplify/
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass10_docs_date_format_rescan.md
│ │ ├── pass1_preview_error_derive.md
│ │ ├── pass2_preview_mime_constants.md
│ │ ├── pass3_export_hit_json_helper.md
│ │ ├── pass4_preview_site_fixture.md
│ │ ├── pass5_docs_url_fallback.md
│ │ ├── pass6_key_slot_id_helper.md
│ │ ├── pass7_share_profile_parse_labels.md
│ │ ├── pass8_export_json_assertion_helper.md
│ │ └── pass9_export_extra_json_inline.md
│ ├── 20260425T234742Z-seventh-simplify/
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass10_db_error_derive.md
│ │ ├── pass1_pages_decrypt_error_derive.md
│ │ ├── pass2_update_asset_constants.md
│ │ ├── pass3_cloudflare_project_body_helper.md
│ │ ├── pass4_cloudflare_prereq_fixture.md
│ │ ├── pass5_no_limit_budget_helper.md
│ │ ├── pass6_fastembed_unavailable_helper.md
│ │ ├── pass7_semantic_policy_as_str.md
│ │ ├── pass8_cloudflare_missing_assertion.md
│ │ └── pass9_github_resolve_site_wrapper.md
│ ├── 20260426T155536Z-eighth-simplify/
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass10_dim_as_str.md
│ │ ├── pass1_size_error_derive.md
│ │ ├── pass2_message_role_display_table.md
│ │ ├── pass3_sync_schedule_literals.md
│ │ ├── pass4_unencrypted_config_helper.md
│ │ ├── pass5_username_fallback.md
│ │ ├── pass6_embedder_unavailable_helper.md
│ │ ├── pass7_remote_spec_wrapper.md
│ │ ├── pass8_embedder_registry_fixture.md
│ │ └── pass9_group_by_as_str.md
│ ├── 20260426T163300Z-ninth-simplify/
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass1_setup_error_derive.md
│ │ ├── pass2_password_strength_tables.md
│ │ ├── pass3_source_filter_literals.md
│ │ ├── pass4_export_json_payload.md
│ │ ├── pass5_config_time_range.md
│ │ ├── pass6_reranker_error_constructor.md
│ │ ├── pass7_pages_export_temp_path_inline.md
│ │ ├── pass8_reranker_registry_fixture.md
│ │ └── pass9_password_strength_visuals.md
│ ├── 20260426T210630Z-tenth-simplify/
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass1_model_fixture_helper.md
│ │ ├── pass2_progress_snapshot_helper.md
│ │ ├── pass3_export_format_table.md
│ │ ├── pass4_pipeline_assertion_dedupe.md
│ │ ├── pass5_stale_config_env_helper.md
│ │ ├── pass6_inline_track_a_rebuild_check.md
│ │ ├── pass7_shared_db_id_helpers.md
│ │ ├── pass8_worker_config_fixture.md
│ │ └── pass9_worker_model_literals.md
│ ├── 20260427T023153Z-eleventh-simplify/
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass1_worker_fast_embed_expectation.md
│ │ ├── pass2_export_hit_base_projection.md
│ │ ├── pass3_unencrypted_blocked_literals.md
│ │ ├── pass4_embedding_model_precedence.md
│ │ ├── pass5_inline_reranker_loader.md
│ │ ├── pass6_export_hit_assertion_matrix.md
│ │ ├── pass7_worker_usize_to_i64_helper.md
│ │ ├── pass8_pages_config_password_fixture.md
│ │ └── pass9_daemon_connection_error_helper.md
│ ├── 20260427T040829Z-twelfth-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── baseline.md
│ │ ├── pass10_final_rescan_content_review_matrix.md
│ │ ├── pass1_confirmation_flow_fixture.md
│ │ ├── pass2_confirmation_strength_label_table.md
│ │ ├── pass3_secret_ack_phrase_literals.md
│ │ ├── pass4_no_limit_budget_option_flow.md
│ │ ├── pass5_key_rotation_staging_wrapper.md
│ │ ├── pass6_semantic_doc_component_id.md
│ │ ├── pass7_daemon_unexpected_response_error.md
│ │ ├── pass8_daemon_status_projection.md
│ │ └── pass9_password_action_matrix.md
│ ├── 20260427T160551Z-thirteenth-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── baseline.md
│ │ ├── pass10_final_rescan_retryable_error_matrix.md
│ │ ├── pass1_semantic_truthy_env.md
│ │ ├── pass2_embedder_display_matrix.md
│ │ ├── pass3_scheduler_reason_next_steps.md
│ │ ├── pass4_semantic_conversation_fixture.md
│ │ ├── pass5_semantic_progress_u64_conversion.md
│ │ ├── pass6_effective_settings_compiled_projection.md
│ │ ├── pass7_invalid_mirror_url_error_shape.md
│ │ ├── pass8_model_verified_marker_temp_wrapper.md
│ │ └── pass9_mirror_url_rejection_matrix.md
│ └── 20260427T164600Z-fourteenth-simplify/
│ ├── DASHBOARD.md
│ ├── baseline.md
│ ├── pass10_final_rescan_dashboard.md
│ ├── pass1_readiness_predicate_matrix.md
│ ├── pass2_semantic_availability_tui_matrix.md
│ ├── pass3_tier_readiness_matrix.md
│ ├── pass4_protocol_error_display_matrix.md
│ ├── pass5_query_token_count_matrix.md
│ ├── pass6_reranker_lookup_matrix.md
│ ├── pass7_role_code_matrix.md
│ ├── pass8_hash_token_matrix.md
│ └── pass9_asset_state_projection.md
├── rust-toolchain.toml
├── scripts/
│ ├── bakeoff/
│ │ ├── cass_embedder_e2e.sh
│ │ ├── cass_rerank_e2e.sh
│ │ └── cass_validation_e2e.sh
│ ├── bench-report.sh
│ ├── check_bench_regression.py
│ ├── coverage-uncovered.sh
│ ├── coverage.sh
│ ├── daemon/
│ │ └── cass_daemon_e2e.sh
│ ├── e2e/
│ │ ├── cli_flow.sh
│ │ ├── connector_stress.sh
│ │ ├── daemon_fallback.sh
│ │ ├── doctor_v2.sh
│ │ ├── e2e_logging_acceptance_test.sh
│ │ ├── full_coverage_validation.sh
│ │ ├── multi_machine_sync.sh
│ │ ├── query_parser_e2e.sh
│ │ ├── security_paths_e2e.sh
│ │ ├── semantic_index.sh
│ │ └── sources_sync.sh
│ ├── e2e_logging_acceptance_test.sh
│ ├── generate-gap-report.sh
│ ├── historical_recovery/
│ │ ├── README.md
│ │ ├── clone_core_tables_via_dump.sh
│ │ ├── import_codex_rollouts.py
│ │ ├── inventory_sqlite_sources.py
│ │ ├── merge_historical_bundle.py
│ │ ├── recover_historical_bundle.py
│ │ ├── run_watch_once_batches.py
│ │ └── screen_bundle_delta.py
│ ├── lib/
│ │ └── e2e_log.sh
│ ├── migration_e2e_validate.sh
│ ├── test-all.sh
│ ├── test-pages-e2e.sh
│ ├── test-quick.sh
│ ├── test-report.sh
│ ├── tests/
│ │ ├── generate_evidence_bundle.sh
│ │ └── run_all.sh
│ ├── validate-e2e-jsonl.sh
│ ├── validate_ci.sh
│ ├── validate_docs.sh
│ └── validate_fixtures.sh
├── src/
│ ├── analytics/
│ │ ├── bucketing.rs
│ │ ├── derive.rs
│ │ ├── mod.rs
│ │ ├── query.rs
│ │ ├── types.rs
│ │ └── validate.rs
│ ├── bakeoff.rs
│ ├── bin/
│ │ └── cass-pages-perf-bundle.rs
│ ├── bookmarks.rs
│ ├── connectors/
│ │ ├── aider.rs
│ │ ├── amp.rs
│ │ ├── chatgpt.rs
│ │ ├── claude_code.rs
│ │ ├── clawdbot.rs
│ │ ├── cline.rs
│ │ ├── codex.rs
│ │ ├── copilot.rs
│ │ ├── copilot_cli.rs
│ │ ├── crush.rs
│ │ ├── cursor.rs
│ │ ├── factory.rs
│ │ ├── gemini.rs
│ │ ├── kimi.rs
│ │ ├── mod.rs
│ │ ├── openclaw.rs
│ │ ├── opencode.rs
│ │ ├── pi_agent.rs
│ │ ├── qwen.rs
│ │ └── vibe.rs
│ ├── crash_replay.rs
│ ├── daemon/
│ │ ├── client.rs
│ │ ├── core.rs
│ │ ├── mod.rs
│ │ ├── models.rs
│ │ ├── protocol.rs
│ │ ├── resource.rs
│ │ └── worker.rs
│ ├── doctor.rs
│ ├── encryption.rs
│ ├── evidence_bundle.rs
│ ├── explainability.rs
│ ├── export.rs
│ ├── ftui_harness.rs
│ ├── html_export/
│ │ ├── encryption.rs
│ │ ├── filename.rs
│ │ ├── mod.rs
│ │ ├── renderer.rs
│ │ ├── scripts.rs
│ │ ├── styles.rs
│ │ └── template.rs
│ ├── indexer/
│ │ ├── lexical_generation.rs
│ │ ├── memoization.rs
│ │ ├── mod.rs
│ │ ├── parallel_wal_shadow.rs
│ │ ├── redact_secrets.rs
│ │ ├── refresh_ledger.rs
│ │ ├── responsiveness.rs
│ │ └── semantic.rs
│ ├── lib.rs
│ ├── main.rs
│ ├── model/
│ │ ├── cli_error_kind.rs
│ │ ├── conversation_packet.rs
│ │ ├── mod.rs
│ │ ├── packet_audit.rs
│ │ └── types.rs
│ ├── pages/
│ │ ├── analytics.rs
│ │ ├── archive_config.rs
│ │ ├── attachments.rs
│ │ ├── bundle.rs
│ │ ├── config_input.rs
│ │ ├── confirmation.rs
│ │ ├── deploy_cloudflare.rs
│ │ ├── deploy_github.rs
│ │ ├── docs.rs
│ │ ├── encrypt.rs
│ │ ├── errors.rs
│ │ ├── export.rs
│ │ ├── fts.rs
│ │ ├── key_management.rs
│ │ ├── mod.rs
│ │ ├── password.rs
│ │ ├── patterns.rs
│ │ ├── preview.rs
│ │ ├── profiles.rs
│ │ ├── qr.rs
│ │ ├── redact.rs
│ │ ├── secret_scan.rs
│ │ ├── size.rs
│ │ ├── summary.rs
│ │ ├── verify.rs
│ │ └── wizard.rs
│ ├── pages_assets/
│ │ ├── attachments.js
│ │ ├── auth.js
│ │ ├── coi-detector.js
│ │ ├── conversation.js
│ │ ├── crypto_worker.js
│ │ ├── database.js
│ │ ├── index.html
│ │ ├── password-strength.js
│ │ ├── router.js
│ │ ├── search.js
│ │ ├── session.js
│ │ ├── settings.js
│ │ ├── share.js
│ │ ├── stats.js
│ │ ├── storage.js
│ │ ├── styles.css
│ │ ├── sw-register.js
│ │ ├── sw.js
│ │ ├── viewer.js
│ │ ├── virtual-list.js
│ │ └── virtual-list.test.html
│ ├── perf_evidence.rs
│ ├── policy_registry.rs
│ ├── query_cost_planner.rs
│ ├── raw_mirror.rs
│ ├── search/
│ │ ├── ann_index.rs
│ │ ├── asset_state.rs
│ │ ├── canonicalize.rs
│ │ ├── daemon_client.rs
│ │ ├── embedder.rs
│ │ ├── embedder_registry.rs
│ │ ├── fastembed_embedder.rs
│ │ ├── fastembed_reranker.rs
│ │ ├── hash_embedder.rs
│ │ ├── mod.rs
│ │ ├── model_download.rs
│ │ ├── model_manager.rs
│ │ ├── policy.rs
│ │ ├── query.rs
│ │ ├── readiness.rs
│ │ ├── reranker.rs
│ │ ├── reranker_registry.rs
│ │ ├── semantic_manifest.rs
│ │ ├── tantivy.rs
│ │ ├── two_tier_search.rs
│ │ └── vector_index.rs
│ ├── sources/
│ │ ├── config.rs
│ │ ├── index.rs
│ │ ├── install.rs
│ │ ├── interactive.rs
│ │ ├── mod.rs
│ │ ├── probe.rs
│ │ ├── provenance.rs
│ │ ├── setup.rs
│ │ └── sync.rs
│ ├── storage/
│ │ ├── mod.rs
│ │ └── sqlite.rs
│ ├── topology_budget.rs
│ ├── tui_asciicast.rs
│ ├── ui/
│ │ ├── analytics_charts.rs
│ │ ├── app.rs
│ │ ├── components/
│ │ │ ├── breadcrumbs.rs
│ │ │ ├── export_modal.rs
│ │ │ ├── help_strip.rs
│ │ │ ├── mod.rs
│ │ │ ├── palette.rs
│ │ │ ├── pills.rs
│ │ │ ├── theme.rs
│ │ │ ├── toast.rs
│ │ │ └── widgets.rs
│ │ ├── data.rs
│ │ ├── ftui_adapter.rs
│ │ ├── mod.rs
│ │ ├── shortcuts.rs
│ │ ├── style_system.rs
│ │ ├── theme.rs
│ │ ├── time_parser.rs
│ │ ├── trace.rs
│ │ └── tui.rs
│ └── update_check.rs
├── test-results/
│ ├── no_mock_allowlist.json
│ └── no_mock_audit.md
└── tests/
├── .beads/
│ ├── .gitignore
│ ├── config.yaml
│ └── metadata.json
├── _probe_mot85.rs
├── accessibility/
│ └── axe-core.test.js
├── agent_detection_completeness.rs
├── atomic_swap_publish_crash_window.rs
├── bakeoff_harness.rs
├── canonicalize_equivalence.proptest-regressions
├── canonicalize_equivalence.rs
├── card_defaults_wallclock_ab.rs
├── cli_diag.rs
├── cli_dispatch_coverage.rs
├── cli_doctor.rs
├── cli_index.rs
├── cli_model_lifecycle_contract.rs
├── cli_refresh_contract.rs
├── cli_robot.rs
├── cli_search_semantic_flags.rs
├── cli_stats_source_filter.rs
├── cli_status.rs
├── concurrent_search.rs
├── connector_aider.rs
├── connector_amp.rs
├── connector_chatgpt.rs
├── connector_claude.rs
├── connector_claude_code_conformance.rs
├── connector_clawdbot.rs
├── connector_clawdbot_conformance.rs
├── connector_cline.rs
├── connector_codex.rs
├── connector_copilot.rs
├── connector_copilot_cli.rs
├── connector_crush.rs
├── connector_cursor.rs
├── connector_factory.rs
├── connector_gemini.rs
├── connector_kimi.rs
├── connector_openclaw.rs
├── connector_opencode.rs
├── connector_pi_agent.rs
├── connector_qwen.rs
├── connector_vibe.rs
├── cross_workstream_integration.rs
├── crypto_vectors.rs
├── daemon_client_integration.rs
├── deploy_cloudflare.rs
├── deploy_github.rs
├── docker/
│ ├── Dockerfile.sshd
│ └── entrypoint.sh
├── docs/
│ ├── help.rs
│ ├── mod.rs
│ └── readme.rs
├── doctor_e2e_runner.rs
├── doctor_fixture_factory.rs
├── e2e/
│ ├── accessibility/
│ │ ├── aria-live.spec.ts
│ │ ├── axe-core.spec.ts
│ │ ├── keyboard-nav.spec.ts
│ │ └── visual-preferences.spec.ts
│ ├── capabilities/
│ │ └── browser-apis.spec.ts
│ ├── cloudflare/
│ │ └── cloudflare-smoke.spec.ts
│ ├── encryption/
│ │ └── password-flow.spec.ts
│ ├── export/
│ │ ├── html-export-e2e.spec.ts
│ │ └── pages-pipeline-e2e.spec.ts
│ ├── exports/
│ │ ├── setup-metadata.json
│ │ ├── test-basic.html
│ │ ├── test-encrypted.html
│ │ ├── test-large.html
│ │ ├── test-no-cdn.html
│ │ ├── test-tool-calls.html
│ │ └── test-unicode.html
│ ├── interactivity/
│ │ ├── collapsible.spec.ts
│ │ ├── copy-clipboard.spec.ts
│ │ ├── search.spec.ts
│ │ └── theme-toggle.spec.ts
│ ├── mobile/
│ │ ├── performance.spec.ts
│ │ ├── responsive-layout.spec.ts
│ │ ├── touch-navigation.spec.ts
│ │ └── virtual-keyboard.spec.ts
│ ├── offline/
│ │ ├── cdn-fallback.spec.ts
│ │ ├── network-transitions.spec.ts
│ │ └── service-worker-cache.spec.ts
│ ├── pages_preview/
│ │ ├── bundle/
│ │ │ ├── private/
│ │ │ │ ├── integrity-fingerprint.txt
│ │ │ │ └── master-key.json
│ │ │ └── site/
│ │ │ ├── .nojekyll
│ │ │ ├── README.md
│ │ │ ├── attachments.js
│ │ │ ├── auth.js
│ │ │ ├── coi-detector.js
│ │ │ ├── config.json
│ │ │ ├── conversation.js
│ │ │ ├── crypto_worker.js
│ │ │ ├── database.js
│ │ │ ├── index.html
│ │ │ ├── integrity.json
│ │ │ ├── robots.txt
│ │ │ ├── search.js
│ │ │ ├── session.js
│ │ │ ├── settings.js
│ │ │ ├── site.json
│ │ │ ├── styles.css
│ │ │ ├── sw-register.js
│ │ │ ├── sw.js
│ │ │ ├── viewer.js
│ │ │ └── virtual-list.js
│ │ ├── db/
│ │ │ ├── agent_search.db-shm
│ │ │ └── agent_search.db-wal
│ │ ├── encrypt/
│ │ │ └── config.json
│ │ └── preview-server.log
│ ├── preview/
│ │ └── opfs-service-worker.spec.ts
│ ├── print/
│ │ └── print-preview.spec.ts
│ ├── rendering/
│ │ └── basic-render.spec.ts
│ ├── reporters/
│ │ └── jsonl-reporter.ts
│ └── setup/
│ ├── global-setup.ts
│ ├── global-teardown.ts
│ └── test-utils.ts
├── e2e_cli_flows.rs
├── e2e_deploy.rs
├── e2e_error_recovery.rs
├── e2e_filters.rs
├── e2e_full_integration.rs
├── e2e_health.rs
├── e2e_index_tui.rs
├── e2e_install_easy.rs
├── e2e_jsonl_schema_test.rs
├── e2e_large_dataset.rs
├── e2e_lexical_fail_open.rs
├── e2e_multi_connector.rs
├── e2e_pages.rs
├── e2e_search_index.rs
├── e2e_semantic_backfill_robot.rs
├── e2e_semantic_search.rs
├── e2e_sources.rs
├── e2e_ssh_sources.rs
├── e2e_tui_smoke_flows.rs
├── e2e_two_tier_search.rs
├── fixture_helpers.rs
├── fixtures/
│ ├── README.md
│ ├── amp/
│ │ └── thread-001.json
│ ├── chatgpt_real/
│ │ └── conversations-real/
│ │ ├── conv-conversation-id.json
│ │ ├── conv-multipart.json
│ │ └── conv-structured-parts.json
│ ├── claude_code_real/
│ │ └── projects/
│ │ └── -test-project/
│ │ └── agent-test123.jsonl
│ ├── claude_project/
│ │ └── projectA/
│ │ └── .claude.json
│ ├── cli_contract/
│ │ ├── api_version.json
│ │ ├── capabilities.json
│ │ └── introspect.json
│ ├── cline/
│ │ └── task1/
│ │ ├── api_conversation_history.json
│ │ ├── task_metadata.json
│ │ └── ui_messages.json
│ ├── codex_real/
│ │ └── sessions/
│ │ └── 2025/
│ │ └── 11/
│ │ ├── 25/
│ │ │ └── rollout-test.jsonl
│ │ └── 26/
│ │ └── rollout-tool-call.jsonl
│ ├── connectors/
│ │ └── MANIFEST.json
│ ├── copilot/
│ │ ├── cli_prompt_output_unicode.events.jsonl
│ │ ├── cli_truncated_resume.events.jsonl
│ │ └── legacy_history_human.json
│ ├── cursor/
│ │ ├── headers_only_workspace_file_uri.json
│ │ ├── headers_only_workspace_project_dir.json
│ │ └── headers_only_workspace_vscode_remote_uri.json
│ ├── gemini/
│ │ └── hash123/
│ │ └── chats/
│ │ └── session-test.json
│ ├── golden/
│ │ ├── detection_result.json
│ │ ├── normalized_conversation.json
│ │ ├── normalized_conversation_minimal.json
│ │ ├── normalized_message.json
│ │ └── normalized_snippet.json
│ ├── html_export/
│ │ ├── edge_cases/
│ │ │ ├── all_message_types.jsonl
│ │ │ ├── empty_session.jsonl
│ │ │ ├── large_session.jsonl
│ │ │ ├── single_message.jsonl
│ │ │ └── unicode_heavy.jsonl
│ │ ├── malformed/
│ │ │ ├── invalid_json.jsonl
│ │ │ ├── missing_fields.jsonl
│ │ │ ├── truncated.jsonl
│ │ │ └── wrong_types.jsonl
│ │ ├── mod.rs
│ │ └── real_sessions/
│ │ ├── aider_bugfix.jsonl
│ │ ├── amp_data_pipeline.jsonl
│ │ ├── chatgpt_react_help.jsonl
│ │ ├── claude_code_auth_fix.jsonl
│ │ ├── cline_vscode_setup.jsonl
│ │ ├── codex_api_design.jsonl
│ │ ├── cursor_refactoring.jsonl
│ │ ├── factory_code_generation.jsonl
│ │ ├── gemini_debugging.jsonl
│ │ ├── opencode_rust_cli.jsonl
│ │ └── pi_agent_personal_assistant.jsonl
│ ├── install/
│ │ ├── coding-agent-search
│ │ ├── coding-agent-search-vtest-linux-x86_64.tar.gz.sha256
│ │ └── coding-agent-search-vtest-windows-x86_64.zip.sha256
│ ├── message_grouping/
│ │ ├── README.md
│ │ ├── claude_session.jsonl
│ │ ├── codex_session.jsonl
│ │ ├── cursor_session.jsonl
│ │ ├── edge_cases.jsonl
│ │ └── opencode_session.jsonl
│ ├── models/
│ │ ├── README.md
│ │ ├── config.json
│ │ ├── model.onnx
│ │ ├── model.onnx.placeholder
│ │ ├── special_tokens_map.json
│ │ ├── tokenizer.json
│ │ ├── tokenizer_config.json
│ │ ├── xenova-ms-marco-minilm-l6-v2-int8/
│ │ │ ├── checksums.sha256
│ │ │ ├── config.json
│ │ │ ├── model.onnx
│ │ │ ├── special_tokens_map.json
│ │ │ ├── tokenizer.json
│ │ │ └── tokenizer_config.json
│ │ └── xenova-paraphrase-minilm-l3-v2-int8/
│ │ ├── checksums.sha256
│ │ ├── config.json
│ │ ├── model.onnx
│ │ ├── special_tokens_map.json
│ │ ├── tokenizer.json
│ │ └── tokenizer_config.json
│ ├── opencode_json/
│ │ ├── message/
│ │ │ └── ses_test1/
│ │ │ ├── msg_test1.json
│ │ │ └── msg_test2.json
│ │ ├── part/
│ │ │ ├── msg_test1/
│ │ │ │ └── part1.json
│ │ │ └── msg_test2/
│ │ │ └── part1.json
│ │ └── session/
│ │ └── proj1/
│ │ └── ses_test1.json
│ ├── pages_verify/
│ │ ├── missing_required/
│ │ │ └── site/
│ │ │ ├── .nojekyll
│ │ │ ├── auth.js
│ │ │ ├── config.json
│ │ │ ├── index.html
│ │ │ ├── robots.txt
│ │ │ ├── styles.css
│ │ │ ├── sw.js
│ │ │ └── viewer.js
│ │ ├── missing_required_no_viewer/
│ │ │ └── site/
│ │ │ ├── .nojekyll
│ │ │ ├── auth.js
│ │ │ ├── config.json
│ │ │ ├── index.html
│ │ │ ├── robots.txt
│ │ │ ├── styles.css
│ │ │ └── sw.js
│ │ ├── secret_leak/
│ │ │ └── site/
│ │ │ ├── .nojekyll
│ │ │ ├── auth.js
│ │ │ ├── config.json
│ │ │ ├── index.html
│ │ │ ├── recovery-secret.txt
│ │ │ ├── robots.txt
│ │ │ ├── styles.css
│ │ │ ├── sw.js
│ │ │ └── viewer.js
│ │ ├── unencrypted/
│ │ │ └── site/
│ │ │ ├── .nojekyll
│ │ │ ├── auth.js
│ │ │ ├── config.json
│ │ │ ├── index.html
│ │ │ ├── integrity.json
│ │ │ ├── robots.txt
│ │ │ ├── styles.css
│ │ │ ├── sw.js
│ │ │ └── viewer.js
│ │ └── valid/
│ │ └── site/
│ │ ├── .nojekyll
│ │ ├── auth.js
│ │ ├── config.json
│ │ ├── index.html
│ │ ├── integrity.json
│ │ ├── robots.txt
│ │ ├── styles.css
│ │ ├── sw.js
│ │ └── viewer.js
│ ├── pi_agent/
│ │ └── sessions/
│ │ └── --test-project--/
│ │ └── 2024-01-15T10-30-00-000Z_abc12345-1234-5678-9abc-def012345678.jsonl
│ └── sources/
│ └── probe/
│ ├── README.md
│ ├── empty_index_host.json
│ ├── indexed_host.json
│ ├── no_cass_host.json
│ ├── not_indexed_host.json
│ ├── unknown_status_host.json
│ └── unreachable_host.json
├── frankensqlite_compat_gates.rs
├── frankensqlite_concurrent_stress.rs
├── fs_errors.rs
├── fsqlite_repro.rs
├── ftui_harness_snapshots.rs
├── golden/
│ ├── PROVENANCE.md
│ ├── html_export/
│ │ ├── basic_export.html.golden
│ │ └── encrypted_export.html.golden
│ ├── log/
│ │ └── memo_trace.json.golden
│ ├── metamorphic/
│ │ ├── agent_filter_breakdown.json
│ │ ├── case_invariance.json
│ │ ├── corpus_shape.json
│ │ ├── days_filter_staircase.json
│ │ └── limit_prefix_ordering.json
│ ├── regression/
│ │ └── claude_indexed_search_matrix.json
│ ├── robot/
│ │ ├── api_version.json.golden
│ │ ├── api_version_shape.json.golden
│ │ ├── capabilities.json.golden
│ │ ├── capabilities_shape.json.golden
│ │ ├── diag.json.golden
│ │ ├── diag_quarantine.json.golden
│ │ ├── diag_shape.json.golden
│ │ ├── doctor.json.golden
│ │ ├── doctor_quarantine.json.golden
│ │ ├── doctor_shape.json.golden
│ │ ├── error_envelope_kinds.json.golden
│ │ ├── export_html_shape.json.golden
│ │ ├── health.json.golden
│ │ ├── health_semantic_backfill_wait.json.golden
│ │ ├── health_semantic_progress.json.golden
│ │ ├── health_shape.json.golden
│ │ ├── introspect.json.golden
│ │ ├── introspect_shape.json.golden
│ │ ├── models_check_update_not_installed_shape.json.golden
│ │ ├── models_status.json.golden
│ │ ├── models_status_shape.json.golden
│ │ ├── models_verify_not_acquired_shape.json.golden
│ │ ├── quarantine_summary_shape.json.golden
│ │ ├── search_robot.json.golden
│ │ ├── search_robot_shape.json.golden
│ │ ├── sessions_missing_db_shape.json.golden
│ │ ├── stats_full_payload.json.golden
│ │ ├── stats_full_payload_shape.json.golden
│ │ ├── stats_missing_db.json.golden
│ │ ├── stats_missing_db_shape.json.golden
│ │ ├── status_quarantine.json.golden
│ │ ├── status_quarantine_full.json.golden
│ │ ├── status_semantic_backfill_wait.json.golden
│ │ ├── status_semantic_progress.json.golden
│ │ └── status_shape.json.golden
│ └── robot_docs/
│ ├── analytics.txt.golden
│ ├── commands.txt.golden
│ ├── contracts.txt.golden
│ ├── env.txt.golden
│ ├── examples.txt.golden
│ ├── exit-codes.txt.golden
│ ├── guide.txt.golden
│ ├── paths.txt.golden
│ ├── robot_help.txt.golden
│ ├── schemas.txt.golden
│ ├── sources.txt.golden
│ └── wrap.txt.golden
├── golden_error_envelope.rs
├── golden_fuzz_corpus.rs
├── golden_memo_trace.rs
├── golden_metamorphic_search.rs
├── golden_readiness.rs
├── golden_regression_search.rs
├── golden_robot_docs.rs
├── golden_robot_json.rs
├── html_export/
│ └── html_export_encryption.test.js
├── html_export_e2e.rs
├── html_export_integration.rs
├── indexer_memoization_policy.rs
├── indexer_tantivy.rs
├── install_scripts.rs
├── lifecycle_matrix.rs
├── load_archive_size.rs
├── load_concurrent.rs
├── logging.rs
├── memory_tests.rs
├── metamorphic_agent_detection.rs
├── metamorphic_html_export.rs
├── metamorphic_introspect_schema.rs
├── metamorphic_search.rs
├── metamorphic_stats.rs
├── multi_source_integration.rs
├── package.json
├── pages_accessibility_e2e.rs
├── pages_bundle.rs
├── pages_error_handling_e2e.rs
├── pages_export.rs
├── pages_export_golden.rs
├── pages_export_integration.rs
├── pages_fts.rs
├── pages_master_e2e.rs
├── pages_pipeline_e2e.rs
├── pages_preview_integration.rs
├── pages_verify.rs
├── pages_wizard.rs
├── parse_errors.rs
├── perf_e2e.rs
├── perf_evidence_replay.rs
├── perf_proptest.rs
├── performance/
│ ├── assertions.js
│ ├── decrypt-timing.test.js
│ ├── lighthouse.config.js
│ ├── memory-profiler.test.js
│ ├── mobile-decrypt.test.js
│ ├── package.json
│ ├── run_perf.js
│ ├── scroll-performance.test.js
│ └── search-latency.test.js
├── playwright.config.ts
├── ranking.rs
├── recovery/
│ ├── disaster.rs
│ ├── key_slots.rs
│ └── mod.rs
├── regex_cache.rs
├── regression_behavioral.rs
├── regression_coding_agent_session_search_dyoj4.rs
├── regression_coding_agent_session_search_vmtms.rs
├── repro_noise_filter.rs
├── reproduce_query_bug.rs
├── reproduction_sync_oscillation.rs
├── robot_perf.rs
├── search_asset_harness.rs
├── search_asset_simulation.rs
├── search_caching.rs
├── search_filters.rs
├── search_frankensearch_integration.rs
├── search_latency_under_indexing.rs
├── search_pipeline.rs
├── search_wildcard_fallback.rs
├── secret_scan.rs
├── security_nonce.rs
├── semantic_integration.rs
├── serialization_compat.rs
├── serialization_golden.rs
├── setup_workflow.rs
├── snapshots/
│ ├── cassapp_baseline_detail_find_closed.snap
│ ├── cassapp_baseline_detail_find_current_match.snap
│ ├── cassapp_baseline_detail_find_empty_query.snap
│ ├── cassapp_baseline_detail_find_no_matches.snap
│ ├── cassapp_baseline_detail_tabs_json_active.snap
│ ├── cassapp_baseline_detail_tabs_messages_active.snap
│ ├── cassapp_baseline_detail_tabs_raw_active.snap
│ ├── cassapp_baseline_detail_tabs_snippets_active.snap
│ ├── cassapp_baseline_pills_active_inactive.snap
│ ├── cassapp_baseline_role_gutters_messages.snap
│ ├── cassapp_command_palette.snap
│ ├── cassapp_consent_dialog.snap
│ ├── cassapp_consent_dialog_downloading.snap
│ ├── cassapp_empty_narrow.snap
│ ├── cassapp_empty_wide.snap
│ ├── cassapp_help_overlay.snap
│ ├── cassapp_help_overlay_narrow.snap
│ ├── cassapp_help_strip_pinned.snap
│ ├── cassapp_multiple_toasts.snap
│ ├── cassapp_results_narrow.snap
│ ├── cassapp_results_wide.snap
│ ├── cassapp_search_surface_active_filters.snap
│ ├── cassapp_search_surface_breakpoint_medium.snap
│ ├── cassapp_search_surface_breakpoint_narrow.snap
│ ├── cassapp_search_surface_breakpoint_wide.snap
│ ├── cassapp_search_surface_structure_default.snap
│ ├── cassapp_search_surface_theme_dark.snap
│ ├── cassapp_search_surface_theme_high_contrast.snap
│ ├── cassapp_search_surface_theme_light.snap
│ ├── cassapp_single_toast.snap
│ ├── ftui_block_paragraph_baseline.snap
│ ├── ftui_list_selection_baseline.snap
│ ├── ftui_styled_text_baseline.ansi.snap
│ ├── tui_flows__keystroke_driven_command_palette.snap
│ ├── tui_flows__search_open_find_in_detail.snap
│ └── tui_flows__search_to_detail_snippets_tab.snap
├── ssh_sync_integration.rs
├── ssh_test_helper.rs
├── storage.rs
├── storage_frankensqlite_parity.rs
├── storage_migration_safety.rs
├── streaming_index.rs
├── tests/
│ └── test-results/
│ └── e2e/
│ └── placeholder
├── tsconfig.json
├── tui_flows.rs
├── tui_headless_smoke.rs
├── tui_integration_smoke.rs
├── tui_smoke.rs
├── ui_components.rs
├── ui_footer.rs
├── ui_help.rs
├── ui_hotkeys.rs
├── ui_snap.rs
├── upgrade/
│ ├── compatibility.rs
│ ├── migration.rs
│ └── mod.rs
├── util/
│ ├── doctor_e2e_runner.rs
│ ├── doctor_fixture.rs
│ ├── e2e_log.rs
│ ├── mod.rs
│ ├── search_asset_simulation.rs
│ └── timeout.rs
├── vectors/
│ ├── aes_gcm.yaml
│ ├── argon2.yaml
│ └── hkdf.yaml
└── watch_e2e.rs
================================================
FILE CONTENTS
================================================
================================================
FILE: .beads/.gitignore
================================================
# SQLite databases
*.db
*.db?*
*.db-journal
*.db-wal
*.db-shm
# Daemon runtime files
daemon.lock
daemon.log
daemon.pid
bd.sock
sync-state.json
.sync.lock
# Local version tracking (prevents upgrade notification spam after git ops)
.local_version
# Legacy database files
db.sqlite
bd.db
# Merge artifacts (temporary files from 3-way merge)
beads.base.jsonl
beads.base.meta.json
beads.left.jsonl
beads.left.meta.json
beads.right.jsonl
beads.right.meta.json
# Keep JSONL exports and config (source of truth for git)
!issues.jsonl
!metadata.json
!config.json
# Local history backups
.br_history/
# bv (beads viewer) lock file
.bv.lock
================================================
FILE: .beads/README.md
================================================
# Beads - AI-Native Issue Tracking
Welcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-native tool designed to live directly in your codebase alongside your code.
## What is Beads?
Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git.
**Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
## Quick Start
### Essential Commands
```bash
# Create new issues
bd create "Add user authentication"
# View all issues
bd list
# View issue details
bd show <issue-id>
# Update issue status
bd update <issue-id> --status in_progress
bd update <issue-id> --status done
# Sync with git remote
bd sync
```
### Working with Issues
Issues in Beads are:
- **Git-native**: Stored in `.beads/issues.jsonl` and synced like code
- **AI-friendly**: CLI-first design works perfectly with AI coding agents
- **Branch-aware**: Issues can follow your branch workflow
- **Always in sync**: Auto-syncs with your commits
## Why Beads?
✨ **AI-Native Design**
- Built specifically for AI-assisted development workflows
- CLI-first interface works seamlessly with AI coding agents
- No context switching to web UIs
🚀 **Developer Focused**
- Issues live in your repo, right next to your code
- Works offline, syncs when you push
- Fast, lightweight, and stays out of your way
🔧 **Git Integration**
- Automatic sync with git commits
- Branch-aware issue tracking
- Intelligent JSONL merge resolution
## Get Started with Beads
Try Beads in your own projects:
```bash
# Install Beads
curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
# Initialize in your repo
bd init
# Create your first issue
bd create "Try out Beads"
```
## Learn More
- **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs)
- **Quick Start Guide**: Run `bd quickstart`
- **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples)
## Repo-Specific Agent Defaults
This repository has legacy historical issue IDs mixed with current
`coding_agent_session_search-*` IDs. To keep agent workflows stable:
1. Start triage with `bv --robot-triage` or `bv --robot-next`.
2. Use `br ready --json` to confirm actionable work.
3. Prefer explicit stale-safe flags on `br` commands in multi-agent sessions.
Workspace config (`.beads/config.yaml`) sets:
- `issue_prefix: coding_agent_session_search`
- `allow_legacy_ids: true`
- `no-auto-import: true`
Runtime note: even with `no-auto-import: true`, some `br` invocations can still
hit prefix-mismatch checks in this mixed-ID workspace. Use explicit flags for
reliable operation:
- `br ready --json --no-auto-import --allow-stale`
- `br show <id> --json --no-auto-import --allow-stale`
- `br list --status=open --json --no-auto-import --allow-stale`
This preserves access to legacy records while avoiding auto-import validation
paths that can fail in shared sessions.
---
*Beads: Issue tracking that moves at the speed of thought* ⚡
================================================
FILE: .beads/cli-robot-enhancements.md
================================================
# CLI & Robot Mode Enhancements
## Overview
This bead collection focuses on making `cass` more powerful and useful for both
human CLI users and AI agents consuming robot mode output. All improvements are
**self-contained** (no external APIs, embeddings, or LLM dependencies) and build
on existing Tantivy/SQLite infrastructure.
### Design Philosophy
1. **Robot mode is the API** - AI agents will call `cass search --robot`, so this
must be rock-solid, predictable, and well-documented
2. **CLI should be powerful without TUI** - Users shouldn't need to enter TUI for
quick searches; pipe-friendly output matters
3. **Query language should be expressive** - Boolean operators and field syntax
unlock power-user and agent workflows
4. **Backward compatibility** - Existing robot mode consumers shouldn't break
### Success Criteria
- AI agents can reliably parse all robot mode output
- Complex queries are expressible in a single command
- Output is predictable and scriptable
- No performance regression
---
## Dependency Graph (REVISED)
```
┌─────────────────────────────────────────────────────────────────────┐
│ ALREADY IMPLEMENTED │
│ cre.1: Quiet/Verbose (--quiet, --verbose exist) │
│ cre.7: Date Range Flags (--today, --week, --since, --until exist) │
└─────────────────────────────────────────────────────────────────────┘
Independent beads (can be done in parallel):
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ cre.2: Robot │ │ cre.3: Human │ │ cre.9: Diagnose │
│ Output Enhance │ │ Output (--disp) │ │ (health focus) │
└────────┬────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ cre.4: Boolean │ ←── Independent, high value
│ Query Operators │
└────────┬────────┘
│
▼
┌─────────────────┐
│ cre.5: Field │ ←── P2: nice-to-have (--agent/--workspace exist)
│ Syntax │
└────────┬────────┘
│
▼
┌─────────────────┐
│ cre.10: Dynamic │ ←── P3: polish
│ Shell Complete │
└─────────────────┘
Standalone beads (no dependencies):
┌─────────────────┐ ┌─────────────────┐
│ cre.6: Export │ │ cre.8: Context │
│ (simplified) │ │ -C (like grep) │
└─────────────────┘ └─────────────────┘
```
---
## BEAD cre.1: Quiet/Verbose Output Modes
**Priority:** P0 (foundational)
**Complexity:** Low
**Dependencies:** None
**Status:** ✅ MOSTLY IMPLEMENTED
### What Already Exists
The following flags are already implemented in `src/lib.rs`:
- `--quiet / -q` - Sets log filter to "warn" level
- `--verbose / -v` - Sets log filter to "debug" level (just added)
The tracing crate already provides `info!`, `debug!`, `warn!` macros that respect
the log filter.
### Remaining Work
1. **Verify behavior**: Ensure robot mode outputs clean JSON on stdout with no
stderr pollution (except actual errors)
2. **Update documentation**: Add --verbose to robot-docs output
3. **Test coverage**: Add tests for output stream behavior
### Subtasks
- [x] cre.1.1: Add --quiet and --verbose to clap args (DONE)
- [x] cre.1.2: Uses existing tracing macros (info!/debug!/warn!) - DONE
- [ ] cre.1.3: Verify robot mode stdout/stderr separation
- [ ] cre.1.4: Update --robot-help to mention --verbose
- [ ] cre.1.5: Add tests for output stream behavior
---
## BEAD cre.2: Enhanced Robot Mode Output
**Priority:** P0 (critical for AI agents)
**Complexity:** Medium
**Dependencies:** None (cre.1 mostly done)
### Background
Robot mode (`--robot`) outputs JSON for programmatic consumption. Current format:
```json
{"query": "...", "limit": 10, "offset": 0, "count": 5, "hits": [...]}
```
### What Already Exists
- `--offset N` and `--limit N` for pagination (already implemented)
- JSON output with pretty printing
- Error output as JSON to stderr
### Issues to Address
1. **No JSONL option** for streaming large result sets
2. **No timing metadata** (elapsed_ms)
3. **No indication of wildcard fallback** being used
### Requirements (REVISED - backward compatible)
1. **Format options**: `--robot-format json|jsonl|compact`
- `json`: Current behavior (default, unchanged)
- `jsonl`: One JSON object per line (streaming-friendly)
- `compact`: Current structure, minimal whitespace
2. **Optional metadata**: `--robot-meta` flag adds extra fields
```json
{
"query": "...",
"limit": 10,
"offset": 0,
"count": 5,
"elapsed_ms": 45, // NEW (only with --robot-meta)
"wildcard_fallback": false, // NEW (only with --robot-meta)
"hits": [...]
}
```
Note: Fields added at top level, not wrapped in "meta" to avoid breaking change.
3. **JSONL format**: Each result on its own line
```
{"_meta": {"query": "...", "count": 5, "elapsed_ms": 45}}
{"score": 0.95, "agent": "claude", ...}
{"score": 0.87, "agent": "codex", ...}
```
First line is metadata (prefixed with `_meta` key), then each hit.
**REMOVED** (not worth complexity):
- `--fields` flag - agents can filter JSON themselves; adds parsing complexity
- Metadata envelope wrapper - would break existing consumers
### Implementation Notes
```rust
#[derive(clap::ValueEnum, Default)]
enum RobotFormat {
#[default]
Json, // Pretty JSON (current)
Jsonl, // Streaming, one object per line
Compact, // Single-line JSON
}
// In search output:
if robot_meta {
payload["elapsed_ms"] = elapsed.as_millis();
payload["wildcard_fallback"] = wildcard_fallback;
}
```
### Subtasks
- [ ] cre.2.1: Add --robot-format enum (json, jsonl, compact)
- [ ] cre.2.2: Add --robot-meta flag for extended metadata
- [ ] cre.2.3: Implement JSONL streaming output with _meta header
- [ ] cre.2.4: Implement compact (minified) JSON output
- [ ] cre.2.5: Track and report elapsed_ms in robot output
- [ ] cre.2.6: Track and report wildcard_fallback in robot output
- [ ] cre.2.7: Update --robot-help with new options
- [ ] cre.2.8: Add tests for each format
---
## BEAD cre.3: Human-Readable CLI Output Modes
**Priority:** P1
**Complexity:** Medium
**Dependencies:** None (independent of robot mode)
### Background
Users shouldn't need to enter TUI for quick searches. A readable CLI output mode
enables workflows like:
```bash
cass search "auth bug" --display table | head -20
cass search "config" --display lines | wc -l
cass search "error" --display markdown >> notes.md
```
### What Already Exists
- Basic text output format (score/agent/workspace/snippet)
- `--color auto|always|never` flag
### Requirements (REVISED - use --display to avoid conflict with --robot-format)
1. **Flag name**: `--display` (not `--format`, which is for robot mode)
2. **Default format**: Current behavior (separator lines + multi-field output)
3. **Table format**: `--display table`
```
SCORE AGENT WORKSPACE TITLE
0.95 claude /home/user/project Fix auth flow
0.87 codex /home/user/other Refactor login
```
4. **Lines format**: `--display lines` (compact, one-liner per result)
```
[0.95] claude:/home/user/project "Fix auth flow" - First 60 chars...
```
5. **Markdown format**: `--display markdown`
```markdown
## Search: "auth bug"
### Fix auth flow
- **Agent:** claude
- **Score:** 0.95
- **Path:** /home/user/project/.claude/...
> Snippet text here...
```
6. **Terminal width awareness**: Auto-truncate to fit terminal
### Implementation Notes
```rust
#[derive(clap::ValueEnum, Default)]
enum DisplayFormat {
#[default]
Default, // Current separator-based format
Table, // Aligned columns
Lines, // One-liner per result
Markdown, // For documentation
}
// Add to search command
#[arg(long, value_enum, default_value_t = DisplayFormat::Default)]
display: DisplayFormat,
```
Reuse `contextual_snippet` from TUI for snippet generation.
### Subtasks
- [ ] cre.3.1: Add --display enum (default, table, lines, markdown)
- [ ] cre.3.2: Implement table formatter with column width calculation
- [ ] cre.3.3: Implement lines (compact one-line) formatter
- [ ] cre.3.4: Implement markdown formatter
- [ ] cre.3.5: Auto-detect terminal width for truncation
- [ ] cre.3.6: Ensure --display is ignored when --robot is set
- [ ] cre.3.7: Add tests for each format
---
## BEAD cre.4: Boolean Query Operators
**Priority:** P1 (high value for power users and agents)
**Complexity:** Medium-High (requires proper parser)
**Dependencies:** None
### Background
Current query handling in `sanitize_query` strips all non-alphanumeric characters
except `*`. This prevents boolean expressions. Tantivy supports boolean queries
natively; we just need to parse and construct them.
### Requirements
1. **AND operator**: `auth AND login` (both terms required)
- Implicit AND is default for multiple terms (current behavior)
- Explicit AND for clarity
2. **OR operator**: `error OR exception` (either term)
3. **NOT operator**: `config NOT deprecated`
- Also support `-term` syntax: `config -deprecated`
4. **Grouping**: `(auth OR login) AND error`
5. **Quoted phrases**: `"exact phrase match"`
- Use Tantivy PhraseQuery
6. **Backward compatibility**: Simple queries work unchanged
### Implementation Notes
Create a proper query parser using recursive descent or Pratt parsing.
Consider the `logos` crate for lexing. The output is Tantivy `Box<dyn Query>`.
**Query Grammar:**
```
query = or_expr
or_expr = and_expr (OR and_expr)*
and_expr = unary_expr (AND? unary_expr)* // AND is implicit between terms
unary_expr = NOT? primary
primary = TERM | PHRASE | WILDCARD | '(' query ')'
TERM = [a-zA-Z0-9_]+
PHRASE = '"' [^"]+ '"'
WILDCARD = '*'? TERM '*'?
```
```rust
enum ParsedQuery {
Term(String),
Phrase(Vec<String>),
And(Box<ParsedQuery>, Box<ParsedQuery>),
Or(Box<ParsedQuery>, Box<ParsedQuery>),
Not(Box<ParsedQuery>),
Wildcard(WildcardPattern),
}
fn parse_query(input: &str) -> Result<ParsedQuery, QueryParseError>;
fn to_tantivy_query(parsed: &ParsedQuery, schema: &Schema) -> Box<dyn Query>;
```
### Subtasks
- [ ] cre.4.1: Design and document query grammar
- [ ] cre.4.2: Implement lexer/tokenizer for query string
- [ ] cre.4.3: Implement recursive descent parser
- [ ] cre.4.4: Implement phrase query parsing ("quoted text")
- [ ] cre.4.5: Implement NOT and -term parsing
- [ ] cre.4.6: Implement grouping with parentheses
- [ ] cre.4.7: Convert ParsedQuery to Tantivy BooleanQuery
- [ ] cre.4.8: Preserve existing wildcard support (*term*)
- [ ] cre.4.9: Add comprehensive parser tests (20+ cases)
- [ ] cre.4.10: Update help text with query syntax docs
---
## BEAD cre.5: Field-Specific Search Syntax
**Priority:** P2 (nice-to-have - CLI flags already cover main use cases)
**Complexity:** Medium
**Dependencies:** cre.4 (builds on boolean parser)
### Background
Users currently filter by agent/workspace via separate flags (`--agent`, `--workspace`).
Inline syntax like `agent:claude` is more ergonomic for complex queries but is
**not essential** since the flags work fine.
### What Already Exists
- `--agent <slug>` flag for filtering by agent
- `--workspace <path>` flag for filtering by workspace
### When This Becomes Valuable
The inline syntax is mainly useful when combined with boolean operators:
```bash
cass search "agent:claude AND (auth OR login)"
cass search "(agent:claude OR agent:codex) AND error"
```
Without boolean operators (cre.4), field syntax is redundant with existing flags.
### Requirements (simplified)
1. **Field prefixes**: `field:value` syntax
- `agent:claude` - filter by agent
- `workspace:/path` - filter by workspace path
- `title:foo` - search only in title field
- `content:bar` - search only in content field
2. **Negation**: `-agent:codex` (exclude agent)
3. **Integration with boolean operators**:
`agent:claude AND (auth OR login)`
**DEFERRED** (add complexity, limited value):
- Multiple values (`agent:claude,codex`) - just use OR
- Wildcards in values - use existing * syntax
- File pattern matching - too niche
### Implementation Notes
Integrate into the boolean parser from cre.4 rather than extracting beforehand.
```rust
// Extend ParsedQuery enum:
enum ParsedQuery {
// ... existing variants ...
Field { name: String, value: String, negated: bool },
}
```
### Subtasks
- [ ] cre.5.1: Define supported field names (agent, workspace, title, content)
- [ ] cre.5.2: Extend lexer to recognize field:value tokens
- [ ] cre.5.3: Extend parser to handle field prefixes
- [ ] cre.5.4: Handle negated field prefixes (-agent:)
- [ ] cre.5.5: Convert field nodes to Tantivy TermQuery
- [ ] cre.5.6: Add tests for field syntax
- [ ] cre.5.7: Document field syntax in help
---
## BEAD cre.6: Conversation Export
**Priority:** P2
**Complexity:** Low
**Dependencies:** None (standalone feature)
### Background
Users want to export conversations for documentation, sharing, or archival.
Currently must view in TUI or parse JSON output manually.
### Requirements (simplified - single export first)
1. **Export command**: `cass export <source-path>`
- Takes a source_path from search results
- Outputs to stdout by default
2. **Output flag**: `--output file.md` writes to file instead of stdout
3. **Formats**: `--format markdown|text|json`
- `markdown` (default): Role headers, code blocks preserved
- `text`: Plain text, no formatting
- `json`: Raw JSON structure
4. **Markdown output**:
```markdown
# Conversation: Fix authentication bug
**Agent:** claude
**Workspace:** /home/user/myproject
**Date:** 2024-01-15 14:30
---
## User
I need help fixing the auth bug...
## Assistant
I'll help you fix that. Let me look at the code...
```python
def authenticate(user):
...
```
```
5. **Robot mode**: `cass export <path> --robot` outputs JSON
**DEFERRED** (add later if needed):
- Batch export (`--all --output-dir`) - adds complexity
- Template customization - YAGNI
### Implementation Notes
Reuse conversation loading from existing connectors and SQLite storage.
```rust
// In Commands enum:
Export {
path: PathBuf,
#[arg(long)]
output: Option<PathBuf>,
#[arg(long, value_enum, default_value_t = ExportFormat::Markdown)]
format: ExportFormat,
#[arg(long)]
robot: bool,
}
```
### Subtasks
- [ ] cre.6.1: Add export subcommand to CLI
- [ ] cre.6.2: Implement conversation loading by source path
- [ ] cre.6.3: Implement markdown formatter for conversations
- [ ] cre.6.4: Implement text (plain) formatter
- [ ] cre.6.5: Handle code block detection/preservation
- [ ] cre.6.6: Add --output flag for file output
- [ ] cre.6.7: Add --robot flag for JSON output
- [ ] cre.6.8: Add tests for export formats
---
## BEAD cre.7: Date Range CLI Flags
**Priority:** N/A
**Complexity:** N/A
**Dependencies:** N/A
**Status:** ✅ ALREADY IMPLEMENTED
### What Already Exists (in src/lib.rs lines 134-150)
The following date filtering flags are already implemented:
1. **Shortcut flags**:
- `--today` - Filter to today only
- `--yesterday` - Filter to yesterday only
- `--week` - Filter to last 7 days
- `--days N` - Filter to last N days
2. **Absolute dates**:
- `--since YYYY-MM-DD` or `--since YYYY-MM-DDTHH:MM:SS`
- `--until YYYY-MM-DD` or `--until YYYY-MM-DDTHH:MM:SS`
The `TimeFilter` struct and `parse_datetime_str` function handle ISO 8601 parsing.
### Potential Future Enhancement
If natural language parsing is desired ("3 days ago", "last week"), that would
be a new feature. But the current implementation covers 95% of use cases.
### Subtasks
- [x] cre.7.1: Add --since and --until CLI flags (DONE)
- [x] cre.7.2: Implement ISO 8601 date parsing (DONE)
- [x] cre.7.3: Add --today, --week, --days shortcuts (DONE)
- [x] cre.7.4: Integrate with SearchFilters (DONE)
- [ ] cre.7.5: (OPTIONAL) Natural language date parsing
- [ ] cre.7.6: Include resolved dates in robot mode metadata (part of cre.2)
---
## BEAD cre.8: Search Context (-C)
**Priority:** P2
**Complexity:** Medium
**Dependencies:** None (standalone feature)
### Background
Like `grep -C`, users want to see messages before/after the match to understand
context. Current results show only the matching message.
### Requirements
1. **Context flag**: `--context N` or `-C N`
- Show N messages before and after match
2. **Directional**: `--before N` (`-B`), `--after N` (`-A`)
3. **Output format**: Clearly delineate context vs match
```
[context] User: Earlier message...
[context] Assistant: Previous response...
[MATCH] User: The matching message
[context] Assistant: Following response...
```
4. **Robot mode**: Include context messages in output
```json
{
"match": {...},
"context_before": [...],
"context_after": [...]
}
```
### Performance Consideration
Loading full conversations for every result could be slow. Options:
1. Only fetch context for top N results (default 5)
2. Make context opt-in per result (TUI already does this in detail view)
3. Lazy load context only when --context is specified
Recommended: Option 3 (only load when -C flag is present)
### Implementation Notes
Use `msg_idx` field from SearchHit to locate match position, then load
surrounding messages from SQLite.
```rust
// Add to search command:
#[arg(short = 'C', long)]
context: Option<usize>,
#[arg(short = 'B', long)]
before: Option<usize>,
#[arg(short = 'A', long)]
after: Option<usize>,
```
### Subtasks
- [ ] cre.8.1: Add -C, -B, -A flags to search command
- [ ] cre.8.2: Implement context loading from SQLite by conversation_id + msg_idx
- [ ] cre.8.3: Extract context window around match
- [ ] cre.8.4: Format context in CLI text output
- [ ] cre.8.5: Format context in robot mode JSON
- [ ] cre.8.6: Handle edge cases (match at start/end of conversation)
- [ ] cre.8.7: Add tests for context extraction
---
## BEAD cre.9: Diagnostic Mode
**Priority:** P2
**Complexity:** Low
**Dependencies:** None
### Background
When things go wrong, users need visibility into index health. The existing
`cass stats` command shows counts, but doesn't check health or detect issues.
### Differentiation from `cass stats`
| Feature | `cass stats` | `cass diagnose` |
|------------------------|----------------------|----------------------|
| Document counts | ✅ | ✅ |
| Agent breakdown | ✅ | ✅ |
| Workspace breakdown | ✅ | ❌ |
| Index readable check | ❌ | ✅ **NEW** |
| Schema version match | ❌ | ✅ **NEW** |
| Connector detection | ❌ | ✅ **NEW** |
| Issue detection | ❌ | ✅ **NEW** |
| Fix suggestions | ❌ | ✅ **NEW** |
| Disk usage | ❌ | ✅ **NEW** |
**Key insight**: `stats` is for "how much data do I have?" while `diagnose` is
for "is everything working correctly?"
### Requirements
1. **Diagnose command**: `cass diagnose`
2. **Health checks** (the main value):
- Can Tantivy index be opened?
- Can SQLite database be opened?
- Does schema version match expected?
- Are connector roots accessible?
- Any orphaned data (index vs SQLite mismatch)?
3. **Disk usage**:
- Index size on disk
- SQLite file size
- Total data directory size
4. **Issue detection with suggestions**:
```
⚠️ ISSUE: Schema version mismatch (expected v4, found v3)
💡 FIX: Run `cass index --full --force-rebuild` to rebuild index
⚠️ ISSUE: Claude Code directory not found (~/.claude)
💡 FIX: This is normal if you don't use Claude Code
```
5. **Robot mode**: `cass diagnose --robot` outputs JSON
### Implementation Notes
```rust
#[derive(Serialize)]
struct DiagnosticReport {
status: DiagnosticStatus, // Healthy, Warning, Error
checks: Vec<HealthCheck>,
disk_usage: DiskUsage,
connectors: Vec<ConnectorStatus>,
issues: Vec<DiagnosticIssue>,
}
#[derive(Serialize)]
struct DiagnosticIssue {
severity: Severity, // Warning, Error
message: String,
suggestion: Option<String>,
}
```
### Subtasks
- [ ] cre.9.1: Add diagnose subcommand
- [ ] cre.9.2: Implement index health check (can open?)
- [ ] cre.9.3: Implement SQLite health check (can open?)
- [ ] cre.9.4: Implement schema version check
- [ ] cre.9.5: Implement connector root detection
- [ ] cre.9.6: Implement disk usage calculation
- [ ] cre.9.7: Format human-readable output with colors
- [ ] cre.9.8: Format robot mode JSON output
- [ ] cre.9.9: Add fix suggestions for common issues
---
## BEAD cre.10: Enhanced Shell Completions
**Priority:** P3
**Complexity:** Medium
**Dependencies:** cre.5
### Background
clap_complete provides static completions. Context-aware completions (agent names,
workspace paths) would significantly improve CLI UX.
### Requirements
1. **Dynamic agent completion**: Complete agent names from index
```bash
cass search agent:<TAB>
# claude codex gemini cline
```
2. **Workspace completion**: Complete known workspace paths
```bash
cass search workspace:<TAB>
# /home/user/project1 /home/user/project2
```
3. **Field name completion**: Complete valid field prefixes
```bash
cass search <TAB>
# agent: workspace: title: content: file:
```
4. **Support major shells**: bash, zsh, fish
### Implementation Notes
Implement a `cass completions --generate-dynamic` that queries the index
and outputs completion data. Shell scripts source this.
For zsh, use `_describe` with dynamically fetched values.
### Subtasks
- [ ] cre.10.1: Implement agent name retrieval from index
- [ ] cre.10.2: Implement workspace path retrieval from index
- [ ] cre.10.3: Create dynamic completion data generator
- [ ] cre.10.4: Implement bash completion script with dynamic lookup
- [ ] cre.10.5: Implement zsh completion script with dynamic lookup
- [ ] cre.10.6: Implement fish completion script with dynamic lookup
- [ ] cre.10.7: Document shell completion setup
- [ ] cre.10.8: Add caching for completion data (avoid slow lookups)
---
## Implementation Order (REVISED)
Based on the review, many features already exist. Here's the updated plan:
### Already Done ✅
- **cre.1**: Quiet/Verbose modes (--quiet, --verbose exist)
- **cre.7**: Date range flags (--today, --week, --since, --until exist)
### Phase 1: Robot Mode Polish (cre.2)
- Add --robot-format (json, jsonl, compact)
- Add --robot-meta for extended metadata
- Track elapsed_ms and wildcard_fallback
- **Value**: Highest impact for AI agents
### Phase 2: Boolean Queries (cre.4)
- Implement boolean parser (AND, OR, NOT, phrases)
- **Value**: Unlocks power-user and agent workflows
- **Complexity**: Medium-high, but foundational
### Phase 3: Human CLI Formats (cre.3)
- Add --display (table, lines, markdown)
- **Value**: Users don't need TUI for quick searches
### Phase 4: Diagnostics (cre.9)
- Add `cass diagnose` with health checks
- **Value**: Self-service troubleshooting
### Phase 5: Context & Export (cre.8, cre.6)
- Add -C for context (like grep)
- Add `cass export` for markdown export
- **Value**: Better understanding and documentation
### Phase 6: Advanced Query (cre.5)
- Add field:value inline syntax
- **Value**: Ergonomic when combined with boolean operators
### Phase 7: Polish (cre.10)
- Dynamic shell completions
- **Value**: Nice DX improvement
---
## Testing Strategy
1. **Unit tests** for query parsing, formatters, health checks
2. **Integration tests** for CLI flag combinations
3. **Snapshot tests** for output format consistency
4. **Robot mode contract tests** ensuring JSON schema stability
5. **E2E tests** for diagnose command
---
## Documentation Updates Required
- [ ] Update --robot-help with --robot-format and --robot-meta
- [ ] Update README.md with boolean query syntax
- [ ] Add QUERY_SYNTAX.md with full documentation
- [ ] Update man page
- [ ] Add examples to --help output for new flags
================================================
FILE: .beads/config.yaml
================================================
sync-branch: beads-sync
allow_legacy_ids: true
issue_prefix: coding_agent_session_search
no-auto-import: 'true'
================================================
FILE: .beads/interactions.jsonl
================================================
================================================
FILE: .beads/issues.jsonl
================================================
{"id":"coding_agent_session_search-001","title":"TUI style system spec","description":"Create docs/tui_style_spec.md: palettes (dark/light), role colors, spacing scales, gradients, motion rules, density presets, iconography grid, animation opt-out policy.","notes":"Spec drafted and checked against acceptance (colors, gradients, density, motion, accessibility, opt-out, perf guards).","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.488928Z","updated_at":"2025-11-29T06:16:18.675764Z","closed_at":"2025-11-29T06:16:18.675773Z","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-002","title":"Interaction model & keymap RFC","description":"Audit current shortcuts; define normalized chords and fallbacks; document rationale and terminal-compat constraints.","notes":"Keymap/interaction RFC drafted; bindings, fallbacks, safety. Ready for implementation in 003/004/005.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.506467Z","updated_at":"2025-11-29T06:16:24.354878Z","closed_at":"2025-11-29T06:16:24.354887Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-002","depends_on_id":"coding_agent_session_search-001","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-003","title":"Command palette (Ctrl+P) with fuzzy actions","description":"Non-blocking palette; categories; last-5 history; keyboard+mouse; safe when no matches.","notes":"Palette overlay complete: actions wired (theme/density/help toggle, time presets, saved view save/load slots 1-9), persisted state, help auto-hide aware, clippy/fmt/check clean.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.509223Z","updated_at":"2025-11-29T07:11:48.205006Z","closed_at":"2025-11-29T07:11:48.205073Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-003","depends_on_id":"coding_agent_session_search-002","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-004","title":"Contextual help strip","description":"Focus-aware shortcut strip; idle fade; no flicker; respects nowrap/minimal mode.","notes":"Contextual help strip done: two-line footer with focus/palette/modal-aware shortcuts, idle auto-hide with pin, persisted pin flag.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.458444Z","updated_at":"2025-11-29T07:11:56.104075Z","closed_at":"2025-11-29T07:11:56.104085Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-004","depends_on_id":"coding_agent_session_search-002","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-005","title":"Editable filter pills","description":"Pills for agent/workspace/time/ranking; inline edit/delete; keyboard+mouse parity; syncs with query state.","notes":"Filter pills complete: render agent/ws/time; click opens edit modes; backspace clears last filter; click hit-testing; state synced; formatting/check/clippy clean.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.462363Z","updated_at":"2025-11-29T07:12:08.339965Z","closed_at":"2025-11-29T07:12:08.340008Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-005","depends_on_id":"coding_agent_session_search-001","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-005","depends_on_id":"coding_agent_session_search-002","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-006","title":"Breadcrumb / locality bar","description":"Header Agent › Workspace › Date (and ranking); crumb choosers; single source of truth with pills.","notes":"Implementing breadcrumb/locality bar in TUI (Agent › Workspace › Date › Ranking) with mouse/keyboard actions, synced to filters.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.467014Z","updated_at":"2025-12-01T20:45:56.602460Z","closed_at":"2025-12-01T20:45:56.602460Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-006","depends_on_id":"coding_agent_session_search-005","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-007","title":"Result drill-in modal","description":"Overlay full thread with role gutters; quick actions (open, copy path, copy snippet); preserves selection; ESC-safe.","notes":"Released by BlueCastle due to file reservation conflict with OrangeCastle on tui.rs","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.451013Z","updated_at":"2025-11-30T05:28:00.074702Z","closed_at":"2025-11-30T05:28:00.074702Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-007","depends_on_id":"coding_agent_session_search-001","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-008","title":"Role-aware theming & gradients","description":"Apply role palettes; subtle gradients on headers/pills; adaptive borders by width; contrast-checked.","notes":"BlueCastle: Starting role-aware theming with palettes, gradients, adaptive borders","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.484134Z","updated_at":"2025-11-30T14:58:33.410813Z","closed_at":"2025-11-30T14:58:33.410813Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-008","depends_on_id":"coding_agent_session_search-001","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-009","title":"Density toggle (Compact/Cozy/Spacious)","description":"cycles density presets; persisted; size-aware defaults; works with wrap on/off.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.409176Z","updated_at":"2025-11-30T00:05:21.983784Z","closed_at":"2025-11-30T00:05:21.983784Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-009","depends_on_id":"coding_agent_session_search-001","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-009","depends_on_id":"coding_agent_session_search-002","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-00i65","title":"ibuuh.19.2: reclaimability + GC eligibility in diag --quarantine","description":"Sub-slice of coding_agent_session_search-ibuuh.19: add per-asset age, last-read, and safe-to-GC signals to cass diag --quarantine and freeze the JSON contract with a golden test.","status":"closed","priority":1,"issue_type":"task","created_at":"2026-04-23T18:38:24.196468726Z","created_by":"ubuntu","updated_at":"2026-04-23T18:47:06.404872803Z","closed_at":"2026-04-23T18:47:06.404487852Z","close_reason":"Extended cass diag --quarantine with per-asset age/last-read/GC eligibility signals and added a golden regression for the richer JSON surface.","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-010","title":"Syntax-highlighted snippets in results","description":"Highlight via syntect (or existing); bold hits, dim context; cached themes; auto-fallback on narrow/slow terminals.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.443549Z","updated_at":"2025-11-30T04:00:41.734853Z","closed_at":"2025-11-30T04:00:41.734853Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-010","depends_on_id":"coding_agent_session_search-001","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-011","title":"Icons & status badges","description":"Glyphs for agent/file/workspace; latency + cache badges; truncation- and no-color-safe.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.479321Z","updated_at":"2025-11-30T05:20:47.417317Z","closed_at":"2025-11-30T05:20:47.417317Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-011","depends_on_id":"coding_agent_session_search-001","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-011","depends_on_id":"coding_agent_session_search-010","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-012","title":"Indexer HUD + sparkline","description":"Footer micro-panel for phase/progress/rebuild + tiny throughput sparkline; respects quiet/minimal modes.","status":"closed","priority":2,"issue_type":"task","assignee":"RedRiver","created_at":"2025-11-29T06:00:53.501718Z","updated_at":"2025-12-17T05:08:36.334816Z","closed_at":"2025-12-17T04:16:42.922578Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-012","depends_on_id":"coding_agent_session_search-002","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-013","title":"Staggered reveal animations","description":"Lightweight fade/slide on top results; env flag to disable; no frame drops on 80x24.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.493265Z","updated_at":"2025-12-01T01:39:54.814260Z","closed_at":"2025-12-01T01:39:54.814260Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-013","depends_on_id":"coding_agent_session_search-001","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-014","title":"Smart empty states","description":"Contextual empty copy + quick actions (today, wildcard, index); safe for robot/json modes; no focus traps.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.471109Z","updated_at":"2025-11-30T04:08:10.280013Z","closed_at":"2025-11-30T04:08:10.280013Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-014","depends_on_id":"coding_agent_session_search-002","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-015","title":"Multi-select + bulk actions","description":"Space toggles selection; A bulk menu (open, copy paths, export JSON, tag); visual count; robot-safe.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.436989Z","updated_at":"2025-11-30T06:22:22.984218Z","closed_at":"2025-11-30T06:22:22.984218Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-015","depends_on_id":"coding_agent_session_search-002","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-015","depends_on_id":"coding_agent_session_search-007","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-016","title":"Saved views (slots 1–9)","description":"Ctrl+<n> saves filters/ranking; Shift+<n> recalls; persisted; toast on save/load.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.430295Z","updated_at":"2025-12-15T06:23:14.974940Z","closed_at":"2025-12-02T02:29:38.497763Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-016","depends_on_id":"coding_agent_session_search-005","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-016","depends_on_id":"coding_agent_session_search-006","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}],"comments":[{"id":147,"issue_id":"coding_agent_session_search-016","author":"jemanuel","text":"Starting work: Implementing saved views feature with Ctrl+n save, Shift+n recall, persistence, and toast notifications.","created_at":"2025-12-15T06:23:15Z"}]}
{"id":"coding_agent_session_search-017","title":"Per-pane search (/)","description":"Local filter within results/detail; highlight matches; no Tantivy hit; ESC clears.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.447504Z","updated_at":"2025-11-30T04:00:45.168366Z","closed_at":"2025-11-30T04:00:45.168366Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-017","depends_on_id":"coding_agent_session_search-002","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-018","title":"Update assistant banner","description":"Startup/hourly release check; banner with U upgrade, s skip, d notes; remembers skip-this-version; offline-friendly messaging; no auto-download.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.498278Z","updated_at":"2025-12-01T02:06:33.415149Z","closed_at":"2025-12-01T02:06:33.415149Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-018","depends_on_id":"coding_agent_session_search-002","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-019","title":"First-run / anytime tour (?)","description":"Single-page overlay covering layout, key binds, data dirs, update toggle; dismissible and replayable.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T06:00:53.455037Z","updated_at":"2025-12-01T02:17:09.895356Z","closed_at":"2025-12-01T02:17:09.895356Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-019","depends_on_id":"coding_agent_session_search-002","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-020","title":"Local UI metrics (privacy-safe)","description":"Emit local-only metrics to trace/log (palette use, pill edits, highlight timing, latency badge, HUD phases, animation opt-outs); gated by env flag; no PII.","status":"closed","priority":2,"issue_type":"task","assignee":"RedRiver","created_at":"2025-11-29T06:00:53.475355Z","updated_at":"2025-12-17T05:08:36.336165Z","closed_at":"2025-12-17T04:22:14.924499Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-020","depends_on_id":"coding_agent_session_search-003","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-020","depends_on_id":"coding_agent_session_search-005","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-020","depends_on_id":"coding_agent_session_search-010","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-020","depends_on_id":"coding_agent_session_search-011","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-020","depends_on_id":"coding_agent_session_search-012","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-020","depends_on_id":"coding_agent_session_search-013","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-06kc","title":"[DEFERRED] Opt 9: Approximate Nearest Neighbor (IVF/HNSW)","description":"## Status: DEFERRED\n\nThis optimization is intentionally deferred. See rationale below.\n\n## Overview (from PLAN Section 6 and 8)\nReplace O(n) linear scan with O(√n) approximate nearest neighbor search using IVF (Inverted File Index) or HNSW (Hierarchical Navigable Small World).\n\n## Why Deferred\n\n### 1. Precision Concerns\nCASS is a precision-focused code search tool. Users expect exact results. Approximate search could return different results than exact search, which is unacceptable without explicit user opt-in.\n\n### 2. Complexity vs Benefit\n- Current optimizations (Opt 1-3) already achieve 20-30x speedup\n- 56ms → 2-3ms with exact search preserved\n- Additional speedup from ANN has diminishing returns\n\n### 3. Implementation Effort\n- HIGH effort: requires new index structure, rebuild logic, query path\n- Lower confidence than other optimizations\n- More testing burden for approximate equivalence\n\n## Future Implementation Notes\n\nIf implemented later:\n- **Require explicit opt-in**: `--approximate` flag\n- **Show confidence/recall metrics** to user\n- **Index format**: IVF with 100-1000 clusters or HNSW with M=16, efConstruction=200\n- **Libraries**: Consider `hnsw` crate or implement from scratch\n\n## Opportunity Matrix Score\n| Metric | Value |\n|--------|-------|\n| Impact | O(n) → O(√n) |\n| Confidence | LOW |\n| Effort | HIGH |\n| Score | 2.0 (lowest) |\n\n## Dependencies\n- Should only consider after Opt 1-8 are complete and measured\n- Part of Epic: coding_agent_session_search-rq7z","notes":"Implemented foundation for HNSW-based ANN:\n- Added hnsw_rs dependency\n- Created src/search/ann_index.rs with HnswIndex wrapper\n- Added --approximate flag to Search command (CLI)\n- Added --build-hnsw flag to Index command (CLI)\n- Integrated HNSW building into semantic indexer\n- Updated IndexOptions struct to include build_hnsw field\n- All tests pass\n\nRemaining work:\n- Wire up --approximate flag to use HNSW at search time\n- Implement proper HNSW loading (currently placeholder)\n- Add recall/confidence metrics display\n- Test with real datasets","status":"closed","priority":4,"issue_type":"task","created_at":"2026-01-10T03:29:48.555464Z","created_by":"ubuntu","updated_at":"2026-01-28T18:17:21.940290Z","closed_at":"2026-01-28T18:17:21.940219Z","close_reason":"done","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-09h","title":"TST.7 Unit: CLI introspect schemas (no mocks)","description":"Add tests to assert clap-derived command/arg schemas match introspect JSON; cover hidden/help exclusion, enum/path/int detection, repeatable options, defaults; rely on real clap metadata, no mocks.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-01T18:56:47.532198Z","updated_at":"2025-12-01T19:14:07.950119Z","closed_at":"2025-12-01T19:14:07.950119Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-09h","depends_on_id":"coding_agent_session_search-yln.1","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-0a8y3","title":"ibuuh.10.1: lexical fail-open E2E regression","description":"Sub-bead of coding_agent_session_search-ibuuh.10. Adds a single integration test at tests/e2e_lexical_fail_open.rs that uses the real cass CLI to prove the 'semantic missing → lexical fail-open' contract end-to-end.\n\nTest shape (per dispatch):\n- Use base_cmd pattern (HOME=temp, XDG_DATA_HOME=temp/.local/share, XDG_CONFIG_HOME=temp/.config, CODEX_HOME=temp/.codex, CODING_AGENT_SEARCH_NO_UPDATE_PROMPT=1).\n- Set CASS_IGNORE_SOURCES_CONFIG=1 so we don't scan the user's real sources.\n- Build a canonical DB via `cass index --full --json` against seeded Codex fixtures.\n- Request hybrid/semantic search via `cass search <keyword> --robot --mode hybrid --data-dir ...` with NO semantic assets present.\n- Assert the robot JSON `meta` (or equivalent nested field) reports fallback_mode='lexical' — i.e., the planner demoted to lexical rather than erroring.\n- Assert status is success and at least one hit is returned.\n\n~40 lines of test code.\n\nValue: pins the user-visible 'search works even when semantic tier is missing' contract that ibuuh.10 AC3 calls out (fallback metadata truthfulness).","status":"closed","priority":1,"issue_type":"task","owner":"cc_2","created_at":"2026-04-23T16:33:35.314186191Z","created_by":"ubuntu","updated_at":"2026-04-24T02:44:05.979094526Z","closed_at":"2026-04-24T02:44:05.978675982Z","close_reason":"Test passes on commit 45f0552b (see commit f15c6129); regression gate in place.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-0a8y3","depends_on_id":"coding_agent_session_search-ibuuh.10","type":"parent-child","created_at":"2026-04-23T16:33:41.687778609Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-0b5","title":"Amp Connector Tests (Actual Implementation)","status":"closed","priority":0,"issue_type":"task","assignee":"RedRiver","created_at":"2025-12-17T05:47:58.746590Z","updated_at":"2025-12-17T05:50:26.624488Z","closed_at":"2025-12-17T05:50:26.624488Z","close_reason":"Closed","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-0go","title":"P7.3 Integration tests for multi-source indexing","description":"# P7.3 Integration tests for multi-source indexing\n\n## Overview\nIntegration tests that verify the full indexing pipeline handles multiple\nsources correctly, including provenance attribution and deduplication.\n\n## Test Cases\n\n### Multi-Source Indexing\n```rust\n#[tokio::test]\nasync fn test_index_local_and_remote_sources() {\n let temp_dir = tempdir().unwrap();\n let db = setup_test_db(&temp_dir).await;\n \n // Create local session fixture\n let local_sessions = create_fixture_sessions(&temp_dir, \"local\", 5);\n \n // Create remote session fixture (simulating synced data)\n let remote_sessions = create_fixture_sessions(&temp_dir, \"remote/laptop\", 3);\n \n // Index both\n let mut indexer = Indexer::new(&db);\n indexer.add_root(&local_sessions, Provenance::local());\n indexer.add_root(&remote_sessions, Provenance::remote(\"laptop\".into()));\n indexer.index_all().await.unwrap();\n \n // Verify counts\n let stats = db.get_stats().await.unwrap();\n assert_eq!(stats.total_conversations, 8);\n assert_eq!(stats.local_conversations, 5);\n assert_eq!(stats.remote_conversations, 3);\n}\n\n#[tokio::test]\nasync fn test_search_filters_by_source() {\n // ... setup with mixed sources\n \n // Search all\n let all_results = searcher.search(\"test query\", None).await.unwrap();\n assert_eq!(all_results.len(), 8);\n \n // Search local only\n let local_results = searcher.search(\"test query\", Some(SourceFilter::Local)).await.unwrap();\n assert_eq!(local_results.len(), 5);\n assert!(local_results.iter().all(|r| !r.provenance.is_remote()));\n \n // Search remote only\n let remote_results = searcher.search(\"test query\", Some(SourceFilter::Remote)).await.unwrap();\n assert_eq!(remote_results.len(), 3);\n assert!(remote_results.iter().all(|r| r.provenance.is_remote()));\n}\n```\n\n### Incremental Indexing\n```rust\n#[tokio::test]\nasync fn test_incremental_index_new_remote_source() {\n // Index initial local sessions\n let mut indexer = Indexer::new(&db);\n indexer.add_root(&local_sessions, Provenance::local());\n indexer.index_all().await.unwrap();\n \n let initial_count = db.conversation_count().await.unwrap();\n \n // Simulate adding new remote source\n indexer.add_root(&remote_sessions, Provenance::remote(\"laptop\".into()));\n indexer.index_incremental().await.unwrap();\n \n let final_count = db.conversation_count().await.unwrap();\n assert_eq!(final_count, initial_count + remote_sessions.len());\n}\n```\n\n## Dependencies\n- Requires P2.2 (multi-root indexing)\n- Requires P1.3 (provenance in storage)\n\n## Acceptance Criteria\n- [ ] Multi-source indexing preserves provenance\n- [ ] Source filtering works in search\n- [ ] Incremental indexing adds new sources correctly\n- [ ] Stats reflect source distribution","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-16T06:12:25.565102Z","updated_at":"2025-12-16T21:15:01.262023Z","closed_at":"2025-12-16T21:15:01.262023Z","close_reason":"Added 9 comprehensive integration tests covering multi-source indexing with provenance preservation, source filtering (local, remote, specific), incremental indexing, and stats/distribution queries. All acceptance criteria met.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-0go","depends_on_id":"coding_agent_session_search-1mv","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-0go","depends_on_id":"coding_agent_session_search-d4b","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-0h4cx","title":"[LOW] conformance: introspect response_schemas omits doctor, models-status, models-verify, models-check-update","description":"cass introspect --json ships a response_schemas block with 12 surfaces (api-version, capabilities, diag, health, index, introspect, search, sessions, state, stats, status, view) — alphabetical and golden-pinned via introspect_shape.json.golden. README line 104 claims this block \"enumerates every schema\". But four advertised JSON surfaces are absent: doctor --json, models status --json, models verify --json, models check-update --json. README line 103 separately lists them as first-class JSON contract surfaces. So an agent that reads response_schemas to drive schema-aware parsing (the intended pattern) will silently lack schemas for doctor/models-*. Consequence: agents cannot introspect-validate these surfaces before consuming them; any regression in doctor or models-* JSON shape only surfaces downstream as parse failures. Fix direction: extend the response_schemas enumeration in src/ (the source of truth for introspect) to cover doctor, models-status, models-verify, models-check-update; ensure introspect_shape.json.golden regenerates with the new entries.","status":"closed","priority":3,"issue_type":"bug","created_at":"2026-04-24T19:18:34.978983976Z","created_by":"ubuntu","updated_at":"2026-04-24T19:55:50.217067856Z","closed_at":"2026-04-24T19:55:49.912697390Z","source_repo":".","compaction_level":0,"original_size":0,"comments":[{"id":769,"issue_id":"coding_agent_session_search-0h4cx","author":"ubuntu","text":"Closed by commit 8d0b31ef. Added 4 schema entries to build_response_schemas in src/lib.rs: doctor, models-status, models-verify, models-check-update. Regenerated introspect.json.golden (+219 LOC) and introspect_shape.json.golden (+494 LOC) to pin the extended enumeration. response_schema_tests and the 3 tests that exercised the surface stayed green.","created_at":"2026-04-24T19:55:50Z"}]}
{"id":"coding_agent_session_search-0jt","title":"TST.11 Integration: search/index e2e (real fixtures, logging)","description":"Scripted flow: temp data-dir, cass index --full, cass search hello --json; assert hits/match_type/aggregations; cover watch-once env path; capture trace-file + logs (no mocks).","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-01T18:57:19.046306Z","updated_at":"2025-12-15T06:23:14.977938Z","closed_at":"2025-12-02T03:50:33.402863Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-0jt","depends_on_id":"coding_agent_session_search-bhk","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-0k0sk","title":"[HIGH] atomic-swap publish retains every prior lexical index indefinitely under .lexical-publish-backups/","description":"INTRODUCED BY: commit 109560e5 (feat(indexer): atomic swap publish for staged lexical index with retained-backup rollback).\n\nFILE: src/indexer/mod.rs\n\npublish_staged_lexical_index() at line ~10720 renames the prior live lexical index into <index_parent>/.lexical-publish-backups/<unique-name> on every successful publish (both the Linux renameat2(RENAME_EXCHANGE) path at lines ~10742-10767 and the non-Linux rename-based path at lines ~10772-10805). unique_lexical_publish_backup_path always produces a fresh path, so every publish adds ONE more retained copy of the entire prior Tantivy index tree. Nothing ever reads the backups_dir to prune. Verified via rg on src/ tests/: only ensure_lexical_publish_backups_dir and unique_lexical_publish_backup_path touch that directory, and neither removes anything.\n\nIMPACT:\n- Real cass corpora see ~50k+ docs per index per project (per project memory and ibuuh.29 E2E fixtures). A single Tantivy index at that scale is multi-hundred MB to multi-GB on disk.\n- Over N rebuilds (full + stale-refresh + watch-triggered), disk usage under .lexical-publish-backups/ grows linearly and unboundedly. No log or status surface warns the operator.\n- This silently regresses the user-visible promise of the original prior publish code, which deleted the old index.\n- Operators on small dev workstations (SSDs, laptops) will exhaust disk within days of heavy indexing, breaking all subsequent writes — rebuild attempts fail with 'database is busy' / 'No space left' errors.\n\nEXISTING COVERAGE GAPS:\n- Neither test in the 109560e5 commit (publish_staged_lexical_index_replaces_live_index_and_retains_prior_backup, publish_staged_lexical_index_recovers_interrupted_backup_before_replacing_live_index) exercises a SECOND publish.\n- No test asserts a retention cap, age-based prune, or ability-to-disable-retention knob.\n\nPROPOSED FIX:\n1. Introduce a bounded retention policy: keep only the last K backups (K=1 by default, configurable via env such as CASS_LEXICAL_PUBLISH_BACKUP_RETENTION). After a successful publish + backup retention, prune older backups beyond the cap.\n2. Emit a structured tracing::info! event when a backup is pruned, including freed bytes so operators can correlate disk recovery.\n3. Add a regression test that performs 3 successive publishes and asserts the backup count stays bounded.\n\nRELATED:\n- Discovered during the test-green-gate cross-review for bead 3e3qg.6 on 2026-04-23.\n- Affects every code path that calls publish_staged_lexical_index (rebuild_tantivy_from_db_via_staged_shards and downstream callers).","status":"closed","priority":1,"issue_type":"bug","created_at":"2026-04-23T16:10:36.267590694Z","created_by":"ubuntu","updated_at":"2026-04-23T18:29:05.771940781Z","closed_at":"2026-04-23T18:29:05.771629698Z","close_reason":"Fixed in commit 2ae0018a: bounded retention for .lexical-publish-backups/ with CASS_LEXICAL_PUBLISH_BACKUP_RETENTION env knob (default 1, 0=disabled, N=keep-most-recent). New prune_lexical_publish_backups() runs after each successful publish, sorts by mtime newest-first, removes excess, emits structured tracing::info! with freed_bytes per pruned backup + final summary. Regression tests: _prunes_retained_backups_to_default_retention_cap (4 publishes with default cap 1 → exactly 1 retained) and _retention_cap_is_env_configurable (cap=0 and cap=3 with 5 publishes each → exactly 0 and 3 retained). Two existing serial tests updated to set env=2 internally to preserve their recovery-semantics invariants. All 10 publish_staged_lexical_index tests pass; prune failure is non-fatal (logged warn only) so publish never fails due to hygiene issues.","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-0ly","title":"P4 Inline filter chips","description":"Render filters as chips inside search bar; intuitive removal/edit; tests.","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-11-24T13:58:03.677572Z","updated_at":"2025-12-15T06:23:14.978911Z","closed_at":"2025-12-02T03:19:26.825366Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-0ly","depends_on_id":"coding_agent_session_search-1z2","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}],"comments":[{"id":148,"issue_id":"coding_agent_session_search-0ly","author":"ubuntu","text":"Kept P4 Inline filter chips epic (0ly). Deleted accidental duplicate epic pc9 and its tasks to avoid split tracking.","created_at":"2025-11-24T14:13:00Z"}]}
{"id":"coding_agent_session_search-0ly.3","title":"B4.1 Chips in search bar","description":"Render filters as chips inside bar; backspace removes last; Enter on empty edits last chip; help/legend reflect chips.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-24T14:18:33.077538Z","updated_at":"2025-11-24T14:19:11.424054Z","closed_at":"2025-11-24T14:19:11.424054Z","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-0ly.4","title":"B4.2 Chip tests","description":"UI component tests for chip rendering/removal/edit triggers.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-24T14:18:37.631869Z","updated_at":"2025-11-24T14:19:11.425776Z","closed_at":"2025-11-24T14:19:11.425776Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-0ly.4","depends_on_id":"coding_agent_session_search-0ly.3","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-0mn","title":"bd-installer-spec","description":"Write concise spec for UBS-style curl|bash installer: goals, UX, safety invariants, modes (normal/easy), checksum/signature policy, toolchain expectations","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-23T20:14:00.262736Z","updated_at":"2025-11-23T20:20:13.821531Z","closed_at":"2025-11-23T20:20:13.821531Z","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-0qjb","title":"SSH Operations Testing","description":"Test sync_source(), sync_path_rsync(), get_remote_home() with real SSH or mock containers. Part of epic mudc.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-06T00:21:40.410733Z","created_by":"jemanuel","updated_at":"2026-01-06T00:28:19.911004Z","closed_at":"2026-01-06T00:28:19.911004Z","close_reason":"Already implemented - tests/ssh_sync_integration.rs has comprehensive SSH tests, tests/ssh_test_helper.rs provides Docker-based SshTestServer infrastructure, Dockerfile.sshd provides the test SSH server","source_repo":".","compaction_level":0,"original_size":0,"labels":["testing"]}
{"id":"coding_agent_session_search-0uje","title":"[Task] Opt 1.2: Implement F16→F32 pre-conversion at load time","description":"# Task: Implement F16→F32 Pre-Conversion at Load Time\n\n## Objective\n\nModify `VectorIndex::load()` to convert F16 vectors to F32 at load time, eliminating per-query conversion overhead.\n\n## Implementation Steps\n\n1. **Modify VectorIndex::load()**\n - Location: `src/search/vector_index.rs`\n - In the match on `header.quantization`:\n - For `Quantization::F16`: Convert entire slab to F32\n - Store as `VectorStorage::F32(Vec<f32>)`\n\n2. **Code Changes**\n```rust\n// In VectorIndex::load()\nlet vectors = match header.quantization {\n Quantization::F16 => {\n let f16_slice = bytes_as_f16(&mmap[slab_start..slab_end])?;\n if env_disabled(\"CASS_F16_PRECONVERT\") {\n // Original behavior: keep F16\n VectorStorage::F16(f16_slice.to_vec())\n } else {\n // Optimized: pre-convert to F32\n let f32_slab: Vec<f32> = f16_slice.iter()\n .map(|v| f32::from(*v))\n .collect();\n VectorStorage::F32(f32_slab)\n }\n }\n Quantization::F32 => { /* unchanged */ }\n};\n```\n\n3. **Add env var check helper**\n```rust\nfn env_disabled(var: &str) -> bool {\n std::env::var(var).map(|v| v == \"0\").unwrap_or(false)\n}\n```\n\n4. **Update dot_product_at if needed**\n - May no longer need F16 branch in hot path\n - Or keep it for rollback path\n\n## Validation Checklist\n\n- [ ] Code compiles: `cargo check --all-targets`\n- [ ] Lints pass: `cargo clippy --all-targets -- -D warnings`\n- [ ] Format correct: `cargo fmt --check`\n- [ ] Existing tests pass: `cargo test`\n- [ ] New behavior correct: search results unchanged\n\n## Memory Trade-off Documentation\n\nDocument in code comments:\n- 2x memory for F16 indices (76.8 MB for 50k × 384 × 4-byte)\n- Load time increases (~10-20ms for conversion)\n- Query time decreases (~50%)\n\n## Dependencies\n\n- Requires completion of Opt 1.1 (audit task)","status":"closed","priority":0,"issue_type":"task","created_at":"2026-01-10T03:04:05.362024Z","created_by":"ubuntu","updated_at":"2026-01-11T02:54:24.499933Z","closed_at":"2026-01-11T02:54:24.499933Z","close_reason":"Completed","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-0uje","depends_on_id":"coding_agent_session_search-vhef","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-0ux6","title":"P6.2: Cross-Browser Testing","description":"# P6.2: Cross-Browser Testing\n\n## Goal\nVerify the web viewer functions correctly across all major browsers and platforms, ensuring users can access their encrypted archives regardless of their browser choice.\n\n## Background & Rationale\n\n### Why Cross-Browser Testing is Critical\n1. **WebCrypto Differences**: Subtle API differences between browser implementations\n2. **WASM Support**: sqlite-wasm behavior varies by browser\n3. **Service Worker**: Different caching and lifecycle behaviors\n4. **Web Worker**: Threading model differences\n5. **IndexedDB**: Storage quotas and behavior vary\n6. **UI Rendering**: CSS/layout differences\n\n### Target Browsers\n\n**Desktop (Latest 2 Major Versions):**\n- Chrome (Windows, macOS, Linux)\n- Firefox (Windows, macOS, Linux)\n- Safari (macOS only)\n- Edge (Windows, macOS)\n\n**Mobile:**\n- Safari iOS (iPhone, iPad)\n- Chrome Android\n- Firefox Android\n- Samsung Internet\n\n## Test Categories\n\n### 1. Core Functionality Tests\n\n```javascript\ndescribe(\"Cross-Browser Core\", () => {\n test(\"Password entry and decryption\", async () => {\n await page.goto(TEST_URL);\n await page.fill(\"#password-input\", TEST_PASSWORD);\n await page.click(\"#unlock-button\");\n await expect(page.locator(\".search-container\")).toBeVisible();\n });\n \n test(\"QR code scanning (camera mock)\", async () => {\n // Mock camera API\n await page.evaluate(() => {\n navigator.mediaDevices.getUserMedia = async () => mockVideoStream;\n });\n await page.click(\"#qr-scan-button\");\n await simulateQRDetection(TEST_QR_DATA);\n await expect(page.locator(\".search-container\")).toBeVisible();\n });\n \n test(\"Search and results display\", async () => {\n await unlock(page);\n await page.fill(\"#search-input\", \"test query\");\n await page.press(\"#search-input\", \"Enter\");\n await expect(page.locator(\".search-result\")).toHaveCount({ min: 1 });\n });\n \n test(\"Conversation viewing\", async () => {\n await unlock(page);\n await searchAndClick(page, \"test\");\n await expect(page.locator(\".conversation-content\")).toBeVisible();\n });\n});\n```\n\n### 2. WebCrypto API Tests\n\n```javascript\ndescribe(\"WebCrypto Compatibility\", () => {\n test(\"AES-GCM encryption available\", async () => {\n const result = await page.evaluate(async () => {\n try {\n const key = await crypto.subtle.generateKey(\n { name: \"AES-GCM\", length: 256 },\n true,\n [\"encrypt\", \"decrypt\"]\n );\n return { success: true, keyType: key.type };\n } catch (e) {\n return { success: false, error: e.message };\n }\n });\n expect(result.success).toBe(true);\n });\n \n test(\"PBKDF2 derivation works\", async () => {\n const result = await page.evaluate(async () => {\n const enc = new TextEncoder();\n const keyMaterial = await crypto.subtle.importKey(\n \"raw\",\n enc.encode(\"password\"),\n \"PBKDF2\",\n false,\n [\"deriveBits\"]\n );\n const bits = await crypto.subtle.deriveBits(\n {\n name: \"PBKDF2\",\n salt: enc.encode(\"salt\"),\n iterations: 100000,\n hash: \"SHA-256\"\n },\n keyMaterial,\n 256\n );\n return { success: true, length: bits.byteLength };\n });\n expect(result.success).toBe(true);\n expect(result.length).toBe(32);\n });\n \n test(\"SubtleCrypto timing attack mitigations\", async () => {\n // Verify constant-time comparison is used\n const timings = await page.evaluate(async () => {\n const times = [];\n for (let i = 0; i < 100; i++) {\n const start = performance.now();\n await attemptDecrypt(wrongKey);\n times.push(performance.now() - start);\n }\n return { mean: mean(times), stddev: stddev(times) };\n });\n // High variance would indicate timing leaks\n expect(timings.stddev / timings.mean).toBeLessThan(0.5);\n });\n});\n```\n\n### 3. sqlite-wasm Tests\n\n```javascript\ndescribe(\"SQLite WASM Compatibility\", () => {\n test(\"Database opens correctly\", async () => {\n const result = await page.evaluate(async () => {\n try {\n const db = await openDatabase(decryptedData);\n const tables = await db.exec(\"SELECT name FROM sqlite_master WHERE type='table'\");\n return { success: true, tableCount: tables.length };\n } catch (e) {\n return { success: false, error: e.message };\n }\n });\n expect(result.success).toBe(true);\n expect(result.tableCount).toBeGreaterThan(0);\n });\n \n test(\"FTS5 search works\", async () => {\n const result = await page.evaluate(async () => {\n const db = await openDatabase(decryptedData);\n const results = await db.exec(\"SELECT * FROM messages_fts WHERE messages_fts MATCH ?\", [\"test\"]);\n return { success: true, resultCount: results.length };\n });\n expect(result.success).toBe(true);\n });\n \n test(\"OPFS backend available (where supported)\", async () => {\n const hasOPFS = await page.evaluate(() => {\n return typeof navigator.storage !== \"undefined\" &&\n typeof navigator.storage.getDirectory === \"function\";\n });\n \n if (hasOPFS) {\n const result = await page.evaluate(async () => {\n try {\n const root = await navigator.storage.getDirectory();\n return { success: true };\n } catch (e) {\n return { success: false, error: e.message };\n }\n });\n expect(result.success).toBe(true);\n }\n });\n});\n```\n\n### 4. Service Worker Tests\n\n```javascript\ndescribe(\"Service Worker Compatibility\", () => {\n test(\"Service worker registers\", async () => {\n const result = await page.evaluate(async () => {\n if (!(\"serviceWorker\" in navigator)) {\n return { supported: false };\n }\n try {\n const reg = await navigator.serviceWorker.register(\"/sw.js\");\n return { supported: true, success: true, scope: reg.scope };\n } catch (e) {\n return { supported: true, success: false, error: e.message };\n }\n });\n if (result.supported) {\n expect(result.success).toBe(true);\n }\n });\n \n test(\"Offline access works\", async () => {\n await page.goto(TEST_URL);\n await unlock(page);\n \n // Simulate offline\n await page.context().setOffline(true);\n \n // Should still work from cache\n await page.reload();\n await expect(page.locator(\".search-container\")).toBeVisible();\n \n await page.context().setOffline(false);\n });\n \n test(\"COOP/COEP headers set correctly\", async () => {\n const response = await page.goto(TEST_URL);\n const headers = response.headers();\n \n expect(headers[\"cross-origin-opener-policy\"]).toBe(\"same-origin\");\n expect(headers[\"cross-origin-embedder-policy\"]).toBe(\"require-corp\");\n });\n});\n```\n\n### 5. Web Worker Tests\n\n```javascript\ndescribe(\"Web Worker Compatibility\", () => {\n test(\"Crypto worker loads\", async () => {\n const result = await page.evaluate(async () => {\n return new Promise((resolve) => {\n const worker = new Worker(\"/crypto-worker.js\");\n worker.onmessage = (e) => {\n if (e.data.type === \"ready\") {\n resolve({ success: true });\n worker.terminate();\n }\n };\n worker.onerror = (e) => {\n resolve({ success: false, error: e.message });\n worker.terminate();\n };\n });\n });\n expect(result.success).toBe(true);\n });\n \n test(\"Decryption happens off main thread\", async () => {\n const mainThreadBlocked = await page.evaluate(async () => {\n const start = performance.now();\n let blocked = false;\n \n const checkInterval = setInterval(() => {\n const now = performance.now();\n if (now - start > 100) {\n blocked = true;\n }\n }, 10);\n \n await decryptLargeArchive();\n clearInterval(checkInterval);\n \n return blocked;\n });\n \n // Main thread should not be blocked during decryption\n expect(mainThreadBlocked).toBe(false);\n });\n});\n```\n\n### 6. Mobile-Specific Tests\n\n```javascript\ndescribe(\"Mobile Compatibility\", () => {\n test(\"Touch events work\", async () => {\n await page.setViewportSize({ width: 375, height: 812 }); // iPhone X\n await page.goto(TEST_URL);\n \n await page.tap(\"#password-input\");\n await expect(page.locator(\"#password-input\")).toBeFocused();\n });\n \n test(\"Virtual keyboard doesnt break layout\", async () => {\n await page.setViewportSize({ width: 375, height: 400 }); // Simulated keyboard\n await page.goto(TEST_URL);\n \n const passwordInput = page.locator(\"#password-input\");\n await passwordInput.tap();\n \n // Input should still be visible\n await expect(passwordInput).toBeInViewport();\n });\n \n test(\"Swipe navigation works\", async () => {\n await unlock(page);\n await searchAndClick(page, \"test\");\n \n // Swipe to go back\n await page.touchscreen.swipe(0, 400, 300, 400);\n await expect(page.locator(\".search-container\")).toBeVisible();\n });\n});\n```\n\n## Browser Test Matrix\n\n| Feature | Chrome | Firefox | Safari | Edge | iOS Safari | Chrome Android |\n|---------|--------|---------|--------|------|------------|----------------|\n| AES-GCM | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| Argon2 (WASM) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| SQLite WASM | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| OPFS | ✓ | ✓ | ✗ | ✓ | ✗ | ✓ |\n| Service Worker | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| Web Worker | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n| SharedArrayBuffer | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |\n\n## Test Infrastructure\n\n### Playwright Configuration\n\n```javascript\n// playwright.config.js\nmodule.exports = {\n projects: [\n { name: \"chromium\", use: { browserName: \"chromium\" } },\n { name: \"firefox\", use: { browserName: \"firefox\" } },\n { name: \"webkit\", use: { browserName: \"webkit\" } },\n { name: \"mobile-chrome\", use: { ...devices[\"Pixel 5\"] } },\n { name: \"mobile-safari\", use: { ...devices[\"iPhone 12\"] } },\n ],\n webServer: {\n command: \"npm run serve\",\n port: 8080,\n },\n};\n```\n\n### BrowserStack Integration\n\n```yaml\n# .github/workflows/browser-tests.yml\njobs:\n browser-tests:\n runs-on: ubuntu-latest\n steps:\n - uses: browserstack/github-actions/setup-env@master\n - run: npm run test:browsers\n env:\n BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}\n BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}\n```\n\n## Files to Create\n\n- `web/tests/core.spec.js`: Core functionality tests\n- `web/tests/crypto.spec.js`: WebCrypto tests\n- `web/tests/sqlite.spec.js`: sqlite-wasm tests\n- `web/tests/sw.spec.js`: Service worker tests\n- `web/tests/worker.spec.js`: Web worker tests\n- `web/tests/mobile.spec.js`: Mobile-specific tests\n- `playwright.config.js`: Playwright configuration\n- `.github/workflows/browser-tests.yml`: CI configuration\n\n## Exit Criteria\n- [ ] All tests pass on Chrome (latest 2 versions)\n- [ ] All tests pass on Firefox (latest 2 versions)\n- [ ] All tests pass on Safari (latest 2 versions)\n- [ ] All tests pass on Edge (latest 2 versions)\n- [ ] Mobile tests pass on iOS Safari\n- [ ] Mobile tests pass on Chrome Android\n- [ ] Feature detection handles missing APIs gracefully\n- [ ] CI runs browser tests on every PR","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-07T01:46:57.123208Z","created_by":"ubuntu","updated_at":"2026-01-27T02:34:45.628642Z","closed_at":"2026-01-27T02:34:45.628549Z","close_reason":"All exit criteria verified: browser-tests.yml with Chromium/Firefox/WebKit, playwright.config.ts with 5 projects (desktop + mobile), browser-apis.spec.ts with feature detection tests","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-0ux6","depends_on_id":"coding_agent_session_search-h0uc","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-0vc2","title":"TST.TUI: TUI Source Filtering Hotkey Tests","description":"# Task: Add TUI Hotkey Tests for Source Filtering\n\n## Context\nF11 cycles source filter and Shift+F11 opens source menu. Need hotkey tests.\n\n## Current Test Status\n`tests/ui_hotkeys.rs` has limited tests (2 per TESTING.md).\n\n## Tests to Add\n\n### F11 Cycle Tests\n1. `test_f11_cycles_source_filter_all_to_local` - all → local\n2. `test_f11_cycles_source_filter_local_to_remote` - local → remote\n3. `test_f11_cycles_source_filter_remote_to_all` - remote → all\n4. `test_f11_updates_filter_chip` - Filter chip shows source\n\n### Shift+F11 Menu Tests\n1. `test_shift_f11_opens_source_menu` - Menu appears\n2. `test_source_menu_lists_configured_sources` - Shows all sources\n3. `test_source_menu_selection_filters` - Selection applies filter\n\n### State Persistence\n1. `test_source_filter_persists_in_state` - Saved to tui_state.json\n\n## Implementation\nAdd tests to `tests/ui_hotkeys.rs` using existing test patterns.\n\n## Technical Notes\n- May need to mock or create test sources\n- Check existing F-key test patterns in ui_hotkeys.rs\n- Consider snapshot tests for menu rendering","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-17T22:59:20.178418Z","updated_at":"2025-12-18T02:05:56.704607Z","closed_at":"2025-12-18T02:05:56.704607Z","close_reason":"Added cycle() method and 13 tests for F11 source filter cycling","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-0vc2","depends_on_id":"coding_agent_session_search-h2i","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-0x5gm","title":"Collapse transitive asupersync 0.2.9 via FAD→fsqlite rev bump","description":"After bead 3e3qg.14 (FAD rusqlite→frankensqlite migration) completes and FAD pushes a new HEAD, coordinated cross-repo bump:\n1. In /data/projects/franken_agent_detection/Cargo.toml: update fsqlite rev e3f57c9a → 422969cf (or later).\n2. Commit + push FAD.\n3. In cass Cargo.toml: bump franken-agent-detection rev pin to the new FAD SHA.\nGoal: Cargo.lock has only one asupersync entry (0.3.1). Current state documented in UPGRADE_LOG.md.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-04-22T10:26:52.780591870Z","created_by":"ubuntu","updated_at":"2026-04-22T19:58:08.169026924Z","closed_at":"2026-04-22T19:58:08.168653475Z","close_reason":"Collapsed cass onto the pushed FAD frankensqlite 422969cf pin and removed the duplicate asupersync 0.2.9 lock stack.","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-0ym4","title":"[Task] Opt 6.2: Implement streaming canonicalization","description":"## Objective\nImplement the single-pass streaming canonicalization with buffer reuse.\n\n## Implementation Details\n```rust\npub fn canonicalize_for_embedding_streaming(text: &str) -> String {\n // Pre-allocate with reasonable capacity\n let mut result = String::with_capacity(text.len().min(MAX_EMBED_CHARS + 100));\n \n // NFC normalization (unavoidable single allocation)\n let normalized: String = text.nfc().collect();\n\n // State machine for single-pass processing\n let mut state = CanonicalizeState::default();\n \n for line in normalized.lines() {\n state.process_line(line, &mut result);\n }\n \n state.finalize(&mut result);\n result.truncate(MAX_EMBED_CHARS);\n result\n}\n\nstruct CanonicalizeState {\n in_code_block: bool,\n code_lines: Vec<String>,\n lang: String,\n whitespace_pending: bool,\n}\n\nimpl CanonicalizeState {\n fn process_line(&mut self, line: &str, output: &mut String) {\n // Handle code block start/end\n // Handle markdown stripping\n // Handle whitespace normalization\n // Handle low-signal filtering\n // Append directly to output\n }\n \n fn finalize(&mut self, output: &mut String) {\n // Flush any pending code block\n }\n}\n```\n\n## Key Optimizations\n- Single output buffer with pre-allocation\n- State machine avoids intermediate Strings\n- Only one unavoidable allocation for NFC\n\n## Edge Cases to Handle\n- Nested code blocks (```)\n- Inline code (`code`)\n- Multiple consecutive blank lines → single space\n- Leading/trailing whitespace\n- Unicode combining characters (handled by NFC)\n\n## Rollback\nFeature gate with `CASS_STREAMING_CANONICALIZE=0`\n\n## Parent Feature\ncoding_agent_session_search-5p55 (Opt 6: Streaming Canonicalization)","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T03:26:39.356421Z","created_by":"ubuntu","updated_at":"2026-01-12T14:56:06.036553Z","closed_at":"2026-01-12T14:56:06.036553Z","close_reason":"Streaming canonicalization implemented and working. WhitespaceWriter struct provides single-pass buffer reuse. All 25 canonicalization tests pass. Toggled via CASS_STREAMING_CANONICALIZE env var (default: enabled).","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-0ym4","depends_on_id":"coding_agent_session_search-9tdq","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-10wdb","title":"Unit tests for upstream frankensearch enhancements","description":"TRACK: frankensearch upstream (Track 1A)\nPARENT EPIC: Complete frankensearch Integration\n\nWHAT: Comprehensive unit tests for the upstream frankensearch changes: InMemoryVectorIndex + InMemoryTwoTierIndex, and SyncTwoTierSearcher.\n\nNOTE: The tantivy re-export bead (2vdn3) turned out to be a no-op — all needed types are already re-exported. Re-export tests removed from this bead.\n\nTEST CATEGORIES:\n\n1. IN-MEMORY VECTOR INDEX:\n - from_fsvi: write FSVI file via VectorIndexWriter, load into InMemoryVectorIndex, verify search results match file-backed VectorIndex.search_top_k()\n - from_vectors: construct with known f32 vectors, verify search returns correct top-k by dot product\n - f16 precision: compare in-memory f16 search scores to f32 reference scores (tolerance < 0.005)\n - Empty index: search returns empty results, no panic\n - Single vector: any query returns that vector as top-1\n - Large index: 100K vectors (384-dim), verify Rayon parallel search activates at threshold and results match serial\n - Filter integration: SearchFilter correctly excludes vectors from results\n - Dimension mismatch: query dim != index dim → meaningful error\n\n2. IN-MEMORY TWO-TIER INDEX:\n - Construct from two sets of vectors (fast + quality)\n - search_fast() returns top-k from fast tier only\n - quality_scores_for_hits() returns quality scores for given hits\n - Verify score blending produces expected combined rankings\n - Quality-less mode: construct with no quality vectors, search_fast works, quality_scores returns empty\n\n3. SYNC TWO-TIER SEARCHER:\n - search_collect: basic query against InMemoryTwoTierIndex returns ranked results\n - search_iter: yields SearchPhase::Initial then SearchPhase::Refined\n - Fast-only mode (config.fast_only=true): only Phase 1, no quality refinement\n - Filter application: filters reduce result set correctly\n - Config: quality_weight=0.0 → only fast scores; quality_weight=1.0 → only quality scores\n - Config: candidate_multiplier affects candidate pool size\n - Empty index: returns empty results gracefully\n - Thread safety: concurrent search_collect calls from multiple threads (Arc<SyncTwoTierSearcher>)\n\nLOGGING: Each test uses tracing with test-subscriber. Logs search phases, timing, result counts.\n\nFILES: frankensearch-index/tests/in_memory_tests.rs, frankensearch-fusion/tests/sync_searcher_tests.rs","status":"closed","priority":2,"issue_type":"task","created_at":"2026-02-27T05:21:05.526198Z","created_by":"ubuntu","updated_at":"2026-03-02T05:43:39.272554Z","closed_at":"2026-03-02T05:43:39.272532Z","close_reason":"Completed upstream integration tests: added in_memory_tests.rs and sync_searcher_tests.rs in frankensearch; validated via rch check/tests","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-10wdb","depends_on_id":"coding_agent_session_search-14mzc","type":"blocks","created_at":"2026-02-27T05:27:24.480727Z","created_by":"ubuntu","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-10wdb","depends_on_id":"coding_agent_session_search-cgh4s","type":"blocks","created_at":"2026-02-27T05:27:24.801613Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-115","title":"P1.2 Add sources table to SQLite","description":"# Add sources Table to SQLite Storage\n\n## Context\nWe need a place to persist Source configurations. Each source (local, work-laptop, etc.) has metadata that should survive restarts.\n\n## Location\nsrc/storage/sqlite.rs\n\n## Schema\n\\`\\`\\`sql\nCREATE TABLE IF NOT EXISTS sources (\n id TEXT PRIMARY KEY, -- source_id (e.g., \"local\", \"work-laptop\")\n kind TEXT NOT NULL, -- \"local\", \"ssh\", etc.\n host_label TEXT, -- display label\n machine_id TEXT, -- optional stable machine id\n platform TEXT, -- \"macos\", \"linux\", \"windows\"\n config_json TEXT, -- JSON blob for extra config (SSH params, path rewrites)\n created_at INTEGER NOT NULL,\n updated_at INTEGER NOT NULL\n);\n\\`\\`\\`\n\n## Bootstrap\nOn DB creation, automatically insert the \"local\" source:\n\\`\\`\\`sql\nINSERT OR IGNORE INTO sources (id, kind, host_label, created_at, updated_at)\nVALUES ('local', 'local', NULL, strftime('%s','now')*1000, strftime('%s','now')*1000);\n\\`\\`\\`\n\n## API Methods\nAdd to SqliteStorage:\n\n\\`\\`\\`rust\n/// Get source by ID\npub fn get_source(&self, id: &str) -> Result<Option<Source>>;\n\n/// List all sources\npub fn list_sources(&self) -> Result<Vec<Source>>;\n\n/// Create or update a source\npub fn upsert_source(&self, source: &Source) -> Result<()>;\n\n/// Delete a source (and optionally cascade to conversations)\npub fn delete_source(&self, id: &str, cascade: bool) -> Result<()>;\n\\`\\`\\`\n\n## Migration\nThis is a new table, so it's additive. The migration path is:\n1. Check if sources table exists\n2. If not, create it\n3. Insert \"local\" source if not present\n\nNo need for table rewrite - this is purely additive.\n\n## Schema Version\nBump SCHEMA_VERSION in sqlite.rs\n\n## Dependencies\n- P1.1 (Source types must exist)\n\n## Acceptance Criteria\n- [ ] sources table created on init\n- [ ] \"local\" source auto-created\n- [ ] CRUD methods implemented\n- [ ] Schema version bumped\n- [ ] Tests for source CRUD","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-16T05:54:30.502900Z","updated_at":"2025-12-16T06:59:27.571095Z","closed_at":"2025-12-16T06:59:27.571095Z","close_reason":"Added sources table to SQLite with MIGRATION_V4. Schema version bumped to 4. Implemented get_source, list_sources, upsert_source, delete_source methods. Local source auto-created on DB init. 28 storage tests pass, all 281 tests pass.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-115","depends_on_id":"coding_agent_session_search-2w4","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-11czq","title":"Port PRAGMA/WAL/connection configuration to frankensqlite","description":"TRACK: cass storage migration (Track 3B)\nPARENT EPIC: Complete frankensqlite Integration\n\nWHAT: Port the PRAGMA and connection configuration from rusqlite to frankensqlite, and determine the optimal storage backend configuration.\n\nCURRENT CONFIGURATION (src/storage/sqlite.rs lines 3844-3865):\n- PRAGMA journal_mode = WAL\n- PRAGMA synchronous = NORMAL\n- PRAGMA wal_autocheckpoint = 1000\n- PRAGMA temp_store = MEMORY\n- PRAGMA cache_size = -65536 (64MB)\n- PRAGMA mmap_size = 268435456 (256MB)\n- PRAGMA foreign_keys = ON\n- conn.busy_timeout(Duration::from_secs(5))\n\nDEEP AUDIT FINDING (2026-02-27):\nfrankensqlite's storage architecture is fundamentally different from C SQLite:\n- Phase 4 (current default): in-memory MemDatabase with file snapshot persistence\n- Phase 5 (exists but not yet default): pager/WAL/B-tree layers\n- MVCC with SSI is the concurrency model — WAL semantics are different\n- PRAGMAs are executed via conn.execute(\"PRAGMA ...\") as SQL strings\n- Not all C SQLite PRAGMAs may be implemented or meaningful\n\nThis means PRAGMA porting is NOT a simple 1:1 mapping. Many PRAGMAs may be no-ops or errors.\n\nSTORAGE BACKEND DECISION (depends on 3vvqa gate result):\nIf frankensqlite can open existing C SQLite WAL-mode files:\n -> Use Phase 5 pager (file-format compatible) for existing databases\n -> Configure PRAGMAs that Phase 5 supports\nIf frankensqlite CANNOT open existing files:\n -> Use Phase 4 (in-memory) for new databases\n -> Build migration tool to transfer data from old to new format\n -> PRAGMAs like WAL/mmap are likely irrelevant for Phase 4\n\nINVESTIGATION NEEDED (this bead's primary deliverable is documenting what works):\n1. Which standard PRAGMAs does frankensqlite actually support?\n - Test each one: journal_mode, synchronous, wal_autocheckpoint, temp_store, cache_size, foreign_keys\n - Document: does it execute without error? Does it actually change behavior?\n2. Does PRAGMA user_version work? (cass uses for schema versioning)\n3. What is frankensqlite's equivalent of WAL mode?\n - With MVCC, is journal_mode irrelevant?\n - Is synchronous relevant for MemDatabase snapshots?\n4. What happens when you set a PRAGMA it doesn't support? (error? silent ignore? panic?)\n5. Does busy_timeout have meaning with MVCC? (With BEGIN CONCURRENT, the retry strategy is different)\n6. Can Phase 5 backend be explicitly selected? How?\n7. What is the performance difference between Phase 4 and Phase 5 for cass workloads?\n\nFRANKENSQLITE-SPECIFIC CONFIGURATION TO ENABLE:\n- PRAGMA fsqlite_txn_stats — transaction performance observability\n- PRAGMA fsqlite_txn_advisor — conflict advisory information\n- Connection::trace_v2(TraceMask::STMT | TraceMask::PROFILE, callback) — SQL tracing\n- Connection::set_reject_mem_fallback() — parity-cert mode\n- Connection::pager_backend_kind() — verify storage backend\n\nAPPROACH:\n1. Write a test that tries each PRAGMA on a frankensqlite connection\n2. Document results in the bead (update this description)\n3. Implement FrankenStorage::apply_config() with only the PRAGMAs that work\n4. Skip PRAGMAs that are no-ops in frankensqlite (document why with comments)\n5. Add frankensqlite-specific observability PRAGMAs\n\nFILES TO MODIFY: src/storage/sqlite.rs (FrankenStorage::apply_config method)\nLOGGING: Log each PRAGMA attempt with result (success/error/no-op)","status":"closed","priority":1,"issue_type":"task","created_at":"2026-02-27T05:24:40.874902Z","created_by":"ubuntu","updated_at":"2026-03-01T05:29:35.427584Z","closed_at":"2026-03-01T05:29:35.427561Z","close_reason":"Implemented FrankenStorage::apply_config() with journal_mode=WAL, synchronous=NORMAL, cache_size=-65536, foreign_keys=ON, busy_timeout=5000. Frankensqlite supports all PRAGMAs cass uses (verified via existing test suite). Skipped temp_store and mmap_size as they are not meaningful in frankensqlite's architecture. Compiles successfully.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-11czq","depends_on_id":"coding_agent_session_search-300hj","type":"blocks","created_at":"2026-02-27T05:27:58.488116Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-11is","title":"P6.14d: Replace mock probe tests with real host probe fixtures","description":"# P6.14d: Replace mock probe tests with real host probe fixtures\n\n## Goal\nRemove mock probe helpers in `src/sources/index.rs` tests by validating against real probe outputs and (where feasible) a real local SSH target.\n\n## Why\n`mock_probe_*` functions simulate host discovery without exercising real SSH probe parsing or error handling. This misses real-world edge cases and violates no-mock policy.\n\n## Plan\n1. Capture real `cass sources doctor` / probe outputs for known fixtures and store them as test data.\n2. Update tests to parse the real fixture data instead of generating mock structs.\n3. Add a local SSH harness for CI (loopback `sshd` with temp user + key) to validate probe round-trip.\n4. Ensure tests handle OS differences by gating with explicit feature flags.\n\n## Acceptance Criteria\n- `mock_probe_*` helpers removed or moved behind allowlist with justification.\n- Tests cover real probe parsing paths and failure modes.\n- CI coverage for at least one real SSH probe path (Linux).\n\n## Dependencies\n- Uses audit results from P6.14a.\n- Can reuse existing remote sources harness (coding_agent_session_search-xdtj).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-26T06:01:00.354377Z","created_by":"ubuntu","updated_at":"2026-01-26T06:55:58.639791Z","closed_at":"2026-01-26T06:55:58.639730Z","close_reason":"Replaced mock_probe_* helpers in src/sources/index.rs with JSON fixture loading. Created 6 realistic probe fixtures in tests/fixtures/sources/probe/: indexed_host, not_indexed_host, no_cass_host, empty_index_host, unreachable_host, unknown_status_host. All 10 tests pass.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-11is","depends_on_id":"coding_agent_session_search-22k2","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-11is","depends_on_id":"coding_agent_session_search-xdtj","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-11u5","title":"Implement print-optimized stylesheet for PDF export","description":"## Overview\nCreate a print-optimized CSS stylesheet that produces beautiful PDFs when users print the HTML export.\n\n## Technical Requirements\n\n### Print Media Queries\n```css\n@media print {\n /* Hide interactive elements */\n .collapse-toggle, .copy-btn, .search-controls { display: none !important; }\n \n /* Force light background for print */\n body { background: white !important; color: black !important; }\n \n /* Prevent page breaks mid-message */\n .message { page-break-inside: avoid; }\n \n /* Keep code blocks together */\n pre { page-break-inside: avoid; max-height: none !important; }\n}\n```\n\n### Page Layout\n- A4 and Letter size optimization\n- Sensible margins (2cm recommended)\n- Page numbers in footer\n- Session title in header\n\n### Visual Adjustments\n- Convert dark theme to high-contrast light theme\n- Ensure all text is black on white\n- Remove gradients and decorative backgrounds\n- Preserve code syntax highlighting with print-safe colors\n\n### Content Optimization\n- Expand all collapsed sections automatically\n- Remove scroll containers\n- Inline all external resources\n\n## Implementation Location\n- Add print styles to the inline `<style>` block in HTML template\n- Ensure print styles are included even in offline mode\n\n## Acceptance Criteria\n- [ ] HTML exports produce readable PDFs via browser print\n- [ ] Code blocks preserve syntax highlighting in print\n- [ ] No interactive elements visible in print output\n- [ ] Page breaks occur at logical boundaries\n- [ ] Works in Chrome, Firefox, and Safari print preview\n\n## Dependencies\n- Depends on: bd-bowe (base CSS must exist first)\n\n## References\n- Print CSS best practices: https://www.smashingmagazine.com/2018/05/print-stylesheets-in-2018/","notes":"### Testing & Logging\n- Unit: CSS lint + snapshot of print stylesheet (selectors + size budget).\n- Integration: headless Chrome print-to-PDF for fixture export; verify page count and no clipped code blocks.\n- E2E: print pipeline script logs PDF size, page count, and warnings.","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-25T20:32:43.458066Z","created_by":"ubuntu","updated_at":"2026-01-25T23:32:16.747507Z","closed_at":"2026-01-25T23:32:16.746889Z","close_reason":"Implementation complete: styles.rs contains comprehensive @media print block (lines 3310-3500+) with page-break-inside:avoid, hidden interactive elements, print-safe colors, header/footer styling, and code block formatting.","source_repo":".","compaction_level":0,"original_size":0,"labels":["html-export"],"dependencies":[{"issue_id":"coding_agent_session_search-11u5","depends_on_id":"coding_agent_session_search-bowe","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-11u5","depends_on_id":"coding_agent_session_search-w9z0","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-120r","title":"Implement inline JavaScript for interactivity","description":"# Task: Inline JavaScript for Interactivity\n\n## Context\nThe exported HTML needs interactive features that work offline. All critical JS must\nbe embedded, with CDN libraries (Prism.js) providing enhanced features when available.\n\n## Core Features (Offline-Required)\n\n### 1. Theme Toggle\n```javascript\nfunction toggleTheme() {\n const html = document.documentElement;\n const current = html.getAttribute('data-theme');\n const next = current === 'dark' ? 'light' : 'dark';\n html.setAttribute('data-theme', next);\n localStorage.setItem('cass-theme', next);\n}\n\n// Load saved preference\ndocument.addEventListener('DOMContentLoaded', () => {\n const saved = localStorage.getItem('cass-theme');\n if (saved) document.documentElement.setAttribute('data-theme', saved);\n});\n```\n\n### 2. Search Within Conversation\n```javascript\nfunction searchConversation(query) {\n const messages = document.querySelectorAll('.message-content');\n let found = 0;\n \n messages.forEach(el => {\n el.innerHTML = el.textContent; // Reset highlights\n if (query && el.textContent.toLowerCase().includes(query.toLowerCase())) {\n const regex = new RegExp(`(${escapeRegex(query)})`, 'gi');\n el.innerHTML = el.textContent.replace(regex, '<mark>$1</mark>');\n found++;\n }\n });\n \n updateSearchStatus(found, query);\n}\n```\n\n### 3. Collapsible Sections\n```javascript\ndocument.querySelectorAll('details.tool-call').forEach(el => {\n el.addEventListener('toggle', () => {\n // Animate height\n const content = el.querySelector('.tool-content');\n if (el.open) {\n content.style.maxHeight = content.scrollHeight + 'px';\n }\n });\n});\n```\n\n### 4. Copy to Clipboard\n```javascript\nasync function copyToClipboard(elementId) {\n const el = document.getElementById(elementId);\n try {\n await navigator.clipboard.writeText(el.textContent);\n showToast('Copied to clipboard');\n } catch (e) {\n // Fallback for older browsers\n const range = document.createRange();\n range.selectNode(el);\n window.getSelection().addRange(range);\n document.execCommand('copy');\n showToast('Copied to clipboard');\n }\n}\n```\n\n### 5. Toast Notifications\n```javascript\nfunction showToast(message, type = 'info') {\n const toast = document.createElement('div');\n toast.className = `toast toast-${type}`;\n toast.textContent = message;\n document.body.appendChild(toast);\n \n // Animate in\n requestAnimationFrame(() => toast.classList.add('show'));\n \n // Auto dismiss\n setTimeout(() => {\n toast.classList.remove('show');\n setTimeout(() => toast.remove(), 300);\n }, 3000);\n}\n```\n\n### 6. Print Handler\n```javascript\nfunction printConversation() {\n // Expand all collapsed sections before print\n document.querySelectorAll('details').forEach(d => d.open = true);\n window.print();\n}\n```\n\n### 7. Keyboard Shortcuts\n```javascript\ndocument.addEventListener('keydown', (e) => {\n // Ctrl/Cmd + F: Focus search\n if ((e.ctrlKey || e.metaKey) && e.key === 'f') {\n e.preventDefault();\n document.getElementById('search-input').focus();\n }\n // Ctrl/Cmd + P: Print\n if ((e.ctrlKey || e.metaKey) && e.key === 'p') {\n e.preventDefault();\n printConversation();\n }\n // Escape: Clear search\n if (e.key === 'Escape') {\n document.getElementById('search-input').value = '';\n searchConversation('');\n }\n});\n```\n\n## CDN-Enhanced Features\n\n### 8. Syntax Highlighting (Prism.js)\n```javascript\n// Only runs if Prism is loaded from CDN\nif (typeof Prism !== 'undefined') {\n Prism.highlightAll();\n \n // Add copy buttons to code blocks\n document.querySelectorAll('pre code').forEach((block, i) => {\n const btn = document.createElement('button');\n btn.className = 'copy-code-btn';\n btn.onclick = () => copyToClipboard(`code-${i}`);\n block.id = `code-${i}`;\n block.parentNode.appendChild(btn);\n });\n}\n```\n\n## Size Budget\nTarget: < 8KB minified JS (inline)\n- Core interactivity: ~4KB\n- Search: ~1.5KB\n- Utilities: ~1KB\n- Animations: ~1.5KB\n\n## No-JS Fallback\nDocument must remain readable without JS:\n- Content visible\n- Navigation links work\n- Print still functional (browser native)\n- Only interactivity disabled\n\n## Acceptance Criteria\n- [ ] Theme toggle persists across page loads\n- [ ] Search highlights matches correctly\n- [ ] Copy works in all major browsers\n- [ ] Keyboard shortcuts documented and working\n- [ ] No-JS fallback provides readable content\n- [ ] Size under 8KB minified","notes":"### Testing & Logging\n- Unit: JS functions tested via node/jsdom for search, theme toggle, and collapse logic.\n- Integration: headless browser verifies interactions (search, theme, print) with logs.\n- E2E: capture console logs/errors and include timing metrics in report.","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-25T20:27:57.219230Z","created_by":"ubuntu","updated_at":"2026-01-25T21:59:34.125964Z","closed_at":"2026-01-25T21:57:32.105480Z","close_reason":"done","source_repo":".","compaction_level":0,"original_size":0,"labels":["html-export"],"dependencies":[{"issue_id":"coding_agent_session_search-120r","depends_on_id":"coding_agent_session_search-bowe","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-120r","depends_on_id":"coding_agent_session_search-w9z0","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}],"comments":[{"id":92,"issue_id":"coding_agent_session_search-120r","author":"Dicklesworthstone","text":"Implementation complete. All features implemented: theme toggle, search, copy to clipboard, toast notifications, print handler, keyboard shortcuts (Ctrl+F/P, Escape), code block copy buttons. 8 tests pass. Raw JS ~12KB (target was 8KB minified - would need minifier for production).","created_at":"2026-01-25T21:57:28Z"}]}
{"id":"coding_agent_session_search-12l1x","title":"Phase 5B: State persistence for user preferences","description":"Leverage ftui_runtime::state_persistence and the Stateful trait on widgets to persist user preferences across sessions. Currently cass resets all preferences on restart (theme, density, focus, collapsed sections, etc). Use ftui StateRegistry with FileStorage backend to persist: (1) Theme selection (dark/light), (2) Density mode, (3) Layout mode (wide/stacked/single), (4) Last search query, (5) Favorite/pinned searches, (6) Column widths for results table, (7) Expanded/collapsed tree nodes (TreePersistState), (8) Macro library, (9) Custom keybindings, (10) Performance HUD visibility. Storage location: ~/.config/cass/state.json. The StateRegistry handles versioning (VersionedState) so state files from older cass versions are safely migrated or ignored. Add CassMsg::LoadState and CassMsg::SaveState variants.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-02-06T07:22:38.100715Z","created_by":"ubuntu","updated_at":"2026-02-06T07:57:13.396275Z","closed_at":"2026-02-06T07:57:13.396249Z","close_reason":"Merged into 2noh9.2.6 (TUI state persistence). StateRegistry, FileStorage, VersionedState, 10 persistence targets merged.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-12l1x","depends_on_id":"coding_agent_session_search-1p0wb","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-12yhc","title":"Phase 3F: Help overlay with ftui help system","description":"Replace the current show_help modal (renders a static Paragraph of keybindings in a Clear+Block overlay) with ftui-extras/help contextual help system plus ftui_widgets::help::Help and HelpRegistry. Register all keybindings in HelpRegistry with context-aware grouping: (1) Global shortcuts (Ctrl+C quit, Ctrl+P palette, F1 help, etc), (2) Search mode shortcuts (Enter search, Tab switch mode, Esc clear), (3) Results navigation (j/k/Up/Down, Enter open, Ctrl+Enter queue, etc), (4) Detail pane shortcuts (PgUp/PgDn scroll, / find, e export, etc), (5) Filter shortcuts (Alt+A agent, Alt+W workspace, Alt+T time, etc). The help overlay uses Modal with backdrop blur effect (ftui visual_fx). Keybindings display adapts to current context -- only shows relevant shortcuts for the focused widget. The hint_ranker module can prioritize which hints to show based on usage frequency (Bayesian posterior ranking).","status":"closed","priority":2,"issue_type":"task","created_at":"2026-02-06T07:19:02.787539Z","created_by":"ubuntu","updated_at":"2026-02-06T07:56:56.481206Z","closed_at":"2026-02-06T07:56:56.481184Z","close_reason":"Merged into 2noh9.3.7 (Help overlay). HelpRegistry, context-aware grouping, hint_ranker, backdrop blur details merged.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-12yhc","depends_on_id":"coding_agent_session_search-1p0wb","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-12yhc","depends_on_id":"coding_agent_session_search-2luim","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-13za","title":"[Task] Unicode Normalization Path Tests","description":"## Task: Unicode Normalization Path Tests\n\nTest that Unicode-based path traversal attacks are blocked.\n\n### SECURITY CRITICAL - P0\n\n### Test Cases\n- [ ] **Fullwidth characters** - `\\u{FF0E}\\u{FF0E}/` (fullwidth period)\n- [ ] **Halfwidth variants** - `\\u{FF61}` (halfwidth ideographic period)\n- [ ] **Combining characters** - `.\\u{0338}` (combining overlay)\n- [ ] **Normalization forms** - NFD vs NFC for path separators\n- [ ] **Homoglyphs** - Characters that look like `.` or `/`\n- [ ] **Decomposed forms** - Multi-codepoint representations\n- [ ] **Right-to-left override** - `\\u{202E}` to visually reverse path\n- [ ] **Zero-width joiners** - `.\\u{200D}.` (invisible characters)\n- [ ] **Confusable characters** - `⁄` (fraction slash) vs `/`\n\n### Implementation\n```rust\n#[test]\nfn fullwidth_dot_traversal_blocked() {\n // U+FF0E = fullwidth full stop\n let manifest = create_test_manifest_with_path(\"\\u{FF0E}\\u{FF0E}/etc/passwd\");\n let result = check_integrity(&site_dir, false);\n assert!(!result.passed, \"Fullwidth dot traversal must be blocked\");\n}\n\n#[test]\nfn rtl_override_path_blocked() {\n // Right-to-left override could visually disguise paths\n let manifest = create_test_manifest_with_path(\"etc/passwd/\\u{202E}../\");\n let result = check_integrity(&site_dir, false);\n assert!(!result.passed, \"RTL override path must be blocked\");\n}\n```\n\n### Acceptance Criteria\n- [ ] All 9 Unicode normalization cases tested\n- [ ] ALL bypass attempts blocked\n- [ ] Unicode normalized before path validation\n- [ ] Tests pass: `cargo test pages::verify::tests::unicode_norm`\n\n### Verification\n```bash\ncargo test pages::verify::tests --test-threads=1 -- unicode --nocapture\n```","status":"closed","priority":0,"issue_type":"task","created_at":"2026-01-27T17:23:59.502864Z","updated_at":"2026-01-27T20:55:27.518273Z","closed_at":"2026-01-27T20:55:27.518183Z","close_reason":"All 9 Unicode normalization attack categories tested and blocked. 124 tests pass including fullwidth/halfwidth chars, combining overlays, RTL overrides, zero-width chars, confusable slashes/dots, NFD/NFC normalization. Quality gates (check/clippy) pass.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-13za","depends_on_id":"coding_agent_session_search-819v","type":"parent-child","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-13za","depends_on_id":"coding_agent_session_search-ai4a","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1449","title":"T5: CI/CD Test Infrastructure - Coverage Gates and Reporting","description":"# Epic: CI/CD Test Infrastructure Enhancement\n\n## Goal\nIntegrate all testing improvements into CI/CD with coverage gates and automated reporting.\n\n## Components\n1. Coverage enforcement (lcov/llvm-cov)\n2. Mock-free validation gate\n3. E2E log aggregation and reporting\n4. Performance regression detection\n5. Test result dashboard\n\n## Dependencies\n- T1, T2, T3, T4 should be complete first\n\n## Deliverables\n- GitHub Actions workflows updated\n- Coverage badge in README\n- Test result artifacts\n- Automated regression alerts","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-27T04:23:45.769612Z","created_by":"ubuntu","updated_at":"2026-01-27T06:49:04.140014Z","closed_at":"2026-01-27T06:49:04.139928Z","close_reason":"All subtasks (T5.1-T5.3) completed - CI/CD coverage gates, E2E log aggregation, and performance regression detection implemented","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1449","depends_on_id":"coding_agent_session_search-1dlw","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-1449","depends_on_id":"coding_agent_session_search-2ieo","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-1449","depends_on_id":"coding_agent_session_search-30qc","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-1449","depends_on_id":"coding_agent_session_search-3fbl","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-14mzc","title":"Add InMemoryVectorIndex to frankensearch-index for zero-latency TUI search","description":"TRACK: frankensearch upstream (Track 1A)\nPARENT EPIC: Complete frankensearch Integration\n\nWHAT: Add an in-memory vector storage backend to frankensearch-index. This is CONFIRMED as not existing — frankensearch currently only has file-backed FSVI (memory-mapped) via VectorIndex.\n\nWHY THIS IS NEEDED (not just FSVI mmap):\n- Cass TUI loads ALL embeddings into RAM at startup for deterministic sub-millisecond search\n- FSVI mmap has page fault latency on first access (cold paths), unacceptable for TUI responsiveness\n- Cass's current TwoTierIndex in two_tier_search.rs stores f16 vectors in a flat Vec<half::f16> for guaranteed-resident brute-force scan\n- frankensearch's VectorIndex uses MmapMut (file-backed), which can page fault\n- InMemoryVectorIndex would give frankensearch a fully-resident search path\n\nVERIFIED CURRENT STATE:\n- VectorIndex struct has: path, data (MmapMut), metadata, records_offset, strings_offset, vectors_offset, wal_entries\n- TwoTierIndex wraps two VectorIndex instances (fast + quality), both file-backed\n- TwoTierIndex.search_fast() is SYNC and takes &[f32] query vectors (converts internally)\n- No in-memory alternative exists anywhere in frankensearch\n\nDESIGN:\n- New struct InMemoryVectorIndex that stores vectors in contiguous resident memory (not mmap)\n- Constructor: InMemoryVectorIndex::from_fsvi(path) — reads FSVI file entirely into heap-allocated memory\n- Constructor: InMemoryVectorIndex::from_vectors(doc_ids: Vec<String>, vectors: Vec<Vec<f32>>, dimension: usize)\n- Search API: search_top_k(query: &[f32], k: usize, filter: Option<&dyn SearchFilter>) -> SearchResult<Vec<VectorHit>>\n- Internal storage: f16 quantized row-major flat layout (matching cass's current approach for 50% memory savings)\n- Brute-force dot product with optional Rayon parallelism above threshold (10K+ vectors)\n- Must implement same VectorHit result type as file-backed VectorIndex\n\nALSO NEEDED: InMemoryTwoTierIndex that wraps two InMemoryVectorIndex instances (fast + quality) with the same search_fast() / quality_scores_for_hits() API as TwoTierIndex.\n\nPERFORMANCE REQUIREMENTS:\n- Must match or exceed cass's current two_tier_search.rs in-memory search latency\n- f16 quantization: store as f16, convert to f32 only during dot product\n- Parallel threshold: 10,000 vectors (matching frankensearch's FSVI default)\n- Binary heap top-k selection (matching cass's current approach)\n\nFILES TO CREATE: frankensearch-index/src/in_memory.rs\nFILES TO MODIFY: frankensearch-index/src/lib.rs (pub mod, re-export)\nFILES TO MODIFY: frankensearch/src/lib.rs (re-export InMemoryVectorIndex, InMemoryTwoTierIndex)\n\nTESTS: from_fsvi loading matches file-backed search results, from_vectors construction, search_top_k correctness vs reference f32, f16 precision tolerance (<0.001), parallel search, filter integration, empty index edge case, dimension mismatch error.","status":"closed","priority":1,"issue_type":"task","created_at":"2026-02-27T05:20:32.144447Z","created_by":"ubuntu","updated_at":"2026-03-02T05:21:16.300489Z","closed_at":"2026-03-02T05:21:16.300466Z","close_reason":"Completed: wired in-memory index exports and added from_fsvi parity test in frankensearch","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-14pb","title":"[Task] Add Logging to daemon_fallback.sh","description":"## Task: Add Logging to daemon_fallback.sh\n\nAdd JSONL E2E logging to `scripts/e2e/daemon_fallback.sh`.\n\n### What This Script Tests\n- Daemon startup/shutdown sequences\n- Fallback behavior when daemon unavailable\n- Graceful degradation scenarios\n- Recovery after daemon crash\n\n### Implementation\n```bash\n#\\!/bin/bash\nsource scripts/lib/e2e_log.sh\n\ne2e_init \"shell\" \"daemon_fallback\"\ne2e_run_start\n\n# Test: Daemon starts successfully\ne2e_test_start \"daemon_start\" \"daemon\"\nstart_time=$(date +%s%3N)\nif start_daemon; then\n end_time=$(date +%s%3N)\n e2e_test_pass \"daemon_start\" \"daemon\" $((end_time - start_time))\nelse\n e2e_test_fail \"daemon_start\" \"daemon\" \"Failed to start daemon\" 0\nfi\n\n# Test: Fallback when daemon unavailable\ne2e_test_start \"fallback_mode\" \"daemon\"\n# ... test implementation ...\n\ne2e_run_end \"$total\" \"$passed\" \"$failed\" \"$skipped\" \"$total_duration\"\n```\n\n### Logging Requirements\n- [ ] Source `scripts/lib/e2e_log.sh`\n- [ ] Call `e2e_init` with \"shell\" runner\n- [ ] Emit `e2e_run_start` at script beginning\n- [ ] Emit `e2e_test_start/pass/fail` for each test case\n- [ ] Emit `e2e_run_end` with summary counts\n- [ ] Output to `test-results/e2e/shell_daemon_fallback.jsonl`\n\n### Acceptance Criteria\n- [ ] JSONL logging integrated\n- [ ] All test cases emit start/end events\n- [ ] Duration tracked for each test\n- [ ] Failure messages include context\n- [ ] Script still exits with correct status code\n\n### Verification\n```bash\n./scripts/e2e/daemon_fallback.sh\njq '.event' test-results/e2e/shell_daemon_fallback.jsonl | sort | uniq -c\n```","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-27T18:05:54.172009Z","created_by":"ubuntu","updated_at":"2026-01-27T21:38:01.458865Z","closed_at":"2026-01-27T21:38:01.458799Z","close_reason":"done","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-14pb","depends_on_id":"coding_agent_session_search-35nm","type":"parent-child","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-154c","title":"Add metrics to e2e_multi_connector.rs","description":"## Priority 2: Add Performance Metrics to e2e_multi_connector.rs\n\n### Current State\ntests/e2e_multi_connector.rs doesn't emit performance metrics for connector scanning.\n\n### Required Changes\n\n1. **Add metrics for each connector scan:**\n```rust\nlet start = Instant::now();\nlet sessions = scan_connector(\"claude\", &dir)?;\nlet duration = start.elapsed();\n\ntracker.metrics(\"scan_claude\", &E2ePerformanceMetrics {\n duration_ms: duration.as_millis() as u64,\n items_processed: Some(sessions.len() as u64),\n ..Default::default()\n});\n```\n\n2. **Add aggregate metrics at test end:**\n```rust\ntracker.metrics(\"scan_all_connectors\", &E2ePerformanceMetrics {\n duration_ms: total_duration.as_millis() as u64,\n items_processed: Some(total_sessions as u64),\n throughput_per_sec: Some(total_sessions as f64 / total_duration.as_secs_f64()),\n ..Default::default()\n});\n```\n\n### Suggested Metrics\n| Connector | Metric Name | Fields |\n|-----------|-------------|--------|\n| Claude | scan_claude | duration, session_count |\n| Codex | scan_codex | duration, session_count |\n| Cursor | scan_cursor | duration, session_count |\n| Gemini | scan_gemini | duration, session_count |\n| Aider | scan_aider | duration, session_count |\n| Aggregate | scan_all_connectors | total_duration, total_sessions, throughput |\n\n### Files to Modify\n- tests/e2e_multi_connector.rs\n\n### Testing Requirements (CRITICAL)\n\n1. **Verify per-connector metrics:**\n```bash\nE2E_LOG=1 cargo test --test e2e_multi_connector -- --nocapture\ncat test-results/e2e/*.jsonl | jq 'select(.event == \"metrics\" and (.name | startswith(\"scan_\")))'\n```\n\n2. **Verify aggregate metrics:**\n```bash\ncat test-results/e2e/*.jsonl | jq 'select(.name == \"scan_all_connectors\") | .metrics'\n```\n\n3. **Verify throughput calculated:**\n```bash\ncat test-results/e2e/*.jsonl | jq 'select(.event == \"metrics\" and .metrics.throughput_per_sec != null)'\n```\n\n### Acceptance Criteria\n- [ ] Each connector scan has timing metric\n- [ ] Session counts captured per connector\n- [ ] Aggregate metrics at test end include throughput\n- [ ] All metrics appear in JSONL output\n- [ ] Metrics values are reasonable","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-27T17:20:50.618065Z","created_by":"ubuntu","updated_at":"2026-01-27T19:45:08.568847Z","closed_at":"2026-01-27T19:45:08.568688Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-154c","depends_on_id":"coding_agent_session_search-wjuo","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-154l","title":"E2E CLI flows: index/search/status/health/diag/view","description":"Add full CLI E2E scripts covering all major commands with log bundles per run.\\n\\nDetails:\\n- Index (full + watch-once), search (lexical/semantic/hybrid), status/health/diag, view/expand.\\n- Capture trace files + stderr logs and verify JSON schema outputs.\\n- Use deterministic fixtures and data_dir isolation.","acceptance_criteria":"1) Index/search/status/health/diag/view/expand are exercised end-to-end with real data dirs.\n2) JSON outputs are schema-validated and stable.\n3) Logs + traces captured per test with standard layout.\n4) Both success and error paths covered (invalid flags, missing index).","notes":"Notes:\n- Use watch-once to exercise watcher path without long-running daemons.\n- Ensure all outputs are machine-readable in robot mode.","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-27T18:14:54.192775Z","created_by":"ubuntu","updated_at":"2026-01-27T21:20:07.297276Z","closed_at":"2026-01-27T21:20:07.297125Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-154l","depends_on_id":"coding_agent_session_search-2eqc","type":"parent-child","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-154l","depends_on_id":"coding_agent_session_search-2mmt","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-15tra","title":"Unit tests for frankensqlite adapter layer and migration framework","description":"TRACK: frankensqlite upstream prep (Track 3A)\nPARENT EPIC: Complete frankensqlite Integration\n\nWHAT: Comprehensive unit tests for the frankensqlite compat adapter layer and migration framework.\n\nTEST PLAN:\n\n1. PARAMS MACRO:\n - params![1i64, \\\"hello\\\", 3.14f64] produces correct SqliteValue array\n - params![] produces empty array\n - params![None::<i64>] produces SqliteValue::Null\n - params![true] produces SqliteValue::Integer(1)\n - params![false] produces SqliteValue::Integer(0)\n - params![vec![1u8, 2, 3]] produces SqliteValue::Blob\n\n2. FROM IMPLS:\n - From<bool>: true → Integer(1), false → Integer(0)\n - From<Option<i64>>: Some(42) → Integer(42), None → Null\n - From<u32>, From<u64>: correct conversion (with overflow check for u64 > i64::MAX)\n - From<usize>: correct conversion\n\n3. TYPED ROW EXTRACTION (RowExt):\n - row.get_typed::<i64>(0) on Integer column → correct value\n - row.get_typed::<String>(1) on Text column → correct value\n - row.get_typed::<Option<i64>>(2) on NULL → None\n - row.get_typed::<f64>(0) on Integer column → type coercion (or error)\n - row.get_typed::<i64>(99) → index out of bounds error\n - row.get_typed::<bool>(0) on Integer(1) → true, Integer(0) → false\n\n4. QUERY WITH CLOSURE (ConnectionExt):\n - query_row_map: returns closure-transformed value\n - query_map_collect: returns Vec of closure-transformed values\n - query_row_map on empty result → QueryReturnedNoRows error\n - query_map_collect on empty result → empty Vec (not error)\n\n5. EXECUTE_BATCH:\n - Multi-statement SQL separated by ';': all statements execute\n - SQL with comments (-- and /* */): handled correctly\n - Empty string: no-op, no error\n - Single statement without ';': executes correctly\n - PRAGMA blocks (typical cass usage): all PRAGMAs applied\n\n6. TRANSACTION:\n - transaction() + commit() → changes persist (verified by re-query)\n - transaction() + drop (no commit) → changes rolled back\n - execute within transaction → works correctly\n - query_row_map within transaction → works correctly\n - Error during transaction → clean rollback on drop\n\n7. OPTIONAL EXTENSION:\n - Ok(value).optional() → Ok(Some(value))\n - Err(QueryReturnedNoRows).optional() → Ok(None)\n - Err(other_error).optional() → Err(other_error) (passes through)\n\n8. OPEN FLAGS:\n - open_with_flags(READ_ONLY) → writes fail with appropriate error\n - open_with_flags(READ_WRITE | CREATE) → creates new DB\n - open_with_flags(READ_WRITE) on existing DB → succeeds\n\n9. PARAMS_FROM_ITER:\n - params_from_iter(vec![1i64, 2, 3]) → correct Vec<SqliteValue>\n - params_from_iter(std::iter::empty()) → empty Vec\n - params_from_iter(mixed types via Into<SqliteValue>) → correct conversion\n\n10. MIGRATION FRAMEWORK:\n - Fresh DB: all migrations applied in order (V1, V2, ..., V13)\n - Existing DB at V5: only V6-V13 applied\n - Idempotent: running twice applies nothing second time\n - Failed migration: rolls back, version unchanged, error reported\n - Migration result: applied list, current version, was_fresh flag all correct\n\n11. RUSQLITE PARITY (golden test):\n - For 10 representative SQL patterns from cass, execute via both rusqlite and compat adapter\n - Compare results: row counts, column values, NULL handling\n - Patterns: INSERT, SELECT with JOIN, UPDATE, DELETE, UPSERT, GROUP BY + HAVING, FTS5 MATCH, LIKE, subquery\n\nFILES: frankensqlite/fsqlite/tests/compat_tests.rs, frankensqlite/fsqlite/tests/migration_tests.rs","status":"closed","priority":2,"issue_type":"task","created_at":"2026-02-27T05:24:18.277953Z","created_by":"ubuntu","updated_at":"2026-03-01T05:48:54.621351Z","closed_at":"2026-03-01T05:48:54.621122Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-15tra","depends_on_id":"coding_agent_session_search-1xavn","type":"blocks","created_at":"2026-02-27T05:27:47.818212Z","created_by":"ubuntu","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-15tra","depends_on_id":"coding_agent_session_search-39myk","type":"blocks","created_at":"2026-02-27T05:27:48.121667Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1612","title":"Wire HTML export into CLI and TUI entry points","description":"## Overview\nFinal integration task that wires the TUI export modal into the application and connects the CLI command handler to call the export pipeline.\n\n## Scope Clarification\n- **This bead**: TUI modal integration + CLI command handler wiring\n- **bd-24uo**: CLI argument parsing, robot mode JSON output, batch export\n- No duplication - this bead calls into the components defined in bd-24uo\n\n## TUI Integration\n\n### Keybinding Registration\n```rust\n// In src/ui/keybindings.rs\nKeyBinding::new('e', \"Export session as HTML\", Action::OpenExportModal),\nKeyBinding::new(KeyCode::Char('E').with_ctrl(), \"Quick export with defaults\", Action::QuickExport),\n```\n\n### Export Modal State\n```rust\n// In src/ui/state.rs\npub struct AppState {\n // ... existing fields ...\n pub export_modal: Option<ExportModalState>,\n}\n\npub enum AppAction {\n // ... existing actions ...\n OpenExportModal,\n CloseExportModal,\n ExecuteExport,\n ExportComplete(Result<ExportResult, ExportError>),\n}\n```\n\n### Modal Component Mounting\n```rust\n// In src/ui/app.rs\nfn render_modals(&self, frame: &mut Frame, area: Rect) {\n if let Some(ref export_state) = self.state.export_modal {\n let modal = ExportModal::new(export_state);\n frame.render_widget(modal, centered_rect(60, 80, area));\n }\n}\n```\n\n### Async Export Handling\n```rust\n// Export runs in background task\nfn handle_export_action(&mut self) {\n let session = self.get_selected_session();\n let options = self.state.export_modal.as_ref().unwrap().to_options();\n \n // Spawn async task\n let (tx, rx) = tokio::sync::oneshot::channel();\n tokio::spawn(async move {\n let result = export_session_to_html(&session, &options).await;\n let _ = tx.send(result);\n });\n \n self.state.export_modal.as_mut().unwrap().export_state = ExportProgress::Preparing;\n self.pending_export = Some(rx);\n}\n\n// Poll for completion in update loop\nfn poll_export(&mut self) {\n if let Some(ref mut rx) = self.pending_export {\n if let Ok(result) = rx.try_recv() {\n self.handle_export_result(result);\n self.pending_export = None;\n }\n }\n}\n```\n\n## CLI Command Handler\n\n### Handler Function\n```rust\n// In src/cli.rs\npub async fn handle_export_html(args: ExportHtmlArgs) -> Result<(), CliError> {\n // Load session\n let session = load_session(&args.session)?;\n \n // Build options from args\n let options = ExportOptions {\n output_dir: args.output_dir,\n filename: args.filename,\n encrypt: args.encrypt,\n password: get_password(&args)?,\n include_tools: args.include_tools,\n enable_cdns: !args.no_cdns,\n ..Default::default()\n };\n \n // Execute export\n let result = export_session_to_html(&session, &options).await?;\n \n // Output based on mode\n if args.robot {\n output_json(&ExportResponse::success(result))?;\n } else {\n println!(\"✓ Exported to {}\", result.output_path.display());\n if args.open {\n open_in_browser(&result.output_path)?;\n }\n }\n \n Ok(())\n}\n```\n\n### Open in Browser (--open flag)\n```rust\nfn open_in_browser(path: &Path) -> Result<(), CliError> {\n #[cfg(target_os = \"macos\")]\n std::process::Command::new(\"open\").arg(path).spawn()?;\n \n #[cfg(target_os = \"linux\")]\n std::process::Command::new(\"xdg-open\").arg(path).spawn()?;\n \n #[cfg(target_os = \"windows\")]\n std::process::Command::new(\"explorer\").arg(path).spawn()?;\n \n Ok(())\n}\n```\n\n## Progress Feedback\n\n### TUI Progress Indicator\n```rust\n// Show spinner during export\nfn render_export_progress(&self, frame: &mut Frame, area: Rect) {\n let progress = match self.state.export_modal.as_ref().unwrap().export_state {\n ExportProgress::Preparing => \"Preparing export...\",\n ExportProgress::Encrypting => \"Encrypting content...\",\n ExportProgress::Writing => \"Writing file...\",\n ExportProgress::Complete(_) => \"Complete!\",\n ExportProgress::Error(_) => \"Error\",\n _ => \"Idle\",\n };\n \n let spinner = Spinner::new(progress);\n frame.render_widget(spinner, area);\n}\n```\n\n### CLI Progress (non-robot mode)\n```rust\n// Simple progress for CLI\nif !args.robot {\n eprintln!(\"Exporting session...\");\n}\n```\n\n## Error Handling\n\n### TUI Error Display\n```rust\nfn handle_export_result(&mut self, result: Result<ExportResult, ExportError>) {\n match result {\n Ok(export) => {\n self.state.export_modal.as_mut().unwrap().export_state = \n ExportProgress::Complete(export.output_path.clone());\n self.show_toast(&format!(\"Exported to {}\", export.output_path.display()), ToastType::Success);\n }\n Err(e) => {\n self.state.export_modal.as_mut().unwrap().export_state = \n ExportProgress::Error(e.to_string());\n self.show_toast(&format!(\"Export failed: {}\", e), ToastType::Error);\n }\n }\n}\n```\n\n### CLI Error Mapping\n```rust\nimpl From<ExportError> for CliError {\n fn from(e: ExportError) -> Self {\n match e {\n ExportError::SessionNotFound(_) => CliError::new(3, \"session_not_found\", ...),\n ExportError::OutputDirNotWritable(_) => CliError::new(4, \"output_not_writable\", ...),\n ExportError::EncryptionFailed(_) => CliError::new(5, \"encryption_error\", ...),\n ExportError::PasswordRequired => CliError::new(6, \"password_required\", ...),\n }\n }\n}\n```\n\n## Integration Points\n\n### Session Selection\nExport modal can be opened from:\n1. Search results list (with session selected)\n2. Session detail view\n3. Command palette\n\n### Success Actions\nAfter successful export:\n1. Show toast notification\n2. Offer to open file\n3. Offer to open containing folder\n4. Copy path to clipboard\n\n## Files Modified\n- src/ui/app.rs - Add modal state and handlers\n- src/ui/keybindings.rs - Add export keybindings\n- src/ui/components/mod.rs - Export ExportModal component\n- src/cli.rs - Add export-html command handler\n- src/main.rs - Wire command to handler\n\n## Acceptance Criteria\n- [ ] 'e' key opens export modal in TUI\n- [ ] Ctrl+E quick exports with defaults\n- [ ] Export progress visible in modal\n- [ ] Success/error feedback displayed\n- [ ] CLI export-html command works\n- [ ] --open flag opens browser\n- [ ] Error codes correct for each failure type\n- [ ] Both TUI and CLI use same export pipeline","notes":"### Testing & Logging\n- Unit: CLI arg parsing for export flags + error cases; TUI command wiring events.\n- Integration: CLI export against fixtures verifies file creation, exit codes, and summary output.\n- E2E: PTY-driven TUI flow (open modal -> export -> confirm path) with captured logs.\n- Logging: CLI summary includes path, bytes, duration, encryption status; robot output passes through bxi5 logs.\n\n### Scope Note\n- CLI/TUI wiring should land independent of print/CDN polish; those remain optional follow-ons.","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-25T20:34:22.436319Z","created_by":"ubuntu","updated_at":"2026-01-26T01:24:52.568568Z","closed_at":"2026-01-26T01:20:32.496564Z","close_reason":"TUI and CLI export wiring fully implemented: export modal opens with 'e' key, Ctrl+E for quick export, background thread export with progress feedback, export-html CLI command with all options","source_repo":".","compaction_level":0,"original_size":0,"labels":["html-export"],"dependencies":[{"issue_id":"coding_agent_session_search-1612","depends_on_id":"coding_agent_session_search-120r","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-1612","depends_on_id":"coding_agent_session_search-1ics","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-1612","depends_on_id":"coding_agent_session_search-24uo","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-1612","depends_on_id":"coding_agent_session_search-2r58","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-1612","depends_on_id":"coding_agent_session_search-8w6y","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}],"comments":[{"id":93,"issue_id":"coding_agent_session_search-1612","author":"Dicklesworthstone","text":"DEPENDENCY STATUS: All core dependencies (template, CSS, JS, encryption, renderer, filename) are now CLOSED. This bead is unblocked for implementation. Remaining work: 1) TUI modal integration (bd-1ics in progress), 2) CLI command handler wiring. See bd-24uo for robot mode API details.","created_at":"2026-01-25T23:46:22Z"},{"id":94,"issue_id":"coding_agent_session_search-1612","author":"Dicklesworthstone","text":"🤖 AGENT CLAIM: Starting work on CLI/TUI wiring. Dependencies bd-1ics (TUI modal) and bd-24uo (robot API) are in progress but have core components complete. Will wire existing html_export module into CLI entry points first.","created_at":"2026-01-26T00:17:37Z"},{"id":95,"issue_id":"coding_agent_session_search-1612","author":"Dicklesworthstone","text":"AGENT COMPLETED: Reviewed with fresh eyes - fixed Ctrl+E quick export (auto-focuses Export button), fixed flaky log test. All 97 html_export tests passing. All acceptance criteria verified.","created_at":"2026-01-26T01:24:52Z"}]}
{"id":"coding_agent_session_search-16bz","title":"Epic: Adopt xf bake-off winners (embeddings + rerank + daemon)","description":"## Goal\nBring **post-2025-10 bake-off winners** (from xf) into cass so semantic search is fast, reliable, CPU-friendly.\n\n## External Dependencies\n- xf bake-off report (bd-5fj3)\n- xf daemon protocol/spec (bd-31z + subtasks)\n\n## Testing & Logging Mandate\nAll child tasks must include:\n- Unit tests\n- Integration tests\n- E2E scripts with detailed logging\n\n## Success Criteria\n- Winner models integrated without regressions\n- Optional reranking works\n- Daemon client works with fallback","notes":"### Testing & Logging\n- Each child task ships unit + integration + e2e scripts with JSON log output.\n- Bakeoff validation and daemon integration must publish per-run reports in docs/.\n- Require comparison table vs baseline (quality + latency) in the test report.","status":"closed","priority":1,"issue_type":"epic","created_at":"2026-01-23T21:22:32.535336Z","created_by":"ubuntu","updated_at":"2026-01-30T03:34:52.133523Z","closed_at":"2026-01-30T03:34:52.133364Z","close_reason":"All 5 child tasks closed: bd-39th (validation run), bd-3bbv (CLI flags), bd-1lps (daemon client), bd-2t2d (reranker), bd-2mbe (embedder selection). Semantic search infrastructure complete. Hash embedder shows 2.9x quality improvement over lexical in validation (NDCG 0.12 vs 0.04).","source_repo":".","compaction_level":0,"original_size":0,"comments":[{"id":96,"issue_id":"coding_agent_session_search-16bz","author":"Dicklesworthstone","text":"Progress update: 3/5 child tasks now closed (bd-2t2d reranker, bd-2mbe embedder registry, bd-3bbv CLI flags). Remaining: bd-1lps daemon integration (blocked on external xf specs), bd-39th validation (blocked on daemon). Core semantic search infrastructure is complete.","created_at":"2026-01-25T17:31:31Z"},{"id":97,"issue_id":"coding_agent_session_search-16bz","author":"Dicklesworthstone","text":"STATUS UPDATE (2026-01-25): 3/5 child tasks closed (bd-2t2d reranker, bd-2mbe embedder registry, bd-3bbv CLI flags). IN PROGRESS: bd-1lps daemon integration (blocked on external xf specs). OPEN: bd-39th validation (blocked on daemon). Core semantic search infrastructure is complete.","created_at":"2026-01-25T23:47:37Z"},{"id":98,"issue_id":"coding_agent_session_search-16bz","author":"Dicklesworthstone","text":"Picked up bd-16bz. Will focus on unblocking bd-39th (validation) once daemon spec is available; starting by auditing current daemon integration + identifying any prep we can do without the daemon. Note: agent-mail MCP unreachable from this session, so coordination via comments for now.","created_at":"2026-01-26T01:05:32Z"}]}
{"id":"coding_agent_session_search-16pz","title":"[Task] Opt 7.3: Add SQLite caching equivalence tests","description":"## Objective\nVerify SQLite ID caching produces identical database state.\n\n## Test Categories\n\n### 1. Data Integrity Tests\n```rust\n#[test]\nfn test_sqlite_cache_equivalence() {\n let corpus = load_test_corpus();\n \n // Index without cache\n std::env::set_var(\"CASS_SQLITE_CACHE\", \"0\");\n let db1 = index_corpus(&corpus);\n let state1 = dump_db_state(&db1);\n \n // Index with cache\n std::env::remove_var(\"CASS_SQLITE_CACHE\");\n let db2 = index_corpus(&corpus);\n let state2 = dump_db_state(&db2);\n \n assert_eq!(state1.agent_rows, state2.agent_rows);\n assert_eq!(state1.workspace_rows, state2.workspace_rows);\n assert_eq!(state1.message_counts, state2.message_counts);\n}\n```\n\n### 2. ID Consistency Tests\n- Same agent name → same ID across multiple lookups\n- Same workspace name → same ID across multiple lookups\n- IDs are stable across indexing runs\n\n### 3. Cache Behavior Tests\n- Cache hit ratio measurement\n- Cache clear on transaction boundary\n- No stale data after DB modification\n\n### 4. Stress Tests\n- Large corpus (1000+ conversations)\n- Many unique agents/workspaces\n- Repeated indexing of same corpus\n\n## Parent Feature\ncoding_agent_session_search-331o (Opt 7: SQLite N+1 ID Caching)","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T03:27:44.150967Z","created_by":"ubuntu","updated_at":"2026-01-15T21:06:24.359561Z","closed_at":"2026-01-15T21:06:24.359561Z","close_reason":"Added 8 SQLite caching equivalence tests: data integrity, ID consistency, cache behavior (hits/misses/clear), and stress tests. All pass.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-16pz","depends_on_id":"coding_agent_session_search-mbei","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-172dg","title":"Wire SyncTwoTierSearcher into production search pipeline (Phase 2 - optional)","description":"TRACK: cass enhancement (optional)\nPARENT EPIC: Complete frankensearch Integration\n\nOPTIONAL ENHANCEMENT: Wire frankensearch's SyncTwoTierSearcher into cass's production search pipeline to enable progressive two-tier search in the TUI.\n\nPREREQUISITES:\n- Phase 1 bead (2fu7e) must be complete (internal TwoTierSearcher delegated to frankensearch)\n- SyncTwoTierSearcher must exist in frankensearch-fusion (bead cgh4s)\n- InMemoryVectorIndex/InMemoryTwoTierIndex must exist (bead 14mzc)\n\nWHAT THIS DOES:\n1. Modify search_semantic() in query.rs to optionally use SyncTwoTierSearcher instead of single-tier VectorIndex.search_top_k()\n2. Add progressive delivery: show fast results immediately in TUI, refine when quality tier completes\n3. Use SyncSearchIterator for TUI polling: next() returns Phase 1 (fast), then Phase 2 (quality-refined)\n4. This improves search result quality by blending fast + quality tier scores\n\nCURRENT STATE: Production semantic search at query.rs:2280 uses fs_index.search_top_k(&embedding, fetch, fs_filter) — single-tier, no progressive refinement.\n\nNEW BEHAVIOR (with this bead):\n- TUI search calls SyncTwoTierSearcher.search_iter()\n- Phase 1 (fast): sub-10ms, f16 brute-force, shows results immediately\n- Phase 2 (quality): 50-200ms, full embedding comparison, re-ranks results\n- Score blending via frankensearch::blend_two_tier()\n\nFEATURE FLAG: Gate behind --progressive-search flag or config option, since this requires both fast AND quality vector indexes. Users who don't have dual indexes get current single-tier behavior unchanged.\n\nFILES TO MODIFY: src/search/query.rs (search_semantic function), src/ui/app.rs (progressive result handling)\n\nTESTS:\n- Test progressive delivery: Phase 1 arrives before Phase 2\n- Test fallback: without quality index, gracefully falls back to single-tier\n- Test TUI rendering: results update smoothly on Phase 2 arrival\n- Performance: P50 Phase 1 < 10ms, P50 Phase 2 < 200ms\n\nTHIS IS A P3 OPTIONAL ENHANCEMENT — not needed for library integration. The integration is complete without this bead.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-02-27T22:41:35.066110Z","created_by":"ubuntu","updated_at":"2026-03-31T18:20:10.988970548Z","closed_at":"2026-03-31T18:20:10.988637694Z","close_reason":"Superseded by epic coding_agent_session_search-ibuuh (default hybrid + fail-open lexical + background semantic backfill)","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-172dg","depends_on_id":"coding_agent_session_search-2fu7e","type":"blocks","created_at":"2026-02-27T22:41:39.558148Z","created_by":"ubuntu","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-172dg","depends_on_id":"coding_agent_session_search-cgh4s","type":"blocks","created_at":"2026-02-27T22:41:39.247274Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-17g6","title":"Enhance Playwright reporter with phase events","description":"## Priority 3: Enhance Playwright Reporter with Phase Events\n\n### Current Issue\nThe Playwright JSONL reporter (tests/e2e/reporters/jsonl-reporter.ts) emits run_start/test_start/test_end/run_end but lacks phase_start/phase_end support for granular test tracking.\n\n### Required Changes\n\n1. **Hook into test.step() as phase boundaries:**\n\n```typescript\n// In jsonl-reporter.ts\n\nonStepBegin(test: TestCase, result: TestResult, step: TestStep) {\n if (step.category === 'test.step') {\n this.emitEvent({\n event: 'phase_start',\n phase: {\n name: this.slugify(step.title),\n description: step.title\n },\n test: this.getTestInfo(test)\n });\n this.stepStartTimes.set(step, Date.now());\n }\n}\n\nonStepEnd(test: TestCase, result: TestResult, step: TestStep) {\n if (step.category === 'test.step') {\n const startTime = this.stepStartTimes.get(step) || Date.now();\n const duration_ms = Date.now() - startTime;\n \n this.emitEvent({\n event: 'phase_end',\n phase: {\n name: this.slugify(step.title),\n description: step.title\n },\n duration_ms,\n test: this.getTestInfo(test)\n });\n }\n}\n```\n\n2. **Update spec files to use test.step():**\n\n```typescript\n// Example in encryption/password-flow.spec.ts\ntest('encrypts and decrypts content', async ({ page }) => {\n await test.step('Load encrypted page', async () => {\n await page.goto('/encrypted.html');\n });\n \n await test.step('Enter password', async () => {\n await page.fill('#password', 'secret');\n await page.click('#submit');\n });\n \n await test.step('Verify decrypted content', async () => {\n await expect(page.locator('.content')).toBeVisible();\n });\n});\n```\n\n### Files to Modify\n- tests/e2e/reporters/jsonl-reporter.ts\n\n### Files to Update (optional - for better phase coverage)\n- tests/e2e/encryption/password-flow.spec.ts\n- tests/e2e/interactivity/search.spec.ts\n- Other complex spec files\n\n### Testing Requirements (CRITICAL)\n\n1. **Unit tests for reporter (tests/e2e/reporters/jsonl-reporter.test.ts):**\n```typescript\nimport { JsonlReporter } from './jsonl-reporter';\n\ndescribe('JsonlReporter', () => {\n it('emits phase_start on step begin', () => {\n const reporter = new JsonlReporter();\n const events: any[] = [];\n reporter.emitEvent = (e) => events.push(e);\n \n reporter.onStepBegin(mockTest, mockResult, mockStep);\n \n expect(events).toContainEqual(expect.objectContaining({\n event: 'phase_start',\n phase: expect.objectContaining({ name: expect.any(String) })\n }));\n });\n \n it('emits phase_end with duration on step end', () => {\n const reporter = new JsonlReporter();\n const events: any[] = [];\n reporter.emitEvent = (e) => events.push(e);\n \n reporter.onStepBegin(mockTest, mockResult, mockStep);\n // Simulate some time passing\n reporter.onStepEnd(mockTest, mockResult, mockStep);\n \n expect(events).toContainEqual(expect.objectContaining({\n event: 'phase_end',\n duration_ms: expect.any(Number)\n }));\n });\n});\n```\n\n2. **Integration test:**\n```bash\n# Run Playwright tests and check for phase events\nnpx playwright test encryption/password-flow.spec.ts\ncat test-results/e2e/playwright_*.jsonl | jq 'select(.event == \"phase_start\" or .event == \"phase_end\")'\n# Should show phase events\n```\n\n### Acceptance Criteria\n- [ ] Phase events emitted for test.step() calls\n- [ ] Duration calculated correctly (> 0ms)\n- [ ] Phase names are slugified for consistency\n- [ ] Events follow existing schema format\n- [ ] Unit tests for reporter pass\n- [ ] Integration test shows phase events in JSONL","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-27T17:21:37.332870Z","created_by":"ubuntu","updated_at":"2026-01-27T22:26:05.835893Z","closed_at":"2026-01-27T22:26:05.835823Z","close_reason":"Already implemented - jsonl-reporter.ts has onStepBegin/onStepEnd methods (lines 260-287) that emit phase_start/phase_end events for test.step() calls","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-18662","title":"Eliminate panic-based test branches in daemon protocol","description":"With bv triage empty, take proactive hardening: replace panic!(\"expected ...\") test branches in src/daemon/protocol.rs with assert/matches checks to remove panic-surface criticals from UBS and improve test diagnostics.","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-02-10T00:16:33.700340Z","created_by":"ubuntu","updated_at":"2026-02-10T00:18:31.928470Z","closed_at":"2026-02-10T00:18:31.928446Z","close_reason":"Completed","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-18bck","title":"Fix Windows binary builds in CI release pipeline (GH#66)","description":"## Problem\n\nWindows binaries are missing from v0.1.63 and v0.1.64 releases. Scoop install and PowerShell install script both 404. The CI release workflow at `.github/workflows/release.yml` includes a Windows matrix entry (lines 51-55: `os: windows-latest, target: x86_64-pc-windows-msvc`) but the artifacts are not appearing in releases.\n\n## Investigation Plan\n\n### 1. Check GH Actions run logs for recent release tags\n\nRun `gh run list --workflow=release.yml -L 5` to see if Windows jobs failed or were skipped. Check `gh run view <id> --log-failed` for the specific Windows job.\n\n### 2. Common Windows build failure modes\n\n- **fastembed/ort ONNX runtime**: The project uses `fastembed` (Cargo.toml line 70) with `ort-download-binaries` feature. ONNX runtime download can fail on Windows runners due to network timeouts or path length issues.\n- **Nightly vs stable toolchain**: Recent commit `59835155` switched from nightly to stable. If the Cargo.toml uses nightly-only features, Windows builds could fail silently.\n- **PowerShell script syntax**: The Windows zip creation step (release.yml:91-104) uses PowerShell. Check for encoding issues with `Out-File -Encoding ASCII`.\n\n### 3. Potential fixes\n\n- Add `continue-on-error: false` to Windows build step to ensure failures are visible\n- Add explicit error checking after the Compress-Archive step\n- Verify ONNX runtime downloads work on windows-latest runner\n- Test with `cargo build --release --target x86_64-pc-windows-msvc` locally via cross-compilation or CI debug run\n\n### 4. Install script verification\n\nCheck `install.ps1` exists at repo root and correctly constructs download URLs for the Windows zip artifact.\n\n## Files to Investigate\n\n- `.github/workflows/release.yml` lines 51-55 (Windows matrix), 91-104 (Windows packaging)\n- `Cargo.toml` line 70 (fastembed/ort dependency)\n- `install.ps1` (PowerShell installer)\n- `src/lib.rs:11245-11260` (Windows self-update code path)","acceptance_criteria":"1. Windows binary (cass.exe) present in next release\n2. `cass-windows-amd64.zip` and `.sha256` artifacts attached to release\n3. Scoop install succeeds: `scoop install cass`\n4. PowerShell installer succeeds: `irm install.ps1 | iex`\n5. Windows CI job completes successfully (not skipped, not failed)\n6. Self-update from Windows works: `cass --update`","notes":"## Diagnostic Steps\n\n1. `gh run list --workflow=release.yml -R Dicklesworthstone/coding_agent_session_search -L 5` -- check if Windows job shows as failed/skipped\n2. `gh run view <latest-release-run-id> --log-failed` -- get actual error message\n3. `gh release view v0.1.64 --json assets -q '.assets[].name'` -- confirm what artifacts exist\n\n## CI Verification\n\nAfter fix, trigger a test release:\n1. Create a pre-release tag: `git tag v0.1.65-rc1 && git push --tags`\n2. Monitor: `gh run watch`\n3. Verify Windows artifacts: `gh release view v0.1.65-rc1 --json assets -q '.assets[] | select(.name | contains(\"windows\"))'`\n4. Download and test: `gh release download v0.1.65-rc1 -p \"cass-windows-amd64.zip\"`\n\n## E2E Verification (post-fix)\n\n1. On a Windows machine or VM: download the zip, extract, run `cass.exe --version`\n2. Test Scoop manifest: verify JSON points to correct URL and SHA256\n3. Test PowerShell installer: `irm https://raw.githubusercontent.com/.../install.ps1 | iex`","status":"closed","priority":1,"issue_type":"bug","created_at":"2026-02-11T06:20:11.256824Z","created_by":"ubuntu","updated_at":"2026-02-11T16:26:13.139368Z","closed_at":"2026-02-11T16:26:13.139346Z","close_reason":"fixed: corrected install.ps1 download URL and self-update invocation","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-18u","title":"Enhance CLI Error Reporting for Agents","description":"Ensure all CLI errors in robot mode return structured JSON with 'did_you_mean', examples, and schema hints.","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-02T04:04:07.011854Z","updated_at":"2025-12-02T04:06:52.036782Z","closed_at":"2025-12-02T04:06:52.036782Z","close_reason":"Implemented structured JSON errors for robot mode.","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-1973p","title":"Add federated rebuild/search concurrency regression","description":"Extend e2e search/index concurrency coverage with a forced multi-shard/federated cass index --full --force-rebuild run. While rebuild publishes, both a direct live-index reader and concurrent cass search calls should observe stable results, and the post-publish live surface should remain a federated lexical bundle.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-04-23T20:53:55.167345240Z","created_by":"ubuntu","updated_at":"2026-04-23T20:56:14.699942359Z","closed_at":"2026-04-23T20:56:14.699570863Z","close_reason":"add federated reader and search regression for force-rebuild atomic publish","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-199ck","title":"EPIC: Cross-Library Integration Validation","description":"After all three library integrations are complete, validate that the full stack works correctly end-to-end. This includes E2E tests covering the complete pipeline (connector detection → indexing → storage → search → TUI display), performance regression benchmarks, TUI smoke tests, and documentation updates.\n\nGOAL: Prove that the fully-integrated cass (frankensearch + franken_agent_detection + frankensqlite) performs at least as well as the pre-integration version in all dimensions: correctness, performance, reliability, and user experience.\n\nDEPENDS ON: All three integration epics completing successfully.","status":"closed","priority":1,"issue_type":"epic","created_at":"2026-02-27T05:20:02.558788Z","created_by":"ubuntu","updated_at":"2026-04-24T21:34:08.808740783Z","closed_at":"2026-04-24T21:34:08.808320116Z","close_reason":"Acceptance criteria met by shipped cross-library gates: tests/e2e_full_integration.rs covers connector detection -> indexing -> frankensqlite storage -> search/robot JSON; tests/tui_integration_smoke.rs covers the integrated TUI stack with franken_agent_detection, frankensqlite storage, and frankensearch; targeted verification on 2026-04-24 passed via rch exec -- env CARGO_TARGET_DIR=/data/tmp/rch_target_cass_p7 cargo test --test e2e_full_integration (60 passed) and cargo test --test tui_integration_smoke (15 passed).","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-19bo","title":"[Task] Add Logging to semantic_index.sh","description":"Type: task","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-27T17:23:59.502864Z","updated_at":"2026-01-27T22:22:58.384328Z","closed_at":"2026-01-27T22:22:58.384254Z","close_reason":"Already complete - semantic_index.sh already sources e2e_log.sh and has comprehensive e2e_run_start, e2e_test_start/pass/fail/skip, and e2e_run_end logging","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-19bo","depends_on_id":"coding_agent_session_search-35nm","type":"parent-child","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1a51k","title":"Remove in-flight export path/status race in detail modal","description":"Detail modal currently sets status to an anticipated export path before background write. Under concurrent collisions, final deduped output path can differ. Update in-flight status messaging to avoid path drift and rely on ExportCompleted path for definitive output reporting.","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-02-22T06:54:19.657639Z","created_by":"ubuntu","updated_at":"2026-02-22T07:09:52.976441Z","closed_at":"2026-02-22T07:09:52.976410Z","close_reason":"Removed precomputed output path from in-flight export status text to eliminate path drift race; updated tests","source_repo":".","compaction_level":0,"original_size":0,"labels":["export","tui","ux"]}
{"id":"coding_agent_session_search-1auz","title":"Remove dead render_conversation function","description":"render_conversation() in renderer.rs is the old pre-consolidation renderer that loops render_message() per message. It has been completely superseded by render_message_groups() which renders MessageGroup articles with tool badges. Only one test uses render_conversation (test_conversation_with_agent_class). Migrate that test to use render_message_groups, then remove render_conversation from renderer.rs and mod.rs re-exports.","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-29T01:18:07.224280Z","created_by":"ubuntu","updated_at":"2026-01-29T01:23:04.301032Z","closed_at":"2026-01-29T01:23:04.300958Z","close_reason":"Removed render_conversation function and its test. Functionality covered by render_message_groups and test_render_message_groups_with_agent_class.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1auz","depends_on_id":"coding_agent_session_search-1nb6","type":"parent-child","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1b9z","title":"Feature: Warm Model Daemon Architecture (shared with xf)","description":"## Overview\nImplement a **standalone model daemon** for cass that keeps embedding + reranker models resident for instant CPU inference. Each tool (xf, cass) bundles its own daemon - they work independently without requiring the other to be installed.\n\n## Critical Architecture: Independent Tools\n\n**Problem**: xf and cass must work independently without requiring each other to be installed.\n\n**Solution**: Each tool bundles its own daemon implementation, but they're wire-compatible and can share if both are installed.\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│ WIRE-COMPATIBLE DAEMONS │\n├─────────────────────────────────────────────────────────────────┤\n│ │\n│ xf (standalone) cass (standalone) │\n│ ┌──────────────┐ ┌──────────────┐ │\n│ │ xf binary │ │ cass binary │ │\n│ │ └─ daemon │ │ └─ daemon │ │\n│ │ module │ │ module │ │\n│ └──────────────┘ └──────────────┘ │\n│ │ │ │\n│ │ Same socket path: /tmp/semantic-daemon-$USER.sock │\n│ │ │ │\n│ ▼ ▼ │\n│ ┌────────────────────────────────────────┐ │\n│ │ Shared UDS Socket (first-come wins) │ │\n│ │ - First tool to need it spawns daemon │ │\n│ │ - Second tool connects to existing │ │\n│ │ - Either daemon can serve both tools │ │\n│ └────────────────────────────────────────┘ │\n│ │\n└─────────────────────────────────────────────────────────────────┘\n```\n\n## How It Works\n\n### 1. Each Tool Has Full Daemon Code\n```rust\n// In cass/src/daemon/mod.rs (INDEPENDENT copy, not imported from xf)\npub mod client;\npub mod core;\npub mod models;\npub mod protocol;\npub mod resource;\n\n// Protocol is wire-compatible with xf's daemon\npub use protocol::{Request, Response, PROTOCOL_VERSION};\n```\n\n### 2. Shared Socket Path\n```rust\nfn default_socket_path() -> PathBuf {\n // Same path for both tools - enables sharing\n let user = std::env::var(\"USER\").unwrap_or_else(|_| \"unknown\".into());\n PathBuf::from(format!(\"/tmp/semantic-daemon-{}.sock\", user))\n}\n```\n\n### 3. First-Come Spawns, Others Connect\n```rust\nimpl DaemonClient {\n pub async fn connect_or_spawn() -> Result<Self> {\n let socket = default_socket_path();\n \n // Try to connect to existing daemon\n if let Ok(client) = Self::connect(&socket).await {\n tracing::info!(\"Connected to existing daemon\");\n return Ok(client);\n }\n \n // No daemon running - spawn our own\n tracing::info!(\"Spawning daemon\");\n spawn_daemon(&socket).await?;\n \n // Connect to newly spawned daemon\n Self::connect(&socket).await\n }\n}\n```\n\n### 4. Wire-Compatible Protocol\nBoth tools use identical MessagePack protocol:\n```rust\npub enum Request {\n Health,\n Embed { texts: Vec<String>, model: String, dims: Option<usize> },\n Rerank { query: String, documents: Vec<String>, model: String },\n Status,\n Shutdown,\n}\n```\n\n## Implementation for cass\n\n### File Structure\n```\ncass/src/\n├── daemon/\n│ ├── mod.rs # Re-exports\n│ ├── client.rs # DaemonClient (connect, embed, rerank)\n│ ├── core.rs # ModelDaemon server\n│ ├── models.rs # ModelManager, lazy loading\n│ ├── protocol.rs # Request/Response types (wire-compatible)\n│ └── resource.rs # Memory monitoring, nice/ionice\n├── search/\n│ └── semantic.rs # Uses DaemonClient\n└── main.rs\n```\n\n### Key Differences from xf\n\nThe daemon code is a **copy**, not a dependency:\n- Same protocol version (wire-compatible)\n- Same socket path (can share daemon)\n- Same model loading logic\n- Independent compilation (no xf dependency)\n\n### When Tools Share a Daemon\n\nIf user has both xf and cass installed:\n1. User runs `xf search \"query\"` → xf spawns daemon\n2. User runs `cass search \"query\"` → cass connects to existing daemon\n3. Both tools share warm models\n4. Either tool stopping doesn't affect the other (daemon keeps running)\n\n### When Tools Run Alone\n\nIf user only has cass:\n1. User runs `cass search \"query\"` → cass spawns its own daemon\n2. Works exactly the same, no xf dependency\n\n## Unit Tests\n```rust\n#[tokio::test]\nasync fn test_daemon_spawns_independently() {\n // cass should be able to spawn daemon without xf\n let client = DaemonClient::connect_or_spawn().await.unwrap();\n let health = client.health().await.unwrap();\n assert!(health.uptime_secs >= 0);\n}\n\n#[tokio::test]\nasync fn test_connect_to_existing_daemon() {\n // Spawn daemon\n let _first = DaemonClient::connect_or_spawn().await.unwrap();\n \n // Second connection should reuse\n let second = DaemonClient::connect_or_spawn().await.unwrap();\n let health = second.health().await.unwrap();\n assert!(health.uptime_secs > 0); // Already running\n}\n\n#[test]\nfn test_protocol_wire_compatibility() {\n // Ensure our protocol matches xf's\n let req = Request::Embed {\n texts: vec![\"test\".into()],\n model: \"all-MiniLM-L6-v2\".into(),\n dims: None,\n };\n let bytes = rmp_serde::to_vec(&req).unwrap();\n \n // This should deserialize with xf's protocol types too\n let decoded: Request = rmp_serde::from_slice(&bytes).unwrap();\n assert!(matches!(decoded, Request::Embed { .. }));\n}\n```\n\n## Acceptance Criteria\n- [ ] cass works without xf installed\n- [ ] cass daemon is wire-compatible with xf daemon\n- [ ] Tools share daemon when both installed (same socket)\n- [ ] First-to-need spawns, others connect\n- [ ] Fallback to direct inference if daemon unavailable\n- [ ] Unit tests verify independence","status":"closed","priority":1,"issue_type":"feature","created_at":"2026-01-28T05:03:46.175976Z","created_by":"ubuntu","updated_at":"2026-01-28T17:56:00.001998Z","closed_at":"2026-01-28T17:56:00.001918Z","close_reason":"Completed daemon module implementation with: protocol.rs (wire-compatible MessagePack), client.rs (UDS client with auto-spawn), core.rs (ModelDaemon server), models.rs (lazy model loading), resource.rs (memory monitoring, nice/ionice). All 39 daemon tests pass. Cass works standalone, shares socket with xf, and has graceful fallback.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1b9z","depends_on_id":"coding_agent_session_search-3olx","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1bc0e","title":"Style the detail find bar with border and background","description":"## What\n\nStyle the detail pane find bar (activated with `/` key) with a visible border, background, and styled match counter. Currently it has zero visual distinction from content.\n\n## Where\n\n- **app.rs:~4895-4910** — Find bar rendering:\n ```rust\n if let (Some(find), Some(find_rect)) = (&self.detail_find, find_area) {\n let find_style = styles.style(style_system::STYLE_TEXT_PRIMARY);\n let match_info = if find.matches.is_empty() { ... };\n let find_text = format!(\"/{}{}\", find.query, match_info);\n Paragraph::new(&*find_text)\n .style(find_style)\n .render(find_rect, frame);\n }\n ```\n\n## Current Rendering\n```\n/search_query (3/15)\n```\nPlain text, no border, no background. Blends into the content above it.\n\n## Target Rendering\n```\n─────────────────────────\n/search_query (3/15) ↑↓\n```\n- Top border (thin horizontal rule) separating find bar from content\n- Subtle background (STYLE_PANE_BASE or slightly darker surface)\n- `/` in accent color (STYLE_STATUS_INFO)\n- Query text in STYLE_TEXT_PRIMARY\n- Match counter: `(3/15)` in STYLE_TEXT_MUTED when matches found, STYLE_STATUS_WARNING when 0 matches\n- Navigation hint `↑↓` or `n/N` in STYLE_KBD_KEY (once that token is visual)\n\n## Implementation\n\n```rust\nif let (Some(find), Some(find_rect)) = (&self.detail_find, find_area) {\n // Background + top border\n let find_bg = if apply_style { pane_style } else { plain };\n Block::new()\n .borders(Borders::TOP)\n .border_type(border_type)\n .style(find_bg)\n .render(find_rect, frame);\n \n let inner = Block::new().borders(Borders::TOP).inner(find_rect);\n \n // Build styled spans\n let slash = Span::styled(\"/\", styles.style(STYLE_STATUS_INFO));\n let query = Span::styled(&find.query, styles.style(STYLE_TEXT_PRIMARY));\n let counter_style = if find.matches.is_empty() {\n styles.style(STYLE_STATUS_WARNING)\n } else {\n styles.style(STYLE_TEXT_MUTED)\n };\n let counter = Span::styled(format!(\" ({}/{})\", \n find.current_match + 1, find.matches.len()), counter_style);\n let nav = Span::styled(\" n/N\", styles.style(STYLE_KBD_KEY));\n \n let line = Line::from_spans(vec![slash, query, counter, nav]);\n Paragraph::new(line).render(inner, frame);\n}\n```\n\n## Required Tests\n\n### Unit tests:\n1. `test_find_bar_has_top_border` — Activate find bar, render at width=60, verify the output has a TOP border (Borders::TOP used).\n2. `test_find_bar_match_count_styles` — With 3 matches: verify counter uses STYLE_TEXT_MUTED. With 0 matches: verify counter uses STYLE_STATUS_WARNING.\n3. `test_find_bar_slash_uses_accent` — Verify the `/` prefix is styled with STYLE_STATUS_INFO.\n4. `test_find_bar_respects_degradation` — At EssentialOnly: verify border is dropped (Borders::NONE). At NoStyling: verify styles are plain.\n\n### Snapshot test:\n5. `cassapp_detail_find_active.snap` — Detail pane with find bar active showing matches\n6. `cassapp_detail_find_no_matches.snap` — Find bar with no matches (warning styling)\n\n## Considerations\n- find_rect is typically 1-2 rows tall. If height==1, skip the border (no room) and just use background color.\n- The find bar appears at BOTTOM of the detail pane. Ensure it does not overlap the scroll position indicator `(12/847) (1%)`.\n- When find bar is dismissed (Esc), the area is reclaimed by content — verify no visual artifacts remain.\n\n## Acceptance\n- Find bar has visible top border separating it from content\n- `/` prefix in accent color\n- Match counter styled differently for matches vs no-matches\n- Navigation hint shown\n- Degradation-aware\n- 4 unit tests + 2 snapshot tests pass\n- No clippy warnings","status":"closed","priority":2,"issue_type":"task","created_at":"2026-02-08T19:31:54.862372Z","created_by":"ubuntu","updated_at":"2026-02-08T19:57:02.093780Z","closed_at":"2026-02-08T19:57:02.093761Z","close_reason":"Superseded by canonical FTUI bead graph under coding_agent_session_search-2dccg (Tracks A-K) with preserved scope and stronger dependency/test/logging coverage.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1bc0e","depends_on_id":"coding_agent_session_search-2dccg.4","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1bqi","title":"[Feature] Performance Metrics Collection","description":"## Feature: Performance Metrics Collection\n\nEmit performance metrics during E2E tests for regression detection.\n\n### Metrics to Collect\n| Metric | Unit | Description |\n|--------|------|-------------|\n| `indexing_duration_ms` | ms | Time to index test corpus |\n| `search_latency_p50_ms` | ms | Median search query time |\n| `search_latency_p99_ms` | ms | 99th percentile search time |\n| `memory_peak_kb` | KB | Peak memory usage |\n| `index_size_bytes` | bytes | Size of search index |\n| `files_processed` | count | Number of files indexed |\n| `queries_per_second` | qps | Search throughput |\n\n### Implementation\n```rust\n// In tests/util/e2e_log.rs\npub fn emit_metric(name: &str, value: f64, unit: &str) -> Result<()> {\n let event = json\\!({\n \"ts\": Utc::now().to_rfc3339(),\n \"event\": \"metric\",\n \"name\": name,\n \"value\": value,\n \"unit\": unit,\n \"run_id\": run_id()\n });\n writeln\\!(log_file(), \"{}\", event)?;\n Ok(())\n}\n```\n\n### Usage\n```rust\nlet start = Instant::now();\nindexer.index_all()?;\nemit_metric(\"indexing_duration_ms\", start.elapsed().as_millis() as f64, \"ms\")?;\n```\n\n### Baseline Tracking\n- Store baselines in `test-results/baselines.json`\n- Alert if metric exceeds baseline by >20%\n- Update baseline after confirmed improvements\n\n### Acceptance Criteria\n- [ ] `emit_metric` function in e2e_log\n- [ ] 7 metrics collected per E2E run\n- [ ] Baseline comparison implemented\n- [ ] Alert on regression >20%\n- [ ] Metrics visible in JSONL output","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-01-27T17:23:59.502864Z","updated_at":"2026-01-27T23:26:26.999945Z","closed_at":"2026-01-27T23:26:26.999811Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1bqi","depends_on_id":"coding_agent_session_search-1ohe","type":"parent-child","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1c25","title":"P6.14f: Replace UI/TUI mock data with real indexed fixtures","description":"# P6.14f: Replace UI/TUI mock data with real indexed fixtures\n\n## Goal\nRemove test-only mock hit structures in `src/ui/tui.rs` tests by using real indexed fixtures and real search hits.\n\n## Why\nUI tests currently construct synthetic `MockHit`/`MockPane` objects, which do not validate the real data path from index -> query -> render.\n\n## Plan\n1. Add a small fixture index (real JSONL sessions) in `tests/fixtures/`.\n2. Build a real Tantivy + SQLite index in test setup.\n3. Use real search queries to generate `SearchHit` values for TUI rendering.\n4. Update snapshot tests to use real hits and remove Mock* types.\n\n## Acceptance Criteria\n- MockHit/MockPane removed or allowlisted with rationale.\n- UI tests exercise real indexing + query pipeline.\n- Snapshot baselines updated and stable.\n\n## Dependencies\n- Uses audit results from P6.14a.\n- Prefer to align with P6.5 integration test fixtures.","status":"closed","priority":2,"issue_type":"task","assignee":"CalmMarsh","created_at":"2026-01-26T06:01:25.566243Z","created_by":"ubuntu","updated_at":"2026-01-26T17:19:37.229283Z","closed_at":"2026-01-26T17:19:37.229097Z","close_reason":"MockHit/MockPane removed from src/ui/tui.rs. Test now uses real AgentPane and SearchHit types via make_hit() helper. All UI tests use real indexing + query pipeline. Verified by multiple agents.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1c25","depends_on_id":"coding_agent_session_search-22k2","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-1c25","depends_on_id":"coding_agent_session_search-qlil","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}],"comments":[{"id":100,"issue_id":"coding_agent_session_search-1c25","author":"Dicklesworthstone","text":"Verified by WindyDune (2026-01-26): MockHit/MockPane are removed from src/ui/tui.rs. Grep shows only doc references remain. All 1466 lib tests pass including TUI tests. Task appears complete - ready for closure.","created_at":"2026-01-26T17:10:46Z"}]}
{"id":"coding_agent_session_search-1c6z","title":"Task 2: Implement message grouping algorithm in lib.rs","description":"# Objective\nImplement message grouping algorithm supporting multiple agent formats with tool call correlation.\n\n## Location\nsrc/lib.rs - New function group_messages_for_export()\n\n## Supported Agent Formats\n\n### Claude Code Format\n- Messages in content array with type: \"tool_use\" and \"tool_result\"\n- Correlation via tool_use_id field\n- Assistant message may contain BOTH text AND tool_use in same message\n\n### Codex Format \n- Separate \"function_call\" and \"function\" role messages\n- Correlation via function call name\n\n### Cursor/Other Formats\n- Various structures, need to detect and handle\n\n### OpenCode Format\n- Special handling already exists (is_opencode flag)\n\n## Algorithm Design\n\n```rust\n/// Message classification for grouping\n#[derive(Debug, Clone, Copy, PartialEq)]\nenum MessageClassification {\n UserContent, // User message with actual text\n AssistantContent, // Assistant with text (may also have tools)\n AssistantToolOnly, // Assistant with only tool calls, no text\n ToolResult, // Response to a tool call\n System, // System message\n Empty, // No content, skip\n}\n\n/// Groups flat messages into MessageGroups with tool correlation.\n/// \n/// # Algorithm\n/// 1. Classify each message\n/// 2. User/Assistant content messages start new groups\n/// 3. Tool-only messages attach to current assistant group\n/// 4. Tool results correlate by ID to matching tool call\n/// 5. System messages standalone\n/// 6. Track timestamps for group range\n///\n/// # Logging\n/// - INFO: Group formation summary\n/// - DEBUG: Each message classification\n/// - TRACE: Correlation matching details\npub fn group_messages_for_export(\n messages: Vec<Message>,\n agent_format: AgentFormat,\n) -> Vec<MessageGroup> {\n info!(message_count = messages.len(), \"Starting message grouping\");\n let mut groups = Vec::new();\n let mut current_group: Option<MessageGroup> = None;\n \n for (idx, msg) in messages.iter().enumerate() {\n let classification = classify_message(msg, agent_format);\n debug!(idx, ?classification, role = %msg.role, \"Classified message\");\n \n match classification {\n MessageClassification::UserContent => {\n flush_group(&mut groups, &mut current_group);\n current_group = Some(MessageGroup::new(msg.clone(), MessageGroupType::User));\n }\n MessageClassification::AssistantContent => {\n flush_group(&mut groups, &mut current_group);\n let mut group = MessageGroup::new(msg.clone(), MessageGroupType::Assistant);\n // If assistant has embedded tool calls, add them\n if let Some(tc) = &msg.tool_call {\n group.add_tool_call(tc.clone(), extract_correlation_id(msg));\n }\n current_group = Some(group);\n }\n MessageClassification::AssistantToolOnly => {\n // Attach to current group or create tool-only group\n if let Some(ref mut g) = current_group {\n if let Some(tc) = &msg.tool_call {\n g.add_tool_call(tc.clone(), extract_correlation_id(msg));\n }\n } else {\n current_group = Some(MessageGroup::new(msg.clone(), MessageGroupType::ToolOnly));\n }\n }\n MessageClassification::ToolResult => {\n if let Some(ref mut g) = current_group {\n let result = ToolResult::from_message(msg);\n g.add_tool_result(result);\n } else {\n debug!(idx, \"Orphan tool result, skipping\");\n }\n }\n MessageClassification::System => {\n flush_group(&mut groups, &mut current_group);\n groups.push(MessageGroup::new(msg.clone(), MessageGroupType::System));\n }\n MessageClassification::Empty => {\n trace!(idx, \"Skipping empty message\");\n }\n }\n }\n \n flush_group(&mut groups, &mut current_group);\n info!(group_count = groups.len(), \"Message grouping complete\");\n groups\n}\n```\n\n## Correlation Logic\n```rust\nfn extract_correlation_id(msg: &Message) -> Option<String> {\n // Claude format: tool_use_id in content\n // Codex format: function call name\n // Generic: index-based fallback\n}\n```\n\n## Integration Point\nIn run_export_html around line 10302:\n```rust\nlet flat_messages: Vec<Message> = raw_messages.iter()...collect();\nlet agent_format = detect_agent_format(&flat_messages);\nlet message_groups = group_messages_for_export(flat_messages, agent_format);\n```\n\n## Acceptance Criteria\n- [ ] group_messages_for_export function implemented\n- [ ] classify_message helper for all formats\n- [ ] extract_correlation_id for tool matching\n- [ ] Claude Code format tested\n- [ ] Codex format tested\n- [ ] Edge cases (orphans, empty) handled\n- [ ] INFO/DEBUG/TRACE logging throughout\n- [ ] Unit tests (see Task 6)","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-28T21:56:07.765182Z","created_by":"ubuntu","updated_at":"2026-01-28T22:50:14.552852Z","closed_at":"2026-01-28T22:50:14.552698Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1c6z","depends_on_id":"coding_agent_session_search-2jxn","type":"parent-child","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-1c6z","depends_on_id":"coding_agent_session_search-x399","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1cjg5","title":"Task: Ignore root storage.sqlite3 local artifact","description":"Add root-level sqlite artifact patterns to .gitignore (storage.sqlite3, -wal, -shm) so local DB files from analytics/dev runs do not pollute git status.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-02-07T20:51:46.777757Z","created_by":"ubuntu","updated_at":"2026-02-07T20:52:29.466512Z","closed_at":"2026-02-07T20:52:29.466489Z","close_reason":"Completed: root sqlite artifact patterns added to .gitignore","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-1cyg3","title":"Phase 2A: Implement CassTheme using ftui-extras theme system","description":"Replace the existing 6-theme system in src/ui/components/theme.rs (Dark/Light/Catppuccin/Dracula/Nord/HighContrast with WCAG AAA contrast utilities, per-agent tints for 14 agents, gradient shades, TerminalWidth adaptation) with ftui-extras theme system. The current ThemePalette is already sophisticated -- 900+ lines with semantic colors (BG_DEEP/SURFACE/HIGHLIGHT, PRIMARY/SECONDARY/MUTED text, ROLE_USER/AGENT/TOOL/SYSTEM, SUCCESS/WARNING/ERROR/INFO, plus per-agent background tints). Port ALL 6 themes to ftui palette tokens while preserving the exact color values. The ftui theme system adds: (1) Runtime theme switching without restart, (2) Theme interpolation for animated transitions between themes, (3) RGBA alpha compositing for overlays (modals, backdrop effects), (4) Semantic token hierarchy (surface/on-surface pattern). Preserve the existing WCAG contrast checking and HighContrast theme. Add new theme: Solarized. Keep TerminalWidth-based adaptation (Narrow/Normal/Wide).","status":"closed","priority":1,"issue_type":"task","created_at":"2026-02-06T07:17:38.205149Z","created_by":"ubuntu","updated_at":"2026-02-06T07:56:17.902397Z","closed_at":"2026-02-06T07:56:17.902373Z","close_reason":"Merged into 2noh9.3.15 (Theme + style system). 6 theme presets, per-agent tints, WCAG, Solarized, 900+ line ThemePalette details merged.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1cyg3","depends_on_id":"coding_agent_session_search-t3ffj","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1d42ae1e","title":"Cursor-Based Pagination","description":"# Cursor-Based Pagination\n\n## Problem Statement\nOffset-based pagination (`--offset N`) has issues:\n- Results can shift if index changes between pages\n- Hard to track position reliably\n- Inefficient for large offsets\n\n## Proposed Solution\nAdd cursor-based pagination:\n```bash\ncass search \"error\" --json --limit 10\n# Returns: {\"next_cursor\": \"abc123\", \"hits\": [...]}\n\ncass search \"error\" --json --limit 10 --cursor \"abc123\"\n# Returns next page\n```\n\n## Design Decisions\n\n### Cursor Encoding\nCursor contains:\n- Query hash (to validate same query)\n- Last seen sort key (score + id)\n- Expiration timestamp\n\nEncoded as base64 for URL safety.\n\n### Cursor Expiration\nCursors expire after 1 hour to prevent stale state issues.\n\n### Fallback\nIf cursor is invalid/expired, return error with hint to restart.\n\n## Acceptance Criteria\n- [ ] `--cursor` parameter for continuing pagination\n- [ ] `next_cursor` in response when more results available\n- [ ] Cursor validates query hasn't changed\n- [ ] Expired cursors return clear error\n- [ ] Works with all output formats\n\n## Effort Estimate\nMedium - 3-4 hours. Requires cursor encoding and validation logic.","status":"closed","priority":3,"issue_type":"task","created_at":"2025-11-30T23:54:08.438234Z","updated_at":"2025-12-15T06:23:15.002460Z","closed_at":"2025-12-02T05:04:40.516945Z","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-1dd5u","title":"ibuuh.10.14: metamorphic invariants for cass search — case-insensitivity, whitespace-trim, limit-monotonicity","description":"Adds metamorphic E2E tests for cass search query handling against the search_demo_data fixture. Properties pinned: (1) case-insensitivity — search 'X' == search 'x'; (2) leading/trailing whitespace trimming — search ' X ' == search 'X'; (3) limit monotonicity — top-N hits of search --limit N are a prefix of top-M hits of search --limit M for M > N. Existing tests cover specific-query regressions but no cross-query metamorphic invariants. ~90 lines in tests/cli_robot.rs reusing the existing search_demo_data fixture. No new files.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-04-24T05:10:13.511500182Z","created_by":"ubuntu","updated_at":"2026-04-24T05:13:50.029516952Z","closed_at":"2026-04-24T05:13:50.029127242Z","close_reason":"Shipped 3 metamorphic E2E tests in tests/cli_robot.rs: (1) search_is_case_insensitive_for_ascii_queries — 'metamorphprobe' == 'METAMORPHPROBE' == 'MetaMorphProbe' hit keys + order + total_matches; (2) search_trims_leading_and_trailing_whitespace_from_query — ' X ' and '\\tX\\n' == 'X'; (3) search_limit_monotonicity_smaller_is_prefix_of_larger — --limit 2 hits are a prefix of --limit 20 hits, total_matches invariant across --limit. Each uses a fresh tempdir + 3 seeded rollout-prefixed Codex sessions indexed via cass index --full. All 3 pass in ~2.3s each on /data/rch_target_cass_p3.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1dd5u","depends_on_id":"coding_agent_session_search-ibuuh.10","type":"parent-child","created_at":"2026-04-24T05:10:18.979218851Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1de9","title":"E2E sources flows: setup/sync/mappings/doctor","description":"End-to-end scripts for sources setup and sync with detailed logging.\\n\\nDetails:\\n- Exercise sources setup (non-interactive + dry-run), sync, mappings list/test/add/remove, and sources doctor.\\n- Capture rsync/SFTP logs and provenance results.\\n- Requires real SSH fixture host (see sources integration task).","acceptance_criteria":"1) sources setup/sync/mappings/doctor run end-to-end with real SSH fixture host.\n2) rsync + SFTP fallback both exercised (force rsync unavailable scenario).\n3) Logs capture transfer stats and provenance mapping results.\n4) Artifacts stored under test-results/e2e/sources/<test>/.","notes":"Notes:\n- Keep fixture host isolated and deterministic.\n- Validate path rewrite behavior using mappings test command.","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-27T18:15:02.332389Z","created_by":"ubuntu","updated_at":"2026-01-27T21:11:31.624510Z","closed_at":"2026-01-27T21:11:31.624443Z","close_reason":"Completed - 9 SSH E2E tests added covering setup, sync, mappings, doctor flows","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1de9","depends_on_id":"coding_agent_session_search-2eqc","type":"parent-child","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-1de9","depends_on_id":"coding_agent_session_search-2mmt","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""},{"issue_id":"coding_agent_session_search-1de9","depends_on_id":"coding_agent_session_search-3cv7","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1dfc","title":"P6.14h: Connector fixtures from real sessions (no mock dirs)","description":"# P6.14h: Connector fixtures from real sessions (no mock dirs)\n\n## Goal\nEliminate synthetic \"mock-*\" directory naming and ensure connector tests use real session fixtures with provenance metadata.\n\n## Why\nMany connector tests use temp dirs named `mock-claude` etc. Even if fixtures are real, the naming and setup still imply mocked data. We want a clear, real-fixture pipeline and provenance hashing.\n\n## Plan\n1. Rename fixture setup to use `fixtures/<agent>/...` (real session samples).\n2. Add a provenance manifest for fixtures (source, capture date, redaction policy, hash).\n3. Update connector tests to reference real fixture paths and verify provenance hash in logs.\n4. Ensure temp dirs are still used for isolation but seeded from real fixtures.\n\n## Acceptance Criteria\n- Connector tests no longer create \"mock-*\" directory names.\n- Fixture provenance is documented and hashed.\n- Tests pass without relying on mocked file structures.\n\n## Dependencies\n- Uses audit results from P6.14a.\n- Should align with existing connector coverage tasks.","notes":"Migrated connector tests from 'mock-*' to 'fixture-*' naming. Created MANIFEST.json with SHA256 hashes for fixture provenance. Created fixture_helpers.rs module. All tests pass.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-26T06:01:50.079001Z","created_by":"ubuntu","updated_at":"2026-01-26T09:11:45.051514Z","closed_at":"2026-01-26T09:05:13.535436Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1dfc","depends_on_id":"coding_agent_session_search-22k2","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}],"comments":[{"id":101,"issue_id":"coding_agent_session_search-1dfc","author":"RainyRobin","text":"Completed by RainyRobin (claude-opus-4-5): Created MANIFEST.json with SHA256 hashes for 7 connector fixtures, created fixture_helpers.rs module, migrated all mock-claude to fixture-claude naming pattern. All tests pass.","created_at":"2026-01-26T09:11:45Z"}]}
{"id":"coding_agent_session_search-1dkp4","title":"Improve detail find-bar affordance parity in FTUI","description":"Parity docs still mark detail-find behavior at risk (NR-05). Improve discoverability and flow parity by enriching detail find bar text affordances (query + match counter + key hints), preserving narrow-width behavior, and updating regression snapshots/tests.","status":"closed","priority":1,"issue_type":"bug","created_at":"2026-02-11T02:48:22.007880Z","created_by":"ubuntu","updated_at":"2026-02-11T03:00:59.045551Z","closed_at":"2026-02-11T03:00:59.045526Z","close_reason":"Completed","source_repo":".","compaction_level":0,"original_size":0,"labels":["ftui","parity","ux"]}
{"id":"coding_agent_session_search-1dl2u","title":"Fix WCAG contrast failures in Solarized, Kanagawa, AyuMirage, RosePine, Everforest, OneDark themes","description":"Adjusted hint/fg/user/system colors in 7 themes to meet WCAG AA and AA-large contrast requirements. Fixed: SolarizedDark fg/hint, SolarizedLight fg/hint/user/system, Kanagawa hint, AyuMirage hint, RosePine hint, Everforest hint, OneDark hint. All 50 ui_snap tests now pass.","status":"closed","priority":1,"issue_type":"bug","created_at":"2026-02-21T23:04:27.069541Z","created_by":"ubuntu","updated_at":"2026-02-21T23:04:30.409083Z","closed_at":"2026-02-21T23:04:30.409064Z","close_reason":"done","source_repo":".","compaction_level":0,"original_size":0}
{"id":"coding_agent_session_search-1dlw","title":"T2: Mock Elimination - Replace Transitional Mocks","description":"# Epic: Eliminate Transitional Mocks\n\n## Goal\nRemove all transitional mock patterns from the codebase, replacing them with real implementations or test fixtures.\n\n## Current Transitional Mocks (from no_mock_allowlist.json)\n1. tests/connector_claude.rs - mock_claude variable\n2. tests/fs_errors.rs - mock_claude variable\n3. tests/pages_bundle.rs - fake_config\n\n## Review Deadline\nAll transitional mocks scheduled for removal by 2026-03-26\n\n## Approach\n- Create real fixture directories from actual session data\n- Use ConversationFixtureBuilder for deterministic test data\n- Replace fake configs with real PagesConfig instances\n\n## Dependencies\n- Blocked by T1 (need unit tests before removing mocks)\n- Referenced in downstream task bd-1dfc","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-27T04:19:57.403736Z","created_by":"ubuntu","updated_at":"2026-01-27T05:27:49.637335Z","closed_at":"2026-01-27T05:27:49.637268Z","close_reason":"done","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1dlw","depends_on_id":"coding_agent_session_search-3fbl","type":"blocks","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1e1s","title":"T6.0: Coverage baseline + gap report (no-mock focus)","description":"## Scope\n- Generate current unit/integration coverage report (excluding tests/ & benches/)\n- Identify top 20 uncovered branches/lines\n- Map uncovered areas to fixture-based test additions (no mocks)\n\n## Acceptance Criteria\n- Coverage report artifact saved under test-results/coverage/\n- Gap list with file:line and suggested fixture source\n- Follow-up beads created for any large uncovered modules","status":"closed","priority":2,"issue_type":"task","assignee":"ubuntu","created_at":"2026-01-27T05:46:16.901749Z","created_by":"ubuntu","updated_at":"2026-01-27T06:09:34.842189Z","closed_at":"2026-01-27T06:09:34.842046Z","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"coding_agent_session_search-1e1s","depends_on_id":"coding_agent_session_search-32fs","type":"parent-child","created_at":"2026-02-11T06:20:53Z","created_by":"import","metadata":"{}","thread_id":""}]}
{"id":"coding_agent_session_search-1f3l","title":"T6.6: Sweep remaining test mocks -> fixtures","description":"## Files\n- tests/deploy_github.rs\n- tests/e2e_cli_flows.rs\n- tests/e2e_search_index.rs\n- tests/fs_errors.rs\n- tests/pages_bundle.rs\n- tests/pages_pipeline_e2e.rs\n- tests/search_pipeline.rs\n- tests/setup_workflow.rs\n\n## Wor
gitextract_kyop6323/
├── .beads/
│ ├── .gitignore
│ ├── README.md
│ ├── cli-robot-enhancements.md
│ ├── config.yaml
│ ├── interactions.jsonl
│ ├── issues.jsonl
│ ├── last-touched
│ └── metadata.json
├── .cargo/
│ └── config.toml
├── .config/
│ └── nextest.toml
├── .gitattributes
├── .github/
│ └── workflows/
│ ├── acfs-checksums-dispatch.yml
│ ├── bench.yml
│ ├── browser-tests.yml
│ ├── ci.yml
│ ├── coverage.yml
│ ├── fresh-clone-build.yml
│ ├── fuzz.yml
│ ├── install-test.yml
│ ├── lighthouse.yml
│ ├── notify-acfs.yml
│ ├── perf.yml
│ └── release.yml
├── .gitignore
├── .ubsignore
├── AGENTS.md
├── CHANGELOG.md
├── Cargo.toml
├── LICENSE
├── README.md
├── SKILL.md
├── UPGRADE_LOG.md
├── audit.toml
├── benches/
│ ├── bench_utils.rs
│ ├── cache_micro.rs
│ ├── crypto_perf.rs
│ ├── db_perf.rs
│ ├── export_perf.rs
│ ├── index_perf.rs
│ ├── integration_regression.rs
│ ├── regex_cache.rs
│ ├── runtime_perf.rs
│ ├── search_latency_e2e.rs
│ └── search_perf.rs
├── build.rs
├── docs/
│ ├── ACCESSIBILITY.md
│ ├── COVERAGE_POLICY.md
│ ├── DOCUMENTATION_STYLE.md
│ ├── ERROR_CODES.md
│ ├── FRANKENTUI_UX_ARCHITECTURE.md
│ ├── INSTALLER_SPEC.md
│ ├── LIMITS.md
│ ├── PERFORMANCE.md
│ ├── RECOVERY.md
│ ├── ROBOT_MODE.md
│ ├── SECURITY_AUDIT_CHECKLIST.md
│ ├── SECURITY_AUDIT_REPORT.md
│ ├── VERSION_HISTORY.md
│ ├── cass_bakeoff_validation.md
│ ├── ftui_feature_audit.md
│ ├── ftui_parity_baseline_bundle.md
│ ├── ftui_visual_parity_manifest.json
│ ├── ftui_visual_parity_rubric.md
│ ├── perf-evidence-ledgers.md
│ ├── planning/
│ │ ├── AGENT_FRIENDLINESS_REPORT.md
│ │ ├── AGENT_INTRODUCTION.md
│ │ ├── CASS_INDEXING_HISTORICAL_BENCHMARK_RESULTS.md
│ │ ├── MODES_OF_REASONING_REPORT_AND_ANALYSIS_OF_PROJECT.md
│ │ ├── PLAN_FOR_ADVANCED_OPTIMIZATIONS_ROUND_1__GPT.md
│ │ ├── PLAN_FOR_ADVANCED_OPTIMIZATIONS_ROUND_1__OPUS.md
│ │ ├── PLAN_TO_ADD_LIGHTWEIGHT_SEMANTIC_AND_HYBRID_SEARCH_TO_CASS.md
│ │ ├── PLAN_TO_COMPUTE_ANALYTICS_STATS_IN_CASS__CODEX.md
│ │ ├── PLAN_TO_COMPUTE_ANALYTICS_STATS_IN_CASS__OPUS.md
│ │ ├── PLAN_TO_CREATE_GH_PAGES_WEB_EXPORT_APP.md
│ │ ├── PLAN_TO_MAKE_CODING_AGENT_SESSION_SEARCH.md
│ │ ├── PLAN_TO_PORT_INSTALL_SCRIPTS_TO_RUST.md
│ │ ├── RECOVERY_RUNBOOK.md
│ │ ├── RESEARCH_FINDINGS.md
│ │ ├── RUST_CLI_TOOLS_BEST_PRACTICES_GUIDE.md
│ │ ├── SEMANTIC_SEARCH_BEADS.md
│ │ ├── SUGGESTED_IMPROVEMENTS_TO_CASS_BASED_ON_CMS.md
│ │ ├── SYNC_STRATEGY.md
│ │ ├── TESTING.md
│ │ ├── TOON_INTEGRATION_BRIEF.md
│ │ └── UPGRADE_LOG.md
│ ├── reference/
│ │ ├── CASS_ARCHITECTURE_SUMMARY.txt
│ │ ├── CASS_SEARCH_PATTERNS.md
│ │ ├── QUICK_REFERENCE.md
│ │ └── SEARCH_PATTERNS_INDEX.md
│ ├── test-coverage-audit.md
│ ├── tui_keymap_rfc.md
│ └── tui_style_spec.md
├── fuzz/
│ ├── Cargo.toml
│ ├── corpus/
│ │ ├── fuzz_cli_argv/
│ │ │ ├── 00008d730c850cabb696a251f657564bd66fb5b2
│ │ │ ├── 02101f25ff42d061bb6826bb8732629c9a778e53
│ │ │ ├── 02dd64a9a39ce70076bc8ebf97cd2c7c7553fcce
│ │ │ ├── 0312f640c180bbde8757dc81b922c0fe0d531685
│ │ │ ├── 03275c1d481592c25630ed13791b2e30c1f93d0a
│ │ │ ├── 03b06d39f840ef1e5883ff011f5ce127c044badc
│ │ │ ├── 0592b834d8f3c93975a84fead7731e6e1dc67210
│ │ │ ├── 05c38232498f0465d52c5ed2b8905581dbb6f5d2
│ │ │ ├── 0831c5672022b8ecd8e789b49233eae2de1c6ac6
│ │ │ ├── 0859ab2fe0459bc1f553314dcf76581828ee97db
│ │ │ ├── 0a2af6ae395b02af3a276f644517adb10cbcabce
│ │ │ ├── 0b18806c4bb9610c7186ef06c6fe7e29fc7c6cbe
│ │ │ ├── 0cbd13be8159e625c4016608ab23a0f6d01b9992
│ │ │ ├── 103f5415377507db8e2cb938d11e0964ef23b297
│ │ │ ├── 110c943822e1de641d750153073f13458e18628d
│ │ │ ├── 1428c5d3c6ca75890c570a0b4456b36f4abc168a
│ │ │ ├── 158798ca658ca5af60eba2011f906430bd8cee25
│ │ │ ├── 160e8bcd0454848e3305e3609eab614f556bef3a
│ │ │ ├── 16968c2346dbfbc1e1d849d058f35f0d3b7c9fd7
│ │ │ ├── 169722b3f73ba4b7557c7d4abb8416e2fa54ef21
│ │ │ ├── 16ea7ace9f48357f9d0e303a9841cb2a19cacb10
│ │ │ ├── 17ada2900d14cae808b76f484a73a2b599b90bce
│ │ │ ├── 1869fded0714692bf2a53ad1dff71fe4a5dacb0d
│ │ │ ├── 19469ac09134f6ac0197a31bd6172c32445a745c
│ │ │ ├── 19f704ec69e285b54dc9ad77b94574d0eae0466c
│ │ │ ├── 1bfc01828e86a1c35a0f43387c369c90f8494fd0
│ │ │ ├── 1e51ed8664294d797b1bc128e20687779a2b2f2e
│ │ │ ├── 1e60f4b794a83439dc337e20dd177a49c91a499a
│ │ │ ├── 1f7324b3b0e6ae37ce01619218968c707109f248
│ │ │ ├── 2098e017bbf59eef78b2c40e76adf1f25c5566ed
│ │ │ ├── 20b369e47209788ca2ae9fb074dfe5f420d6a91b
│ │ │ ├── 2191d6e6e053c175c50bd683b41707def7aafc77
│ │ │ ├── 22226ae363aff0b15f2a70b6ad97763f89d715c9
│ │ │ ├── 223047f22f151028612460c6e83d2215bafa4e4d
│ │ │ ├── 2398c2dede79c845bb59ae2f04cd644629cfe6ff
│ │ │ ├── 25193c645e7e7f52068cb77f1067c081e28c79f4
│ │ │ ├── 266e498e865a7c2ababba6d0affaa7109c562dca
│ │ │ ├── 267b313eb255f1ff55c474a5e4994d66da645c30
│ │ │ ├── 28302c767c3c4cce47f9c4e2a201c47572136cef
│ │ │ ├── 2c53bb32ffc83d29aa6d92564370485f1eec741d
│ │ │ ├── 2d14ab97cc3dc294c51c0d6814f4ea45f4b4e312
│ │ │ ├── 2d1ae1d922dc4e1631c4160cfc0b72d5ba865ee3
│ │ │ ├── 2d1e0eb491a16bc152583b813504fae1d4422e86
│ │ │ ├── 2e94b46170f79b8733c1be0f5c47c3d9c45d4222
│ │ │ ├── 2f96a2dd6beae965008699849c96290d543a8c75
│ │ │ ├── 30a920883736f2f072737f6394457a89ea193365
│ │ │ ├── 3233f4a80126ded1977de71b1cc154b7aec4e756
│ │ │ ├── 3270100ea1773d2fd49f8174b534b6dd214d6f07
│ │ │ ├── 3286707a763d66fc8439154e7060f174c94dcca0
│ │ │ ├── 3394d2bb5a9bb42e8220aa5ec4f9793aa34f256f
│ │ │ ├── 33f890c2bb456fefed910f9787e6fa555c7be33d
│ │ │ ├── 3648ba1b3618126ed6812d613c582ba717569698
│ │ │ ├── 3b0e7257d031ec8c6f98908e023b448ee0dfaaae
│ │ │ ├── 3b1cedf33a456e32667315e015fae7e0822f5585
│ │ │ ├── 3baad17c0549ed4e0329a4a90830511952c433cb
│ │ │ ├── 3f05c3ed3a43abe1d2c31c7801e5e07b21ac9207
│ │ │ ├── 3f80606e9177132e28016047bbc029b32d1fbeeb
│ │ │ ├── 426fa2297a2bc1a1e513108b19df6653daf6df43
│ │ │ ├── 43fb5dd1a8c985d799f769d4579ce1032d075b8b
│ │ │ ├── 4454c3f4e87987a6a3a82d72cebd616670d90f08
│ │ │ ├── 4498d5d3467878ecfa5e71ead16f695431460a79
│ │ │ ├── 44a3475296e778217b464b57094c2885cea49c84
│ │ │ ├── 44dda71e6843b88c1f3d330d6f48c34097d8265d
│ │ │ ├── 4668c8a6341e58f38e5269f0a8f4b821dc5bfef5
│ │ │ ├── 474acca7032894439dbe9534081365b5aed7078d
│ │ │ ├── 47aeefbd6f077c2d170caebdbe87123c14df9cc4
│ │ │ ├── 48c604f31c3415f812b85cbadfcbc19227ad0827
│ │ │ ├── 48ff95176a61090039adde47caeaaea3be061984
│ │ │ ├── 4b46acc3cc6a970f8fc17ebd90f676162bb128fa
│ │ │ ├── 4c0f726e8f4603bd34bbeb1958b7d362197b6966
│ │ │ ├── 4d9dccc4c289afff972d65d18753d3da35968121
│ │ │ ├── 50e5c504038e0bac37b6f5276212f42b85cb0da2
│ │ │ ├── 50e8e452b9645d0b96a23c8a78bd35e0ec267700
│ │ │ ├── 519b53d49ffee88df5e3def0b5a59eb1d8e60e7e
│ │ │ ├── 51c8044a5d3d7bff4daed3d022775ed1c717267f
│ │ │ ├── 5293cb261ea0e6b9e8cce22ab63e2a0ad6010d02
│ │ │ ├── 5791f7cebfefcee0474763fd2ec27f45fd7abf4d
│ │ │ ├── 58181143ae9532d46c01dc9839de5f2f45970738
│ │ │ ├── 583d9864fb7260e56aa5b6261b16a01e935898ce
│ │ │ ├── 5897fd924b1d80682922ce8e75f71acc65ebc2ff
│ │ │ ├── 59adcf3a0bccf97a030047bfa9a7b0cfbecf7b46
│ │ │ ├── 5b5b9c8b1eb42e000cb23a12189a63ba15a6b873
│ │ │ ├── 5c1863b1cf463c5461652c7e6379ad82765bec0e
│ │ │ ├── 5c78c530bafdba8fcfa20de01ec74f0898ee3d13
│ │ │ ├── 5eb0aa10774f2c02a40385cb7cd6ffd8dcedbb03
│ │ │ ├── 6035614df8acc644887608e92f21152afaefc2aa
│ │ │ ├── 61db13428a17d85630b49051d2d08edb36379332
│ │ │ ├── 6582692b560d87fd4d0c7e6e89af648128c42ee9
│ │ │ ├── 68c9f10c8aca363f3c2ccf0f4653eaed787d90bd
│ │ │ ├── 6a56574a3c4c1a0287cbb0aa7ad8c280413b569c
│ │ │ ├── 6a61378dc046d53f9c1f603c81ae224856936a64
│ │ │ ├── 6ab3394da4e6f1390b0e5d4e5287dbe153a4702d
│ │ │ ├── 6b6330951aabf6a2cde908832f7a2759abf0b379
│ │ │ ├── 6e67a72f231209102763528d0843863e391efe3f
│ │ │ ├── 6e6a59bac6fe42bee1486a2060d46565cef19856
│ │ │ ├── 6e77187687059a5214972bb6513a1e60774be74f
│ │ │ ├── 6f1ff4a8f06367eadeba0f6ff30aee0eb60a15a2
│ │ │ ├── 7175662128cdff85cbccb57fdba575f7cf4c194e
│ │ │ ├── 733c2043861e76c55b7415eee9febac4a4078fd9
│ │ │ ├── 7478ca9423a9510ce828c75346b1d4991688b128
│ │ │ ├── 7a7f11e629615d9adc4c4b6365de033849cebae9
│ │ │ ├── 7aa41cfa047e2b8b66717d423343940150393242
│ │ │ ├── 7b2463c13ab1bacb1cc5c501ac48db7c1427b521
│ │ │ ├── 7c4bb32befa41b49b1fe2cb2dd55c300c7f55a4f
│ │ │ ├── 7c8c9fa9774051eb218b82ce20b625376cb9d284
│ │ │ ├── 7ee115631ec137674d3cf91274f756219175ae68
│ │ │ ├── 7f77ce11ed4f3d33325a7b6cf2b74b0ca09de9cf
│ │ │ ├── 7fbebdec648ecd698039abb8232de61b52117282
│ │ │ ├── 80123b14ce6d70c1532ec01a7ede4e91fa258d7e
│ │ │ ├── 8279367b174e2a9121ab51be30695e080fd8557b
│ │ │ ├── 83020bd96cd8cda2a8cabb722ba3af69f275955c
│ │ │ ├── 83f9cfd5b9055e76c40840c0caf0be9a0c686ed4
│ │ │ ├── 8578ddf9a4ae047e00018d7491b2ef0b7836c03d
│ │ │ ├── 86f43257c59a84df0c48b34e8c280acc327f42de
│ │ │ ├── 8875758484195c397f9804fc0080be329960748a
│ │ │ ├── 89a9011f8be31fb36c304846514cc4ebdf8209bd
│ │ │ ├── 8a974cd74d9f735d5f854e65956a9c1047f19b6f
│ │ │ ├── 8b12ec64544799825bcdca1f5869b2fe9a6b6667
│ │ │ ├── 8b2adc47b9dabfe35282016165f10fd38c00c957
│ │ │ ├── 8b80e75b3c9c3b672b51246343603c2f124dab48
│ │ │ ├── 8c4b839545f367384331f22b5363b1f7dd7c1153
│ │ │ ├── 8de72d095990a5a8e718ef954ab5e6e5fa99cc93
│ │ │ ├── 8f1e745b4292f8d88e860a82b395383890384c02
│ │ │ ├── 8f5f28a1af9e8c8a5d30df1ede197c33d905ab33
│ │ │ ├── 9099ffecb88ca87dfd741d84c527adfaf6954b1e
│ │ │ ├── 93ad7df828df84f9d8c3d941830f8c91c837fa39
│ │ │ ├── 95894e31f09b9b7c841b4078914239da4ef4e805
│ │ │ ├── 96bc678eeb2c7590ad141c2f8e3e8fac2788a0fc
│ │ │ ├── 97f61a2b0c73ec440968739eea1ab57bcbfbf28e
│ │ │ ├── 9825779944f9fa8a9b190cbdb81708a03b365f00
│ │ │ ├── 98556473c714d50e7aab09aa2d0daa85475f1109
│ │ │ ├── 9913de374b93a6a22dfb727244781b13305173e8
│ │ │ ├── 9a23ab202222625d97f4158869491acb2861e016
│ │ │ ├── 9b6bf616c747db5e781c1e5a5f995b4ae2827266
│ │ │ ├── 9bb827d4c567a573da3c62bd7a0177f71fae160c
│ │ │ ├── 9d2bf3f34805238d937c7541bd0312a89e904718
│ │ │ ├── 9d8447ce7cefc0ac81cbcca1a683c2ccbbe04051
│ │ │ ├── 9fb0658edc0af07e00f12298fc3178ac8052affa
│ │ │ ├── a0fa3f2cd535356aa96c800e97e6209b81399a0c
│ │ │ ├── a33cbd012b91fb16a2bc99937de5c8f91602bb5a
│ │ │ ├── a4043b7afe13061cb3af0eb8b07bb6db83575ac1
│ │ │ ├── a473623d536ee1dc67fc230d71d0531c5ecbf4cc
│ │ │ ├── a5485a4b46676fe9f6e7e5bfbb70350130364cdb
│ │ │ ├── a559e61727863a07a609b4bf0516b99b85e4ddc4
│ │ │ ├── a6a3e5680b4c6e60c0171d504f5a8951fae6c173
│ │ │ ├── a90d26e65ca0049f64e0009c889e76a010e7c37c
│ │ │ ├── a91911482fbfa669ca782fd2833523dae8e0de5f
│ │ │ ├── a9d4dc4133e8f5b1c9d04cf4cc93cc0635616ec4
│ │ │ ├── a9fc99c6b4ee81611d0d88276d636824ea2d126f
│ │ │ ├── aa219c633a4b8d9fdb720a1a9f88eb70d9d97458
│ │ │ ├── aba103ac106b219b35fb0f6624061b6cbab4f3be
│ │ │ ├── ad7b9b2f3ffe89c552e70da289ea9c67ace3a300
│ │ │ ├── ae43a256d3e59b1d63f38571b97e877fe010823a
│ │ │ ├── afc1c6faeec3dde86dbc0b5c3ee4bd6ec5bf5210
│ │ │ ├── b0ebb40365ac6bc4fbaa059ec27e1b66373cac92
│ │ │ ├── b2eb867aca4ff8707e67d07e8efeda954d710735
│ │ │ ├── b42290a1c757b9775ce50b1253df2764a1edf416
│ │ │ ├── bbe81ca7c6563d2d8a84c54840defa57253027f1
│ │ │ ├── bd9006455445046d3fecbada41b81d0ab0bea270
│ │ │ ├── bdcf8504a2ac0cedf6a07e926535c3a6d0e2fd34
│ │ │ ├── be74eafb1f94c75ce6b277cd90be56d7ee2e1739
│ │ │ ├── bf2db662d53cedf79d9ce7cab7ebe31aa50f4292
│ │ │ ├── c0a26973ae8aff05f76eb1dd6f08fc33f56448ea
│ │ │ ├── c0b2c85539e9728e94323f98e2dda78eac25a087
│ │ │ ├── c0e0e915af56054e0fa95e30212ab10f269586f5
│ │ │ ├── c4ecda6a8ef14a87e0b571e523d9403c8115bea3
│ │ │ ├── c5c6e653d0be295903ab136b03141afa9ebed04b
│ │ │ ├── c668135d3c1c3f01bb8d3acd581bb3070dcdec57
│ │ │ ├── c673f5c5219b6997338af0db0a63f11a2a1857df
│ │ │ ├── c6d2742be63d3951acf592c897e84668c900a301
│ │ │ ├── c7a08cac3df4a5c60b4f420165c627b6091630b2
│ │ │ ├── c8e6ea309cc6539b9c730139008ca13cd8cb79ef
│ │ │ ├── cb0bd07304d5eac30430f33282e536c9ded701a4
│ │ │ ├── cc95700ddb254e8c380692fb97be6437df06f299
│ │ │ ├── cd0bd4e48cfe372b9b3fa5e5c6cd982bc98bc4eb
│ │ │ ├── ce97f9e77037167e37e89b7fa4c6762d4e5759b3
│ │ │ ├── cec70a5e731251bd68e497e3e72fdca821be4fec
│ │ │ ├── cf0e0dcaabd0cdf7d86260c56579e359ceaf97cc
│ │ │ ├── d5dcfcec99002872cd77731891bf024d64bde29f
│ │ │ ├── d7e9e9a397e79656aa91bb85c167892ed8dacbd4
│ │ │ ├── d8897d2e6f055ef66eb6b7afcd1c038b32e9a15f
│ │ │ ├── d8d971d75975b69b188ce79ebe2cbcd0a17e3c30
│ │ │ ├── da6a6408bd369959fb867b1b1667f1cd5fc18c6b
│ │ │ ├── daa28e43164e6733221058e96fed3e918e5f302b
│ │ │ ├── db8de37eb9965adce742831df191645fd84d773d
│ │ │ ├── dbd83de7dd83d608d2e0365e2e8ee571464f7166
│ │ │ ├── ddb582d9f2b03ec0b914b8f4da82c3c90da4be0f
│ │ │ ├── df0d3f33d31225de0f2a0000edc54129802067c3
│ │ │ ├── df4756afea960de211478a3c3a510d8b469bc0b2
│ │ │ ├── dfd13a66cb2d07e0919ec3eb1cd83db1cf589ee2
│ │ │ ├── e0670c48fb9e274b7036a4c390ae81531955fb1a
│ │ │ ├── e13df85399baf1059d966b1d820c63bbb92cc456
│ │ │ ├── e18519367bc084254e780c9a5858834e6ce18721
│ │ │ ├── e27559e7ece4f6fbc0dfba0acf4f824a194cab82
│ │ │ ├── e2bde5c0756b68fbb42f14e2e131ecf4715180dd
│ │ │ ├── e2cd97cefa544f47ef25711a027dd053690a3007
│ │ │ ├── e330b3bb215288c1abccb78420f1747563f47d72
│ │ │ ├── e385a1320c325326f7dc28486075a372e505f7c3
│ │ │ ├── e3d0e5e909ee1131fb99ff8928fe398d6c29c1dd
│ │ │ ├── e3dedac24e2ebf48ff1cf086a7b19adb6abcf48c
│ │ │ ├── e3f9b154d9855bff68cd2febfe549c67180a13e4
│ │ │ ├── e42d81c07bc657bce9ab22738bafbf118046e1e9
│ │ │ ├── e5412b55e397f3555f68eb3f9c4e0018ce79456a
│ │ │ ├── e58df1e0227bac4adc391739a125528d1eec7f53
│ │ │ ├── e62bd3cb601ce71a325afa5ac757e52668d64054
│ │ │ ├── e67fbf2a38e68a355bd91e55220f691123dd6c6a
│ │ │ ├── e7d450dc1627028b9b4247b6e0bf649330b434eb
│ │ │ ├── ec42df36056f76c3c7090820e24b12e85bf90696
│ │ │ ├── eef16f223cc963dd629fbb8ecf70db2fe0456ba3
│ │ │ ├── f104aa08ce3b879b920c2f58023ae81c9e0972a6
│ │ │ ├── f5e2cc70c9bb705856281a9a84b8c0627b21d9e9
│ │ │ ├── f60088d375c8a3bf5ad0b1382633148046efefc5
│ │ │ ├── f66b4f5d1fd31f29683e67f25d97a89db850489e
│ │ │ ├── f7a5b8da8880f05ebb8190438a7764a755294157
│ │ │ ├── f7f058854fba1c348433c83eb07e8567c27a216e
│ │ │ ├── fb1bd39989ed56068caa543ca6dba4cf4793ed0a
│ │ │ ├── fbfe01ff8786bde9607754c2062749c8b650ca6e
│ │ │ ├── fc43551caa0f59477aa7aa6d99679b86729cbeed
│ │ │ ├── fda8b974ee19c53d8961118eb9bb9b9607cc5d0d
│ │ │ └── fe767be6096983def7fb1089f20516dbd9d02033
│ │ ├── fuzz_config/
│ │ │ ├── 000f934b63ca4fe685bee079be375d19273d1a0c
│ │ │ ├── 01223a18a93af580eb6aa008c235a473d072ec10
│ │ │ ├── 036b5047090f2e1066bf297da1ea0bd8a7df0c5e
│ │ │ ├── 03b97f776ac17268dbd7cfbf68f535a874741982
│ │ │ ├── 03d5e7e5f5275381c0bdb770abfd08c2f9dba2e2
│ │ │ ├── 03f2e856bd502513c4a1b5968fa471266e0b9658
│ │ │ ├── 03fa92f01c89a5d11b215f30bf136bfe25b5fcf4
│ │ │ ├── 0411dbc1bcf7078059fae3ea0ed1f15ccaae4574
│ │ │ ├── 04c27b757e43d87cae89c38373107bb1c9c35d4c
│ │ │ ├── 04d1bf30f0e82073e5fa7170b98c3ba56f1d7cc7
│ │ │ ├── 05a6bfb8e9205aa2c07d9e08f1fbb66c588897ce
│ │ │ ├── 05f590a97e8bbf799fe408272bc52ad98adb46f7
│ │ │ ├── 076c869639dc01dd51cd3175211fd56d5c483705
│ │ │ ├── 077cecefc254fc68d4f1ef1fc825fd9f65676579
│ │ │ ├── 087458c6101a3d265761f8c5645f756a00606fd4
│ │ │ ├── 08ef256927d460849be8352f60585cb721a9b004
│ │ │ ├── 0bb9f9cf35fc0b3601353528411bc0b9a38a0354
│ │ │ ├── 0bbadd55cbea80788ab1db0c2e8a97229c30b88c
│ │ │ ├── 0be70a16a2680d6dbd8c6babc832b43ae6c3d560
│ │ │ ├── 0bf0e76e632d4ea9463aa7c6d8c4465d956a8f69
│ │ │ ├── 0e73493fca1fa5831d177bf59d9ff1fb235969be
│ │ │ ├── 0f2579e291c7f377d685c7352dfaef866ccf6b89
│ │ │ ├── 104c192d045749c9c3d1659034bd6ddcfd75cd95
│ │ │ ├── 1091711c36838fdc64b3937fe0ce9cf82b54593b
│ │ │ ├── 120d466a8789ea0c4adcb0a43069f0d7c16da56f
│ │ │ ├── 133472fc470aa867a2eaade2ab95e053ddb40055
│ │ │ ├── 167e9d8820bbe21f09d42b47c22d82cd30b6635f
│ │ │ ├── 16fba39074181bf4564c47efff91af89ae221f3f
│ │ │ ├── 1857478738408b3cc5f2af2f4d5d50d604dbd3f3
│ │ │ ├── 18c42203590f36ef6f08a9585fa415d7b0240b02
│ │ │ ├── 1f2d1b76f1a6ccc0f73aa5e6b9e98e1acca815d6
│ │ │ ├── 1f6a3e559f4827d1eecd2d19535e1c7cdf99dc86
│ │ │ ├── 2049a426a2c3b8218e028d8d19208c345d7dea3c
│ │ │ ├── 204dee6a1d8b35ffbdd173e0d42426d016d755d9
│ │ │ ├── 242554f934aef85d4495f5b5d504e715073ecef8
│ │ │ ├── 24bb11bd0e89518a96201cfa6444b744afd047de
│ │ │ ├── 24d9dbdb872875cd85fada51cd642592c2d84c74
│ │ │ ├── 25e3acc46a25e294422ba4ce91aa2cc8505a0c76
│ │ │ ├── 280c6f07d3ea82436e9e02b8b5f3f56b34a51f85
│ │ │ ├── 289cfe8e98006de1ee57b4377ac1e2e54de9a2b3
│ │ │ ├── 29b00ea051115c4f947c1400e20251ea7cb3d982
│ │ │ ├── 29f5a02010f7887ffabb8fd120d95c71d6f2635d
│ │ │ ├── 2a895ddb0d93ef3b216a8865563f01e16af8731c
│ │ │ ├── 2adf29c76d0e2d6636d0b5e80d13599db384010d
│ │ │ ├── 2b59a812f09c7bf342b5ae4883c28785f5ad6298
│ │ │ ├── 2bbd347ad2e7b242899373e804fa5bb3901fed2f
│ │ │ ├── 2c095368a81d891ad15fa7d1cf606c1ab30600d2
│ │ │ ├── 2d459d954f4dc93913c842c2db6d6aff5613770a
│ │ │ ├── 2dc8aaf8bdaceb745ab66037201250a4b639f71a
│ │ │ ├── 2e41c1cfc94e4ae62259daf2ebc97976a1c426e7
│ │ │ ├── 2e8c82e5a2d2da31535b0f706333b7956e41e193
│ │ │ ├── 2ee7f517d61cc1b295eb7883be894abc9b259047
│ │ │ ├── 311339976c2126af32ce82ae76c77ef9144752f3
│ │ │ ├── 319ca8bb52bca08859bf9e47a99ad8966f705622
│ │ │ ├── 31dfe5735aaf53350fd447fd4b132151ffd6fbeb
│ │ │ ├── 340c6464aa5872095461a8a8537d1fa35a770ffc
│ │ │ ├── 343ab33032b8827a1b94c45223cd9b1b24dd5ba4
│ │ │ ├── 3484e06e6f04f346eecd5b64e5b27eefd7eb5547
│ │ │ ├── 35e8fe0ab5abb2dd855edc8fe2e05d41360990ed
│ │ │ ├── 3624c1604a12572479063bd4bab1201ea451023b
│ │ │ ├── 364ab4778761cb0ac39e7bcc3e5f300886747b9e
│ │ │ ├── 37b5825496d514e02a06db4325e2534c5f57a565
│ │ │ ├── 37d2cd093edd3549387ffe32ccfcda0d35039c77
│ │ │ ├── 3869310f6bb4fda3d204061facd72f1c0f3611c1
│ │ │ ├── 390bd601837d42277096807a218dd41cc56a4da0
│ │ │ ├── 39523292f127de2a811018df7e1e94bcf13067e5
│ │ │ ├── 397774b40a66b9844a1943a1d0dc0a091914d75e
│ │ │ ├── 39a5812ecf91149ffbd7e825460927541c4d370d
│ │ │ ├── 39be78764f49fe1a9db22fc3953a03c43b1e1c31
│ │ │ ├── 39f0854dd889fd51e5f7b3af508a381a344ab47d
│ │ │ ├── 3a23cb9d9be763fe18d017f5f454bceb3ab6ec34
│ │ │ ├── 3a3620ffa310a881a9b3a7f048c3fe726402ca77
│ │ │ ├── 3aecb474332ad132b04325b2c1c55e5d4ec74532
│ │ │ ├── 3b2c287b4b19692f5648bb186ea3d6359546f1f3
│ │ │ ├── 3d5c64148b134f3ed5ea6ba6881ce8f6ebaa7158
│ │ │ ├── 3dc088d843dfec346d96e7bfa712f9b01c8f510b
│ │ │ ├── 3f18aab1123ce76a0633396ef71338ae8581bd66
│ │ │ ├── 3f7b47892beaa319e4d5b3d811d96e99003a20f1
│ │ │ ├── 41202a349a87c9e4756f6cccf470bb8cf93be284
│ │ │ ├── 4332eda5e126758c98696d705b40af607ed8229a
│ │ │ ├── 473a1687f808e8d424e6afa2ef41e3f0438abe58
│ │ │ ├── 475f54713a9591963d8b8570f12a8854b1b14867
│ │ │ ├── 4872e483dda25a49b342fd835f7de7695150d55b
│ │ │ ├── 48b74b8ac036326ab6d83596da5905723e8afa80
│ │ │ ├── 49ff5592c3f9066a047723911141d587eaa4acd9
│ │ │ ├── 4ab4b63d066f8a549747aa4e87ed8ee6e05864e2
│ │ │ ├── 4abf4b51600338e1974682f43f892def00a53013
│ │ │ ├── 4c4c8f2ffbf920d077f6429ec5f65a1a1921a941
│ │ │ ├── 4c5536e41acc2a7587d5eee55dd65a75fe1069df
│ │ │ ├── 4d0200af28e98b0da898758166385219d1780eb2
│ │ │ ├── 4d5f59fc15557054908f86d8763e6fb39933ac10
│ │ │ ├── 4f0ea587f2c8ad3137091f8173b9f3c60bcb562d
│ │ │ ├── 4fc5c8c06437ba482d3f8254fda1a3017d00f849
│ │ │ ├── 50222bc739c0e9337031d585cd6622cea8003ae4
│ │ │ ├── 50f6bf206c42d491ed87338846e5304a88ca85d7
│ │ │ ├── 517efdb443e9db8241d36b2872e7660546d0f9e0
│ │ │ ├── 523bcb2911b89d37649f18d5deb7b433ebff1286
│ │ │ ├── 52bf173d26b329b125a797584aa904744fc253ae
│ │ │ ├── 52d6b5845ca6d15a9868cd599adf1d9e7a13fba4
│ │ │ ├── 5309e9e25c681976cd80a29a02c4d095961d3608
│ │ │ ├── 53c886c1b69a5bacb24cb6ad8cea70976093ef24
│ │ │ ├── 545948ffea0d23995b0dd3093a6b28de5ce69f7b
│ │ │ ├── 556f3b332d07a6e787fe5f14fd01ab633616998b
│ │ │ ├── 5579b9575cce747c7f9fcc5993d1c84a5768841b
│ │ │ ├── 558bfce96511d591c3448c9958cbad14b911b649
│ │ │ ├── 55d9f3f61d0ea3e4b7b596fcc55ac1727dc559c9
│ │ │ ├── 56f2f5f046b0e77ea2d8c26c12ead3432961c452
│ │ │ ├── 5809b22a039b5e258cce6b052eda619f2ec41d7c
│ │ │ ├── 58f2c49b76b6a602364ff0034a58d984c491bb0a
│ │ │ ├── 58f3b626ed4089fb31b60d2b654a1425bbd924b4
│ │ │ ├── 5ad6e8618ca9e231c0f70d7953d5fbcfaf897cca
│ │ │ ├── 5c8cc0a9d846462894b76224218fcd5531130b11
│ │ │ ├── 5c9947bef960ba494e996963149cfa4188a04364
│ │ │ ├── 5d4f855a8d56a3932daa1ee70f3a67e629417056
│ │ │ ├── 5dcfe6bfe15331fde6f2ed35425ccbe7439f5b1f
│ │ │ ├── 5eba3bbe96b6f141cbf4a440927df98950e0cfc7
│ │ │ ├── 5f4f8843ff16b30487f573199c6affaabbb5fa36
│ │ │ ├── 5f6f04b564eb9670365b42021a77c2f4b013e245
│ │ │ ├── 60674722edad266d8e5dcf9fd3ff430e1d4a0d01
│ │ │ ├── 624b5eae75b11b49445f90cc2f5f0e004cc4c948
│ │ │ ├── 6326b8e4ed85d653f9a043fca18c638dd4df6d43
│ │ │ ├── 63299f71b8f2835270ec6c9f45a53360c0e821e2
│ │ │ ├── 6333767c725118678c7cc10bb2c8181675e3086d
│ │ │ ├── 63b9cef2849333bd95acff04e5f77aae6aace2eb
│ │ │ ├── 64ae13f111854c12e8817b856fd9a2d6eb514143
│ │ │ ├── 651a4686c2aac25fe5c8bb62bdbda69a729dc5d3
│ │ │ ├── 67a4a37f17269c133e66b645b415d933e261b8b4
│ │ │ ├── 68fc7aede28e4c5e4a08711078d7dd626e3e5513
│ │ │ ├── 6b2afe398347283d2d0457f6ee0bd617bb8dd8ba
│ │ │ ├── 6c30a0f17c66480c1336285833bafba8b549b98e
│ │ │ ├── 6cd9db821accdfb8e321a7c4d46e74543754a455
│ │ │ ├── 70771f6f2308bc0dcbe08729823e4794ab706818
│ │ │ ├── 70da27621580b9570c9979868d40e6bc65e74197
│ │ │ ├── 71ec1e6f95260ae9745dfe9ac3e02afa10f85914
│ │ │ ├── 720c15b41c291f879986bb6e3c1cf0b9895e2b0d
│ │ │ ├── 72e39b2f3ca1cdad244481cd17d738331240836b
│ │ │ ├── 731e090776144c55ab8b0d92f089c8d78f106f35
│ │ │ ├── 74dcf32fb91b82abdd34286038561df27e0953b3
│ │ │ ├── 75356325f4e7810f1ea04b22393878619a86125d
│ │ │ ├── 755914c067f064b60561846ecf9ea704fa8ab6d6
│ │ │ ├── 7660149aeb2a5c87026ce40dc2cc2d8509d9dc7d
│ │ │ ├── 76eba4a928a805422f29004a62890944976b7f77
│ │ │ ├── 7728d2ceeaae3adfc6df2a1b5daee198207d585b
│ │ │ ├── 77b286d33b0bf095e7b84cc10135758abf94de28
│ │ │ ├── 79cd4e14dbc9ca2b537afc6011582f00f08c9cc0
│ │ │ ├── 7b5d141f7300d33f9100989b9fc6d9b24694bcbe
│ │ │ ├── 7e865d413ec22239cd3a3d35bf214600aaf45a04
│ │ │ ├── 7e93c023caa13616f0ae039affe8cba0e743f947
│ │ │ ├── 7f10759291bf011dcba9e64c888069aa6fa25299
│ │ │ ├── 7f7e42a552d935e3262b6c244efff1781e2545d4
│ │ │ ├── 80b611c21931f59ed41cd4318568f94e32300249
│ │ │ ├── 8165e3e3891d317e007b8425eed37e81106ba0bc
│ │ │ ├── 8186bc4441739db2b2c0ae8c802b784eece3bed0
│ │ │ ├── 81b350267e2738d28fae3c2ba82930bfa949860b
│ │ │ ├── 81c442244d41602e604c21c68d1caaff24ee3001
│ │ │ ├── 82bbd1eba767f4ec9c017f6a0e71348934af3a35
│ │ │ ├── 82d437c1646f14269666bd9697a387000e055276
│ │ │ ├── 831ce2f9dd60164706cc212a6ea46a5fdd53cfb7
│ │ │ ├── 84972d8f1b1a7a140393dc13b82c48904ce5ef63
│ │ │ ├── 852e83bba4675ebebf92e4ecdefca6efe9fa9712
│ │ │ ├── 859b7da708088324e9ea653b507cb553f8f3b5cd
│ │ │ ├── 85f8a59e1fbce1b94c36488ad754ae8354cae36b
│ │ │ ├── 86c57aa7881318a49cd6eeec86d8f8a00bf57062
│ │ │ ├── 87427e718f4c75d70d6c5de2d2b96a7749da5e43
│ │ │ ├── 87fc03c536f575aec7a837cc7652d7081327dab9
│ │ │ ├── 8858021fbb795a570f041faf6ceca8d527ee2cb9
│ │ │ ├── 8895243c0d0d4cf9136194891fa4b5a12c250a76
│ │ │ ├── 88d005317ff2ec0dcfa98abba0c5580ad976fef3
│ │ │ ├── 88deb1a3864c738206689fd765df61d692927f5b
│ │ │ ├── 8a01b452bb776813f83fee4b4634bc60dfbe0b91
│ │ │ ├── 8caec396b9b20782ccc77722bb9c13d933e2f138
│ │ │ ├── 8d374f3e8bca8e3ae474c21519bdc5c9db11d2e1
│ │ │ ├── 8d6d221e26f4e6627ea3f4077e1870ea7252ff4b
│ │ │ ├── 8e482d16f76a06298b497c0ebb685405810cc30a
│ │ │ ├── 8f1913e94a7f0cabee00759ceae62927351c34fe
│ │ │ ├── 8faac1ab55423b5b6004ec05f6a9e0b3eccbeca8
│ │ │ ├── 908ff290597766fc6f6cf4e6975f6fe8dfc47310
│ │ │ ├── 91a1a5148ace8872e379834b2e112a9f21a6a30d
│ │ │ ├── 91f2d8519bc2271e37910d3ae0748c57b1e4b348
│ │ │ ├── 9371df36acce87de74966ae5c6b6851e71c7d066
│ │ │ ├── 952e3da69260437819440bc908d5d3d75a52cf9e
│ │ │ ├── 962790d1c9b5f3af3e07e2c268a5ca2192a5302d
│ │ │ ├── 97214886eb41fab3399f66c4028186a1e178ce77
│ │ │ ├── 9774cf1bd97814ab62183c8bee12b86bb01d0455
│ │ │ ├── 99217114707c8555f62351558a79e6c7b6a248bc
│ │ │ ├── 9a1e5af8b33a93e49c5987c19d1d5b9120cb3916
│ │ │ ├── 9b103635223c940d144ad40aefb9c3da288cb403
│ │ │ ├── 9d1de8279add3b6d037aa2a801da30d45f91cf8d
│ │ │ ├── 9e0e9f9c3e0fb7639a781ee82737904f8c9908dd
│ │ │ ├── 9e63e093284ac52db5045b2954a92d3a2908ddcb
│ │ │ ├── 9f9267bc5ed81a1128adca2e8197403780cf4aad
│ │ │ ├── a08ab61476116ddd5c23cdf3f8ee1f5aa6df6a7c
│ │ │ ├── a127d358d71c7769c4d72cca9f5a09c9307077e2
│ │ │ ├── a2151771ce512449d892a02f188bac0a0707a05c
│ │ │ ├── a22b9d418f2df9836d3b6bd4ed5ed5056c40ad2b
│ │ │ ├── a2873483551e97b9ff8dc71123bfe1b3ddd9bed7
│ │ │ ├── a2ecb1a7e30dd2d84a8745e27f49c6c5ffecaecc
│ │ │ ├── a372ec6bb216533b84eeba00f3b7fdce04399548
│ │ │ ├── a67db0db7f9ea78bd9df11696d08c40e96413cb7
│ │ │ ├── a6820d724c7a0e6d5b2c0776cdc90c74de3542af
│ │ │ ├── a932f5ff912980982637d76541cf59d09b4c4333
│ │ │ ├── a9bbad1a5e1fcf73bea5bd3b6440282567db30b1
│ │ │ ├── aa2571e8d75c24699156c3abbe9fe50f14a8bab8
│ │ │ ├── aa537f65df0890ef1c9f8b9c2ba42c73254d79c4
│ │ │ ├── ab0014d7f13b02334316807793d2c64aeb7b57db
│ │ │ ├── ab7f5ab6f40e69d5af68c6b27629069a02486e20
│ │ │ ├── ace42de015a900a9a2794f8eec4a0012568f1a0b
│ │ │ ├── ad5afb815763dd797b3ef812a7c9da66eeee88b4
│ │ │ ├── adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
│ │ │ ├── addba5cfc7d6f077b8a46f4d4549d4e24c181954
│ │ │ ├── af06582c59c6e6fa38d50f01e221d194fb1dbc7f
│ │ │ ├── afd15a30584b76852b90d93efe88e6adba6e2188
│ │ │ ├── b00ff1c9f14b674655f250847c6215828d0a1fe9
│ │ │ ├── b0a3eddee54d3c5fb3ec4b174322e98c182d095d
│ │ │ ├── b3947feca7952d3a5e25e4c0a95d937bbd39b376
│ │ │ ├── b3a0896f2a933441826eec47ab8fb93ee5eca586
│ │ │ ├── b4358351fbf9684bac4ff9e95f3548a200053699
│ │ │ ├── b476570d71fed62935582f3cc5b41cfddf251061
│ │ │ ├── b49ff70c32d27205c9d95fc3248082a55e2670b4
│ │ │ ├── b4b43dbae66fbda11be1d04fee86ef6a1d62564c
│ │ │ ├── b4c449167d038c8537b0cbae2f30df9335c649a9
│ │ │ ├── b5b620a3432b1be38593a780d404bacea9c10a4b
│ │ │ ├── b64f53f178931b0af20f6e186bf789ec214534ea
│ │ │ ├── b850a1bb4a82910ff6bf6555cc42f4414fc2198c
│ │ │ ├── b9816d1f5d6867953fbaa4736bb51096d50ebd6c
│ │ │ ├── b9de51a24996ec7acad7888cf353e12e4e54c52f
│ │ │ ├── bb6e8d2d47d5bd2ec11d7c2c4b59b8e71e0d0e71
│ │ │ ├── bbd7f457aca5ecc327e7af72f2d9190d7f2898c7
│ │ │ ├── bd2da9b51a7bbfcb6f4199bccf7ba4f084ef6018
│ │ │ ├── be520469321f177e7d4d23acae50ce3f8f4e32f2
│ │ │ ├── be5da3479756bd7f9fc34476f8c647291173e726
│ │ │ ├── bf0357fe70a9cda81504d98371b12dd34130c59c
│ │ │ ├── bf928f2feff6450ca63a71fbdaf553cc6ce70334
│ │ │ ├── c13a494ebf96b1be961f15dba3a2a69d977aeb2b
│ │ │ ├── c1986d0e35a1f30b6969a54501259b621011806d
│ │ │ ├── c1fadb07f534c58005a4ce9936c6b7d09b2f620c
│ │ │ ├── c2e43d64f4cfc864592c6e99ed09e5b08f8f0e74
│ │ │ ├── c3106577a0e654300dfff62f977ac08048ae0c44
│ │ │ ├── c4538d361b7eefc44f02b254f8c9981dadc5a586
│ │ │ ├── c49b437e9d6e36a224cdf61536d277ef06a3a8c2
│ │ │ ├── c4ae48a5c4305dfb616f0e53037774d3b1e444a4
│ │ │ ├── c5091880eeec9e04c15e43754348e21d738725d5
│ │ │ ├── c50f482805fd887e687aebf0cfa4d0eaa1a32f8b
│ │ │ ├── c56c3379e44908003ab2b182d3558abf51437d63
│ │ │ ├── c7bd58d310b5e244bf9d07e5802730fa2b0278b3
│ │ │ ├── c87cc02ad3dba113beead4911bbfc1bc7dd03012
│ │ │ ├── c88e27b5c16b7a11359ff34dc971cb3fa6c8aede
│ │ │ ├── c8d9be83674528c1796a5a7ea1a8db630387c620
│ │ │ ├── c8faab6974cc2fea70e93a465d5f4f52783fae44
│ │ │ ├── c9735b3c8b4d936374f6d7543cd6fd3af0f84760
│ │ │ ├── cc7fa27dd654d7582c40395a2a08a4745cd8b91b
│ │ │ ├── cdd4e07e62f8a9b10867fe872c2a31b24c39fadd
│ │ │ ├── cdd53fffc6cd0bed26929e6bedcbc4cbed87b5fa
│ │ │ ├── ce4a8c0d7e8be1adf89a294a188b1b52cb40f3cf
│ │ │ ├── d027be05d78845111af4a62e1fa03b6e678437dd
│ │ │ ├── d1228d9ef0a4f0506f388aaae18efedab02c74b5
│ │ │ ├── d2fe257f09f6528a57cfefaadeb0d190e6094f1f
│ │ │ ├── d3f4e5116b7093d68404739ad8b803c89c52638d
│ │ │ ├── d49bee413c95e266049a1b2d7a221762d88dd776
│ │ │ ├── d4e5cb1767e3905478dbbf00562c59245b859ec8
│ │ │ ├── d4ff459ddc4f064df4444e20de984bdbf7413c8f
│ │ │ ├── d5841a5e981cd38480d6dda2f7639dab63b835f6
│ │ │ ├── d683ee552eec28e950d6581c1b245793951b8d4a
│ │ │ ├── d6eaa3f3114df5b3ca1189062881e8df3069e806
│ │ │ ├── d75d4cb36f3e271bcbfdd89e5c7f8614199f732f
│ │ │ ├── d80c45387c0e778625f342bbbc1d0be607e5f934
│ │ │ ├── daa7662f5c1887f9d62794bee1221ddb893af00f
│ │ │ ├── dc03f9db1694863d76487cf879081df26b408cc0
│ │ │ ├── dc6c3905198cad6fc62bd3b23c795d06811ec074
│ │ │ ├── dc84a32bc5b19af121b66b2077890bd1f2d5b279
│ │ │ ├── dcf79c33397e873add82ab9f3255cc6ad7cbd978
│ │ │ ├── dcfdad0a0c5ba5aff8f0c7d4cea7129b5c7b40dd
│ │ │ ├── dd146ed134c0ac0af66f1119d308ed57a941e290
│ │ │ ├── dd366c5b3c423dbc3e989329e382c578ac99b3db
│ │ │ ├── dd98316f54b3119acbfb0c24eefbf03791ba5a8a
│ │ │ ├── df2e895a0761da9df4f93ffa77eee76072d621dd
│ │ │ ├── dfdc04dd0eb151d8848656528d950fbccd4a8ec0
│ │ │ ├── e1b8376a90fdb19c5d9c379c5df82a275d624dc6
│ │ │ ├── e1ed572d9c8511012267a18660c4c0fe58269e4d
│ │ │ ├── e26da7f764c0cb8ab5de5907bd634b648cc62e8d
│ │ │ ├── e39008cf4e1a43b2f65c0b5783ff4fcccd48bb27
│ │ │ ├── e58ae392edbb1c17ef13eef3972f7f6d48af0ca3
│ │ │ ├── e8229860f64316a11abf2f8b85e464646deda805
│ │ │ ├── e854ba87a43375d3d2748b329bba9e906c5c7b58
│ │ │ ├── e9ffb9bea72f49cbe79c7499c61ecbf251b0e25b
│ │ │ ├── eb5b302181143ca57492e74b45e23bf0b8bb7661
│ │ │ ├── ec1ec6493ca2b1f02d8c7110398ed380d03c8076
│ │ │ ├── f0234c2353a3a8d9b56c70f48a468702f3a780c5
│ │ │ ├── f0a218e15d9349ff848aae0951c7279f2fecd89b
│ │ │ ├── f0a64cc6f180a717b05c19247f8b977403ea5a6e
│ │ │ ├── f1edefd3b336affa0c05ca15a4dea8c50e589568
│ │ │ ├── f2ca96b7823afe788a2472940178103bab4e434d
│ │ │ ├── f49a9d3ba3bbbd5bcac4a9f5e3c149c5c2be4561
│ │ │ ├── f52e68325e3e97ed6097c85ba1039e167952754a
│ │ │ ├── f5af358b55dc166cc4865173fd01142d2d185ef3
│ │ │ ├── f5b10a086085d3db74e1786e227de671dbe02ccd
│ │ │ ├── f6995c8316190dacb0f4a1794d8ab1769a21e292
│ │ │ ├── f702619a72eb8c7379d0d875f933e01c8edfcb38
│ │ │ ├── f8b4f1a2416558165608c634a2570672c3ba26e6
│ │ │ ├── f9729c346fcbea781529ead466db6431bf5818f1
│ │ │ ├── fb929055c11d0667e1abc90f1463a4523dee024c
│ │ │ ├── fbcd37d727c981878f92042760625afb223fbf43
│ │ │ ├── fc70da0a54da3def04cb702855cf072be3940014
│ │ │ ├── fdd67a22eb9cee11b2328737fb2b8afa902ade8e
│ │ │ ├── fe8eda3fbb4c69663012a7c064c1cf56403290af
│ │ │ ├── febd536481ad184453eb216ee5bdea180c86584a
│ │ │ └── fedb108169e689d1be17382cb488d854d59d4299
│ │ ├── fuzz_connectors/
│ │ │ ├── .gitignore
│ │ │ └── seed.jsonl
│ │ ├── fuzz_decrypt/
│ │ │ ├── 0126b6151af6f96946d89e4fd7cf97ef01ce54b7
│ │ │ ├── 0310c705c05fef39256804d488738803ae061090
│ │ │ ├── 128bcfbeffb5f9af049339d35a37dc7842037cba
│ │ │ ├── 177fa8ec4f0f0caca56f90cfbb94d71cf1d28bcb
│ │ │ ├── 18317db309288c206885e4824a012c2b59b52255
│ │ │ ├── 2211b60c9f0c26d39cf1a782fc1d0c8f09e7672e
│ │ │ ├── 2ea6739040f240413e8db995454bfc9e5d9de18b
│ │ │ ├── 818c505841424f83ceb62f8f520d90aeafb84ba3
│ │ │ ├── 83c9716a1a84566c59992701a9b0cd4b2c2d3782
│ │ │ ├── 85d28c73e363c6f45ed6637d97a6b8be602de631
│ │ │ ├── 8e615ea43eb26f9f5f5ca32ec898b14b2b269e73
│ │ │ ├── afa20a2e3d13162181a496c9a48d32cd019c6dfc
│ │ │ ├── caa66410ce64f374815e086df96811bf87479c08
│ │ │ ├── db4f8875f6728bd7a7055ee4db0683c9d26c3ffc
│ │ │ ├── ea17b283031392ee39f3cd0da9b018c3e457b440
│ │ │ └── fd33ba686d0b8359846f6c413df934c5df81a0ec
│ │ ├── fuzz_kdf/
│ │ │ ├── 096c396f456f1be04c5417309a4a7c2510c33fa6
│ │ │ ├── 1a63e87c8321af9d632b999edd207a5ef9487918
│ │ │ ├── 1b748d115443e7aae8097f2a846ec90b58a38519
│ │ │ ├── 2e6ef0f5f273d8209cb46d37fba848fbd4f9b813
│ │ │ ├── 3fe9d07becfcf78362742539d2edff21dc5e40e8
│ │ │ ├── 49ec53b2e46b7c7194358119a719862b1de2106c
│ │ │ ├── 4eaaf8a93471254cca6d84d92b98a3e1dabe72b8
│ │ │ ├── 57006f03434db829d4b8c6e11b0f28e0bd343f3b
│ │ │ ├── 5728d7d6effbf8907786471d50ec131e80ebfdf0
│ │ │ ├── 99a34c3685cc96e89094f9a36924e8d7c49ad59a
│ │ │ ├── 9c81e304cd674e7f4ce7a8d40c83e0b27e0ce0dd
│ │ │ ├── a868dd9c88f1c948709d722d51cec1110d153173
│ │ │ ├── b7b130a3a050224805818665f91ce9709f099958
│ │ │ ├── b9e74e64e1f6265e0a2a0161494f26d30f9433ad
│ │ │ ├── b9fdcd68f53900a540262a9815a7ae492ff41fd5
│ │ │ ├── c30f41cf13a5ef909bc7ff35964b81645feb256d
│ │ │ ├── c7c7a0eaa5f3d38a6f7a437735068d9e724ec9f8
│ │ │ ├── d2314bf51fc909324afa4b3720c4143f6d85a2e1
│ │ │ └── d46c5d8251ec39f8e33471d860dc22736aa91ab6
│ │ ├── fuzz_manifest/
│ │ │ ├── 0033b49992b0edc6c420f720c38628e29283dad0
│ │ │ ├── 003f6c4f8cb3fd7c8b7137288a3236f739101370
│ │ │ ├── 006188f0544a4d91bebfe2a8a0e4dd879d57729e
│ │ │ ├── 0073d897e32158a9d7218808cf3a2b3ccbd74f44
│ │ │ ├── 00b041fabdb3c1e2a7ed47d3865fb2db36422780
│ │ │ ├── 0113bd7d6842c385ff141be3274b54596552c976
│ │ │ ├── 013d6546dc209626ee93509bee06266133666952
│ │ │ ├── 014dca91924e49b747f9c59946dea95eb488d088
│ │ │ ├── 015e478aca310e1060a70e05312aa6079b4f10cb
│ │ │ ├── 01927287492329ca0119e84205738e81a726f9c0
│ │ │ ├── 019eec496e2709fd4daf292ba64715658f181872
│ │ │ ├── 01d94a6f21b47b294553d412889a784d3553cf6f
│ │ │ ├── 02008872a89390afc027c4578a26e9f8b37cfe49
│ │ │ ├── 02471010772d15225fbd46efbc4b36f0850a0f29
│ │ │ ├── 0247d3b4867b61f2c7541f110916313a692e7968
│ │ │ ├── 0259b1ac734fc0f1c78f1dac73ef786c7eb8d5d1
│ │ │ ├── 02b0956629a8c68900f884fcece0c0f961cdc53d
│ │ │ ├── 032b327dc914e4eba40b0afc13147b47f8e5bc49
│ │ │ ├── 036f70ab731494bc4a53c6db4bd734accda10ed3
│ │ │ ├── 0395775bfd44ef05a7910d1d8f1700e6e7d51942
│ │ │ ├── 03b01c18044bedb3944c4015c2e05e1a8f0d4a27
│ │ │ ├── 049efd082748b3db82a4edbdafedbd51e8e8d4ba
│ │ │ ├── 04f0017322a082c2d19f3fc48e9f0816b6f0eca9
│ │ │ ├── 04f8a95cefc09cfcd8e7d223e0c683aaf5a7df8f
│ │ │ ├── 05254f9d42369291cb3720399020b4ce4d94e9ee
│ │ │ ├── 05347633cac241add672bab302fb5752833eff41
│ │ │ ├── 054c1bfc5c7e321dd735f5ff8eddc3c90ae9ca75
│ │ │ ├── 055068c5f522dc4917704f3ff2b7f41dec84cfd5
│ │ │ ├── 055123b41ccff5525115ce6f7b5eac7b3205715d
│ │ │ ├── 05e5f4f304b5775fb42a6ac301cbfb9f02c3d5c6
│ │ │ ├── 05eae54ab0171995bfeca1baba46777f15b12a03
│ │ │ ├── 05edc94611053dd6d76cac3654dc5ff0c6539631
│ │ │ ├── 060359408694dc6b0a4f0fc9631befdbf58a25c9
│ │ │ ├── 063af04d205e8ddba4445e0091d0c469cdbb1bb4
│ │ │ ├── 0667d2004b999927545ba230066e45c5f94dfb70
│ │ │ ├── 066d05f0fbd6c4c9d70838bd039ca88de1b9748a
│ │ │ ├── 067d5096f219c64b53bb1c7d5e3754285b565a47
│ │ │ ├── 06d0114ebb63afa48ad4386554b53da6bd53984a
│ │ │ ├── 06de2e4fb182b0e1bc025eed9c61b0eaabf60b84
│ │ │ ├── 06f96b262d1dcfe078e80d919826d7723b6a4a23
│ │ │ ├── 07255a4001cea23e8f6bc1f98e9a5c2af8307b8d
│ │ │ ├── 0730cdfce3240c6b2cf9c2611de67d9bd26913d5
│ │ │ ├── 0734f129e4189e695a6bbbb4874753483d7dc382
│ │ │ ├── 079e0900aad5adad4361cfbdb9ab7602e4e788ce
│ │ │ ├── 07b5ee143875075488c5273dc60394880012799b
│ │ │ ├── 07e6b4954761a64888951ffb8add90dc73127289
│ │ │ ├── 07f5472dbc207781be215abfc4472f3586477bc9
│ │ │ ├── 07fddd6943f2e96287694c732f486474bac1aeac
│ │ │ ├── 0819cfd8be8be10706ad1e21cfaf24a06f6f1d52
│ │ │ ├── 0859d0c4f1baa7dcb07cb1aec4a1263ec39229e4
│ │ │ ├── 088fb1a4ab057f4fcf7d487006499060c7fe5773
│ │ │ ├── 0890b6f41e0347a9cc575aba987165f5296c52db
│ │ │ ├── 091cc7d5dbf4bf0d5561f0b25902abb0a2ca392d
│ │ │ ├── 099600a10a944114aac406d136b625fb416dd779
│ │ │ ├── 09afc0bf309bd16edad34cace47ea277e3519297
│ │ │ ├── 0a346b56ee15b145319dc50c450705bde2c11bd5
│ │ │ ├── 0ac6f0bc14c4f843c44030d35993e8063460f10b
│ │ │ ├── 0acb03a0cc08e6dfc9a76e017ef03ae35868874d
│ │ │ ├── 0adad21897c893439862935663cb9f0754fcac47
│ │ │ ├── 0b000dbedeec6e500a9fa717e6aa37b37fd20d12
│ │ │ ├── 0bab5722de590fed5eaae604bef45cb040b85931
│ │ │ ├── 0bbae96c34268bb8128caf713ee494055711a80e
│ │ │ ├── 0bbf43f33978e41b039fd514c3bba0b0c3059386
│ │ │ ├── 0c1d5a2ea5515de9970af322af3e85ab0eb083ec
│ │ │ ├── 0c24f958380fc366bb1d3a6cf12a9a20b3ca9b11
│ │ │ ├── 0c7725b516b00ef1210d23ae4f629d7569a9ca83
│ │ │ ├── 0c79233b8e1324d476404bc7b6e873989348074c
│ │ │ ├── 0cc1ba1ceb086ff7608097e9c339c2a16bba3ecd
│ │ │ ├── 0ce6fd9603f18ac35bcfd3ffc5d2143bbb3126f5
│ │ │ ├── 0d0fcf0d94a9f9f199536b0130f43e27362059b8
│ │ │ ├── 0dabf42f196b2ca23d2fac6f38facf14586cf9b1
│ │ │ ├── 0dae66b3f283bfb4b6bfc154fcbfab1667399020
│ │ │ ├── 0dbe21f52e98d417b42433638a7ab23be1719018
│ │ │ ├── 0e11e7780a5979bf7777f0edec956cc3bb940206
│ │ │ ├── 0eb6febee8f851e1a42608e4ba5c9f3f974868b0
│ │ │ ├── 0f08cb179574e2f6ba7fd7d7f577789286927f5e
│ │ │ ├── 0f293638fcfb7c42524b95e98ea22414218d81b4
│ │ │ ├── 0f9103bf9d19623f7169a41f75c3c0c976c515e5
│ │ │ ├── 0f9d3883716adfe1576a93e2acd3b0782d70c0ae
│ │ │ ├── 0fd77701c13ce60c6a0c1c5652bb78abf37733ee
│ │ │ ├── 0fee4a1512d1ca4cfcd9fae2821fabe5198e2bd8
│ │ │ ├── 0fefd27cad4915946049f0352bedc0fa59d601e2
│ │ │ ├── 0ff71fe0d78ee2742552f1af7c1c44b4882c9f12
│ │ │ ├── 0ff9c5710d668956ce58db9046662d264667a943
│ │ │ ├── 101ac8e369a395f2b84536e78c1bc42c07f2e85f
│ │ │ ├── 102d2c418e269ab41b7e8bc8a25160303ee5e304
│ │ │ ├── 102f9e43f55dbf8f4b9c8418723a5c793c81202b
│ │ │ ├── 1061936ee2ed6eb6b411b9e08b62d0f82e9360be
│ │ │ ├── 109fccf5b2b523e7cabddf2ffc9021d7adf11ce7
│ │ │ ├── 1184f5b8d4b6dd08709cf1513f26744167065e0d
│ │ │ ├── 1196dbcc3371ddc958b245b15204aa922cebb364
│ │ │ ├── 119c66e00208a41edd9124a02174b0eed54b370c
│ │ │ ├── 11cab938c53eae0364016bec9838c18bea4fb7d7
│ │ │ ├── 11d4a06a2f4c9e206570b6cd5b7d426f79d42f3c
│ │ │ ├── 11f4de6b8b45cf8051b1d17fa4cde9ad935cea41
│ │ │ ├── 11f6ad8ec52a2984abaafd7c3b516503785c2072
│ │ │ ├── 123c3576b55c26158ada628f608ab36b9c8846de
│ │ │ ├── 1279ab87c527a04670ae4cd6d5c2871ca4d899e0
│ │ │ ├── 128239a98ad5c44f8ab87c11f6efc6f901cf36a4
│ │ │ ├── 12b6ad304116874034b5779d5b1fb488067c4eb3
│ │ │ ├── 12d9ec61397276086e92bf03359f4eac83494031
│ │ │ ├── 12db8f85bfe3e0b837059fa01e53748a0727b52c
│ │ │ ├── 12f6015fa44b924c2f0c274283305b9bb38abd9a
│ │ │ ├── 12f8a286a103804fb5bacb2fabf2d79e0ec76938
│ │ │ ├── 1314aa333592e905a9aaaea0b46542cd3091f6cb
│ │ │ ├── 13319a867ba5ceeced524404b2d1d8e671598b98
│ │ │ ├── 133df1e96b2c002800c7b4238ee8b6b3916f02e0
│ │ │ ├── 136b93b50331a9b63db3bf695460a643d7ee78c0
│ │ │ ├── 137f554ee0f6b903acb81ab4e1f98c11fe92b008
│ │ │ ├── 13bdccee429922f12bd8ff9af7632f0dbbb297a3
│ │ │ ├── 13f1bea7680b3770b751fdc27b615bd81339eb33
│ │ │ ├── 13f923ba73714a11f9c5bfb5b828a08bfa773673
│ │ │ ├── 14302e800fed359d0bf497dd0596cbbd368523ef
│ │ │ ├── 14c9ae5867644c380469bdf002c2afaec494aa29
│ │ │ ├── 14d70d9a7b76bd8ba78d1d03aa0686e722aba249
│ │ │ ├── 14e728ac72b59253225e650d357a09c158c72ed2
│ │ │ ├── 150431e06f74e880b6848af3c59a3b6a25a3b5da
│ │ │ ├── 150d8d615c9b7b42f000786207a9f25ce774642a
│ │ │ ├── 15225d627a0e9c16a2dc93e93cf20d59fd60a0f4
│ │ │ ├── 154a727a5d04db46a3e8d212b0255df962f1bde1
│ │ │ ├── 15543824d49a0c371ee757cccb56d59d4b48dc8f
│ │ │ ├── 157dff8bbec834cece8e4cfd768be5a6ab96ddc3
│ │ │ ├── 16077c190abe85b0a67b269a059d2550ac8b796f
│ │ │ ├── 1616169aa8df395837e090dd5317a638863227b9
│ │ │ ├── 162a2922cd983d9c1996a52a1d5af64724ba37bb
│ │ │ ├── 1631404208e77c19ae94fa53644b725a697a6db8
│ │ │ ├── 166118cca614a47d9c26d4287c9dcae7bc130b14
│ │ │ ├── 16878eaced78f293f281a4394705fe3f19eabcd5
│ │ │ ├── 16905ddf7b726ca98354213477419714a8ce97a9
│ │ │ ├── 172720b98aa09c6e2da9c2c923887a1ba187b35a
│ │ │ ├── 172b7a258f05476e5279c132e88bd9671cab721b
│ │ │ ├── 1736f344976dc0c9eff6da38de7bd3dcdbb3ad2e
│ │ │ ├── 17592f1e46829d2332673918e797f182fd63dc7c
│ │ │ ├── 1786783e84569302d65cdb592c8abdd71997e797
│ │ │ ├── 178a56798dbff29282d6429f38b90a3c38176e44
│ │ │ ├── 17a20e3c23fd2d68a91430516f98adda339b5e75
│ │ │ ├── 17ba0791499db908433b80f37c5fbc89b870084b
│ │ │ ├── 18409f12d471904b1b324de65c6aff415c1c5a05
│ │ │ ├── 1855ab3449f6c88cf6aa1b4934d0255c0aee0e2d
│ │ │ ├── 1859d9982a973a8e8e3847191636f7b1c4f6fd94
│ │ │ ├── 196b6389f1311f74b44bd406db713d2830124b51
│ │ │ ├── 1984fa93dfc82250e73902e2094b31f111574351
│ │ │ ├── 1999f967511f9931e244f41dd5ba8f586bf1b74f
│ │ │ ├── 1a139c28e803cb895cb9c8e2008baa3a4800168c
│ │ │ ├── 1a29dbf01695c8457debb8dc12e0f7a1d3e7672e
│ │ │ ├── 1a30f2cc216bb8459843204398b5431c90ae09ba
│ │ │ ├── 1bc01adbf15f9a2146d439f34d6c316962958cda
│ │ │ ├── 1bc9e0764cb9ae279a27eaa37792529015ae0620
│ │ │ ├── 1c1fc881d7074cbfe129781355adfc8f4510dd60
│ │ │ ├── 1c452b522903c9b6cc1d7ee28685e56f4d4f3a2f
│ │ │ ├── 1c5f039c98401c78fc859e8ba39f434467c4269e
│ │ │ ├── 1c63023736fa34edaa0472bca59b29c71f685313
│ │ │ ├── 1c6ee8945a330b22dca0a1f248e6eaf9e9b4673d
│ │ │ ├── 1cbc0701f571c57fc689e4d0cb7320cbcc47d85d
│ │ │ ├── 1cc082453db0c1fa6484c964620ce13a6495c329
│ │ │ ├── 1cd5123b2c94e4b37a96148a2d43b603138e2588
│ │ │ ├── 1ce8d6e48ad6a5541a2fba389435a110951b2fab
│ │ │ ├── 1cfe6329531e65837a48878188eaa4b928056e1c
│ │ │ ├── 1d214277d19efb8d4d78a929f75a105796e7f265
│ │ │ ├── 1d28dfde0b2b31337dc9efb6fc98893732dca6c3
│ │ │ ├── 1d6218af537c56e29654960efa9d2a130e3550d1
│ │ │ ├── 1d7a7560de069798a1f66f270354f55bb8ed780d
│ │ │ ├── 1d7d4fb77f5d6a80b915add906e1f114b4b3d3ce
│ │ │ ├── 1d80b236737362b6763b7b22a2ad3b19d659ea67
│ │ │ ├── 1d80d873b86c73a774d41c7f504ca572c637e972
│ │ │ ├── 1db1e9c1e0b138d33a6a062e03033078e3cdf314
│ │ │ ├── 1dcd48da411ef26ca335e0347025a79c78423bdc
│ │ │ ├── 1e16367fb4bdb0286949fb4a8a50d959fb6d78af
│ │ │ ├── 1e3c14ab05640bf588144da10bb936d28efeb1a9
│ │ │ ├── 1e5c2f367f02e47a8c160cda1cd9d91decbac441
│ │ │ ├── 1eceffd53c2e082a2df0684a0221f2d16f430c8e
│ │ │ ├── 1edfd5ecbcb7c50c862e3ebe191fef60ccf7a7ac
│ │ │ ├── 1f187e6139077f3f55a145fd026d3baf937e3d4b
│ │ │ ├── 1f39d340b18dc9b554bc535fd249a10b49260475
│ │ │ ├── 1f3d06ddd5437d4514185fe691dbb59f2bb53916
│ │ │ ├── 1f668c8902ba9efe59d2ea6a34cd6bf5cc5f37dd
│ │ │ ├── 1f7557c7de3b93383d2e48fce35f039adf41e16a
│ │ │ ├── 1f790217fa6bae2b6ec46521c2cea06680cb2bec
│ │ │ ├── 1f9849b0cb24187ad03c9d184cf086fc1b4eb2a8
│ │ │ ├── 1ff4c4e9170262e620a41def028d9d6d43edc735
│ │ │ ├── 20d6007e33e76f0ff3ba49a497368af9aeb4d7ef
│ │ │ ├── 215a956168f77421253e947c2436371d56aa7ea1
│ │ │ ├── 216c075a457b4945e2594fa325a5820ac63de222
│ │ │ ├── 2184f131e5af33c14627fff444e9ead44896863b
│ │ │ ├── 219c1782ac5f71bfd734999a1afb7670d0ca07a3
│ │ │ ├── 21cc6cdf6933f957c28a9d0a35d29bf237819705
│ │ │ ├── 21e7f06bf3afea9e1c4c8ffa7efa2d4ffbd70ba9
│ │ │ ├── 2202987b7d0d68a6213dcf9f95abe6de70e400ae
│ │ │ ├── 22b7bfcd6065c40803265f7f6db35a85b58e8687
│ │ │ ├── 230c2a19de456daf59aea7607a69d101b8abd853
│ │ │ ├── 232d21941dfdb9e55f19c2cf6592309a4ba67d42
│ │ │ ├── 2341a15a08fb357274df1c3dcdb4304cf5df9fd5
│ │ │ ├── 2343bee24829ecf3f2092e8087f273710e42b771
│ │ │ ├── 236c4b0bb9d846e26c21de410bd105e40434acbe
│ │ │ ├── 236eaa74e961723e0a697bded434f85a116eb9c5
│ │ │ ├── 237ce6edacbcfcab10f9ee374825b330418d5022
│ │ │ ├── 239e7a68a995876fb5e6af6209d0e0809aae4fa3
│ │ │ ├── 23a48c247f7a12ecd2e488960a4a32c858f4d012
│ │ │ ├── 240efe256b302e414b80ac46c605ee2e273300d0
│ │ │ ├── 2493619b3e38685a3f99453f24c7e466040592f6
│ │ │ ├── 256d295f4e87aef201a703198f9c932fc015c5ee
│ │ │ ├── 25980b41f9e2743440deda73c5486d134000fa3b
│ │ │ ├── 25b6589aaccdcd9496cc795588e1d01865f318f4
│ │ │ ├── 25b95b039141fd2b01a0de23f42f2bb5b7aae59b
│ │ │ ├── 25c1f403285891a81a3ce4a27e38ce62f7a642cb
│ │ │ ├── 25d9d15d2b775ae65847f7dbd87a5076745f99b2
│ │ │ ├── 2628263c649c2dd81122ba9ee0e4d3f8b2b2dfd1
│ │ │ ├── 26771d9f8386fa3e7476567ca9b69d5e1ff38461
│ │ │ ├── 26a5d4575144ec44ba60f9d5f1ab07e46b823938
│ │ │ ├── 26da4ae4fd3cc97742a53f5010fe7aa7b2659274
│ │ │ ├── 27338ef809358f9ed9c5525547157dc7201a5f7f
│ │ │ ├── 275f2e4648d1078f44abcc73665cd50760b49547
│ │ │ ├── 2762b3b7303c297a640e88bd94cf3f216987af76
│ │ │ ├── 277c9a08e3881f657825ccfe636c44110f86f9ba
│ │ │ ├── 27a1ebc75a4776e2b341fcf82001d32f47f6b793
│ │ │ ├── 27bd3c5c268f3835042ac0e1d96f7e3d49c4fb0e
│ │ │ ├── 27bedfa1e51ae36f35fb4602d93099318649c1a2
│ │ │ ├── 27cbdd2e1f71bc5c19ca37f9a0479ff85c1d6dd7
│ │ │ ├── 2809c70d0161be859f0d7d56d277964c83d7941b
│ │ │ ├── 28602696c48f94a8986e05a93f53df2f074d68bf
│ │ │ ├── 28838b1929cfb5d5fb59f3c28b3a381c734aecd4
│ │ │ ├── 28f8bac71263d216538fbf30a315b7eeea8f0b36
│ │ │ ├── 2947f2e90cda5e7c20cf2d67cc5d4c2c28386773
│ │ │ ├── 295c738d4507000072be961bbb1879db167562ec
│ │ │ ├── 2960b092c24042ef6e92d60a1621680a0a7b6f28
│ │ │ ├── 297c3d22a37550f74fe842983e02923604d5dd53
│ │ │ ├── 298ed50471738cd75cf28b8ed3684a0732eac173
│ │ │ ├── 29afe10969b9e2b0b9a7aa06fc7bb73b7b01f52a
│ │ │ ├── 2a17e6cf06beffcf931f5d3394dca1e725b6c530
│ │ │ ├── 2a3c14fc5e2382dfd8360e475e57d4cc5473ca0b
│ │ │ ├── 2a76bf5f792ef887b6cadf4d46e9b3bd01c6fab1
│ │ │ ├── 2a95b67553c33d754298eb6ee01fcfae6e1b03f3
│ │ │ ├── 2a9721827356716247ad4d99d94f6a1e6ae92d83
│ │ │ ├── 2aa7725488a917ea4fb369e74cee680c2c6f6624
│ │ │ ├── 2ace62c1befa19e3ea37dd52be9f6d508c5163e6
│ │ │ ├── 2ad8b2d68feec151408552340eb77587fba87bed
│ │ │ ├── 2b774edb0631cd161c8dfb8c190698e315a3dd1a
│ │ │ ├── 2babf932e75486b81bb1b53c882fbce1eef8c1c3
│ │ │ ├── 2bea96c684438c27b8e9f70140f4f6382c0cf9f7
│ │ │ ├── 2bf0dac82bb2b944b679ee658666ffec6e336c32
│ │ │ ├── 2bfa989034f43999b0e7770ef7cb463317acc4ff
│ │ │ ├── 2c1b74330a478b7a9c4cface1acddf2799fd79e0
│ │ │ ├── 2c288a66a089ba217c925c3e5bc710b78341c8cc
│ │ │ ├── 2c382d8885f2d2fb64ed3ce4aa9d00cc6ae75fcd
│ │ │ ├── 2c8c392400150efe27116c5c23edc39657a5c9f1
│ │ │ ├── 2c8f9fcfcfaa5abc0d983d2dfb6edec72fbd06e7
│ │ │ ├── 2ce2c025ec68b0c3340bb8f56897f722a0cd2682
│ │ │ ├── 2d1cb217cf8f4c2ba75a7738526d0f4c47af70aa
│ │ │ ├── 2d1cf82b345ca6a65175047d470607d826825bdf
│ │ │ ├── 2d1d5c500eece9f3b3d5e7bbdc8536becd1afed3
│ │ │ ├── 2d228be273f5e117fe3e29bb54df778e93972d1b
│ │ │ ├── 2d63759924fecda05ff2fd422845501dc0adf3f8
│ │ │ ├── 2d6809a25aaeb7e81e0154cb4fdb2a77d4d27ac2
│ │ │ ├── 2e0a71f160efcf980bc119d548fa27ee0314398b
│ │ │ ├── 2e7c5a954bda0a5d7779115245ee0d26ae49ba7c
│ │ │ ├── 2e907e37837a33eb0ae3c998d3804b120f3c98da
│ │ │ ├── 2eb36c101070a456b4bcc066f701c7516f1e0493
│ │ │ ├── 2eb7981e0fbf7e8343b67de3d6837b52bc1e532b
│ │ │ ├── 2fa00ea5f90cb58fea6ca4bad536a6fdc9aba4d9
│ │ │ ├── 2fb10137eccdf4c105a638711119a8719e447871
│ │ │ ├── 2fd293bc34ec68be110d565e092d96a25fbb8f9b
│ │ │ ├── 2fee93debb3d4e2b91846f13257c56d152087d45
│ │ │ ├── 302d26248190db0a111feed94fba1fb9c9ccdfae
│ │ │ ├── 304c8eb755feba4ce375639b05ebcd6bc240149b
│ │ │ ├── 308d5f6b525c274a4cf60e06aa5aefd60c4def82
│ │ │ ├── 308f59b32968e04e82b2891ba67ffbabdfd5b8e2
│ │ │ ├── 30a3dd65f13d9b4ea63cb6d96d4f9f3514b226d3
│ │ │ ├── 30e399c8e10ceb0159d7db5069e3487be184e0d3
│ │ │ ├── 31292c21af27607cc56925511cebae19e5181dd0
│ │ │ ├── 3166df7178e0625a65a99b35fd05dc7ec32d2dfc
│ │ │ ├── 31789ace8fdb0fae2976e8303b614c51d0a139a9
│ │ │ ├── 320207545589f0e4be6c65bf81f0c6da06e71222
│ │ │ ├── 3202e6827932dd9b7e73e2c15e37bc1b82401845
│ │ │ ├── 3208097f6d585c5f179d8ea81b556cfb183be414
│ │ │ ├── 3236cdf989c6c644d9cb3fd4a4284b5d38367785
│ │ │ ├── 32747b2fb9f67646af177f4e8edad550e8517a23
│ │ │ ├── 327bf0ed6722e84ec7a84049403db7098f0ca628
│ │ │ ├── 32f36826124b980508f6a8a06403b17ac25b53cf
│ │ │ ├── 335a84fb113277a6ad545f92f633c5ce1aceee06
│ │ │ ├── 3384bd1ad8101f87f32a0ce59ed38f778b5f904c
│ │ │ ├── 3395de18e081d9d9376ce849628f422204ab921b
│ │ │ ├── 339f299f1034f2f19d64632750d1448145c92ff2
│ │ │ ├── 33def802e2a29af67dc96902af460349dd9a25d7
│ │ │ ├── 33ebdd5488eeb128afcd0f318482e9566acda525
│ │ │ ├── 33fff9861ee11ecf4f7f5ec17f00b57325d5ec19
│ │ │ ├── 340b12b1d2f288accc5c9e559686bc236f04ec02
│ │ │ ├── 343bdcca4f1445ac8e3575b0c76d0b1f16a70e1d
│ │ │ ├── 348111bbc3e8c2c1ad1db5f8210796d042c1b9be
│ │ │ ├── 34a1a65920f896f69bbf3c346dfbf3d241f81b48
│ │ │ ├── 34ac8bd26ccbcd9858dd45350fc1d714fe6a30f4
│ │ │ ├── 34c4365f9a7579468055bb6e7a9fda590358b355
│ │ │ ├── 34d7d4145bc862506f07e3afcfe26b588d4c96d6
│ │ │ ├── 34ee4e0fb298fc29b69feaf316f18cf3f9fba10f
│ │ │ ├── 351733f0c158433bbb8af553873bd0409c0c52ea
│ │ │ ├── 35196833663fe1e66dc2feb47b6e26e5fe44f14a
│ │ │ ├── 3562218b95d438863a56df560e372f1c376bf482
│ │ │ ├── 35d19261fdcd553ded45308bd097c8a2fd7d443a
│ │ │ ├── 35d96efd9f4ac9fae10d0d419539616fb98f9822
│ │ │ ├── 35e7040f2bf803305e024f6e708a6a2c4ffd3170
│ │ │ ├── 361b1d1f5cd745180726d2693c2992fbdea5b0a8
│ │ │ ├── 362cfe1d73162471883d7386ee53f7fb42af6dab
│ │ │ ├── 36850342543a9ada4596919c03c07d43b7b07565
│ │ │ ├── 36fa45d79b68e3e5223ef0bb2d1c29bb43a4f7a1
│ │ │ ├── 370b3a813fa5d4df99b1cbcd12273a8ddedc5aa2
│ │ │ ├── 372b48649c97e0f3510da5eb65593093e154dbee
│ │ │ ├── 372cecde6bdc292bba06f88c5fed34f5f05fc346
│ │ │ ├── 3753ae73a4559c73400224088eb6b2c55ad5cc9b
│ │ │ ├── 377137184527025e0ea925c9a8541ad4d99d5547
│ │ │ ├── 379e9c8b787812b54a54997b939830299f5ffe82
│ │ │ ├── 37d540606ddbc3bfde1d7ac9998f7af3322d64b4
│ │ │ ├── 37e17f2d625a921a40f088e4e63b48d1df72f79a
│ │ │ ├── 37ed45d9fd8759c65f9c20f7212a525aafe3a558
│ │ │ ├── 38786743e47a1200c85b8919dbfd5a0a2f220c87
│ │ │ ├── 38c42d3fe894d06965ef5110d4a7a01c1e197c7b
│ │ │ ├── 38d1309c8b3f136690d7f730abf9534c55689ec7
│ │ │ ├── 38e56425101b1c12aeae78cfd2b6fd310b7a2ea7
│ │ │ ├── 38fd625f357e27ffbdfe2668c3434dcaa383f254
│ │ │ ├── 391be45fded893f9b7292fcce2851ad4fe0b26d8
│ │ │ ├── 394a9e45e71b73a413f59a0a5cf743facb04ffb6
│ │ │ ├── 39965d9b54dc858506c6edb0b0f90aff2d70eff6
│ │ │ ├── 39c72f1b63f8125b5505df6bd4171f586334d01a
│ │ │ ├── 39d99091b6be761e640f6a69c7882d15cdbf6604
│ │ │ ├── 39f38fa68ee08ad29a9188bd0f6d6ef4f6f12a3b
│ │ │ ├── 3a09a3de6657ccfbbdc20f9992a0b36146362a23
│ │ │ ├── 3a0bc54d21606c0262757bede95d1d634ac743a3
│ │ │ ├── 3a11f439f987e242d22bbcc681b8032397afe4f5
│ │ │ ├── 3ac3bc7744cfe0db75494814f6ee7aaa4969bdf4
│ │ │ ├── 3ac7dc86a3b3be5ca766b154e24e8e234c520fbf
│ │ │ ├── 3ad49e798d7d966583a4c3358c7e9c1a5a4af2f4
│ │ │ ├── 3afdef440667864e1a86de9c9e0b17ba46afafd3
│ │ │ ├── 3b43f0e6473d251870ebe3b2d3ca7ac96929ffa2
│ │ │ ├── 3b7a06bb1102f7d788e3167ff05a9b20da93212e
│ │ │ ├── 3b8228ab095577b57783a4e9e84884ad493b1914
│ │ │ ├── 3bc0450fc0822685676b85d782a5a82a50f2d4ea
│ │ │ ├── 3bc15c8aae3e4124dd409035f32ea2fd6835efc9
│ │ │ ├── 3bd4cc94f2eedbb8839f447022337d027b8f2270
│ │ │ ├── 3c10c0691c25e0cda2f91b968fd565f82eedb7cf
│ │ │ ├── 3c18dde7f397a3d2ac85e4e6b718d182719b9fa0
│ │ │ ├── 3c2346ee3027e07d54f36ca342e2c734af2278da
│ │ │ ├── 3c336cb88f39a9bb9834874f9fbb4d4cc5451293
│ │ │ ├── 3c4f5eb04091be902bdc49260a25d82939e6195f
│ │ │ ├── 3c71b41a3339af54b8fd324b8032ab67a54d98cb
│ │ │ ├── 3cc0c9adcf3882f01409c70391c3cd30588ef34c
│ │ │ ├── 3ccbde3ee9ce7fe4451ed263ead17827b5a20c63
│ │ │ ├── 3da9cf8540afb4478b06e25f3ddcf0c8f3cd9306
│ │ │ ├── 3dab001eef911a7f6ef0116315922f6c9b6bbb41
│ │ │ ├── 3db583f6b7dbac51bce70b1cbcd6684bcfff9fa7
│ │ │ ├── 3e4a1c7d66a8cfa290e84fb8f8ebf70cd82cb394
│ │ │ ├── 3e8d29b0b9ac8f775a8359459695cc61c9ca1a04
│ │ │ ├── 3e8e8a3a15c76f1325055b65cf1c553004f3b118
│ │ │ ├── 3ea9d5a432c432ced51814405e6054c036719a60
│ │ │ ├── 3eb4d8e0175c68935f3adecd46e0905eaa540674
│ │ │ ├── 3f1fce56d85c2be73de56da44061ae3d5d1047c0
│ │ │ ├── 3f3d2d8955322f325af6db2238355fa07007ebd9
│ │ │ ├── 3f46553672e465842ec1e13f655fb2412f369a75
│ │ │ ├── 3f5b4fd54d7d65119eb30c3189f8c1db1b235c17
│ │ │ ├── 3fa9f42362648ab1664d4c94a394992fcbd1cd94
│ │ │ ├── 400cd284379f75d94d72c83b34b52a7f68115192
│ │ │ ├── 405aa6d9e95a1ddfdac04274ac0d886147b9fdc8
│ │ │ ├── 4080aad4e09976800c567178e96a2224afb44c62
│ │ │ ├── 4080e40e55ec005e0608226f382fda9fa3f00ebc
│ │ │ ├── 40834971eed0f77d42f9b5c71026396f82ffe665
│ │ │ ├── 40b34add174514e531f9afad8b2d8b3c4b51b53d
│ │ │ ├── 41297a62e158d9c33b0d70979388a43fae09b043
│ │ │ ├── 413c895cdd4c65a5ee4116b925bb7983c513afb7
│ │ │ ├── 4188306a902fc5b7684dcb7522c08832e91f97a8
│ │ │ ├── 41c7e44bb0579aa7f4019bc0f2a4fb6daceb6df0
│ │ │ ├── 423b069c60c6272209eb2792833e88728cf105d7
│ │ │ ├── 423f7c4dfaf780084ee2550103711768642f8c87
│ │ │ ├── 4280f0a60bdb986b51e8b8dc2288cd8c19ad0e2b
│ │ │ ├── 4296b33daff22cec69fa15e9294cac2a4c1be6a8
│ │ │ ├── 42fc7cab138c3bffc4e81fe3f8a2e77cc3a8d3d1
│ │ │ ├── 4313d0cda84a261b2b03933749ea4e4ac526e6c2
│ │ │ ├── 437a074f2ac29d235596072ef1298b97265162cc
│ │ │ ├── 43c875115514f41f7a8dde1a74d3ce2e80eaf557
│ │ │ ├── 4411f39256e106721697067994543efcd7402261
│ │ │ ├── 446135f27042adc7ff2547ba3df77b175496ee80
│ │ │ ├── 4468e2b68d133ac7828889993098e5eef8dea921
│ │ │ ├── 447f451b8b7ee11d357e28834f0df6224cec82cd
│ │ │ ├── 450db3efdcff3410a2538efa74bc2904d4f1e844
│ │ │ ├── 451400a2054e00af514b005ed831f39e43ea8ceb
│ │ │ ├── 45341f73379cc99aabe7fa303867ba18a77786a9
│ │ │ ├── 4542f1c6bce7b5ef1c1a73b03e24506086700ab3
│ │ │ ├── 45453f7d38ff031145fabe9fccd261192eeda418
│ │ │ ├── 4597cf04ea0b24d1fc67257eebb4fc4489c2c3e7
│ │ │ ├── 459953d144f98c42a4cfbb452c8b464a4bce6a0b
│ │ │ ├── 45a6c96209eff0195cfee139f70a5d5e7fac9a7d
│ │ │ ├── 45a933e6c049300ddda26d4b7e07bd46e9667e82
│ │ │ ├── 4653549544f320473b7fbbb0f831113e21ae3ecd
│ │ │ ├── 46b6bf4bc8709110705a65b6f772fd77da1978c8
│ │ │ ├── 46cee0e08f9472278dac5b6a2e507535673fc0cc
│ │ │ ├── 474b20f1420832d4e3ce060fc445c617d1768438
│ │ │ ├── 474f1d0aca79492fc90bc8309528abd9581449fe
│ │ │ ├── 476d54b21b620fc973c77c76362cb1d661e5ab87
│ │ │ ├── 47fe5c8c67662d0db976f29239aa14d2f8b7ca02
│ │ │ ├── 4851375ea86f359673ebc54cf0113d1495435f79
│ │ │ ├── 48754ca4cde3878664f922dcf04b46f416c5fcdf
│ │ │ ├── 4889648e8a44b34f0c29210a988460e643285f84
│ │ │ ├── 488a339d8589fe302ff2b90692264218b250ff88
│ │ │ ├── 48be565a9634f8000885f8cb150dc352c9105bd0
│ │ │ ├── 48d4d61fda7edae362ecc83114c1f1907c8a0b79
│ │ │ ├── 4913c66edc1516e7e1b888a387fdc74678c5ed17
│ │ │ ├── 4916e9a8fd8fca7cc291771622bd3e49eed5db10
│ │ │ ├── 497d26a61e86ada8f6166298f35b61b40e2dbf62
│ │ │ ├── 49844e0dcbca72321f4f9a962269fef8728bba53
│ │ │ ├── 499be66ad7666c3a0187210d3c8a4f58b24765e9
│ │ │ ├── 49a57c7fdd847ee747c0ca96a735228154b2c67b
│ │ │ ├── 49f5169175b89fcc6c8170decf2a9c7a21788b4e
│ │ │ ├── 4a0a19218e082a343a1b17e5333409af9d98f0f5
│ │ │ ├── 4a1a62c02323eb9ddc3fcd706b762606db5fd381
│ │ │ ├── 4a47c77243a9b1db9b34d788bb7757f25315cd5b
│ │ │ ├── 4b150385dc629b52921df99a5138431a3c53ae00
│ │ │ ├── 4b3e82b270d5cf60415f6b8a37046839a1eb82e3
│ │ │ ├── 4b408d78dd49db9489e37b74b5e9bfc17f2c2ec5
│ │ │ ├── 4cbf6c660383852039f6dcd7c5e6f34ce9d1a212
│ │ │ ├── 4d3176c70b79ffe89111fa4951a41d3361014cea
│ │ │ ├── 4d4ebd417302379449fffed4cdb5d1aaf7257f47
│ │ │ ├── 4d6c6af1e4a1e332819857cbd32311a9d5676fe6
│ │ │ ├── 4dbc78b6ba2c08e2b7d8c7be098b7736c48a1915
│ │ │ ├── 4e4215704e6087d68358cf586283a359ac0723f7
│ │ │ ├── 4eb38b4be4322ad7fbc1eacf5ae840eed3604647
│ │ │ ├── 4f3f060d2b254598f050840aa988f4cf36736983
│ │ │ ├── 4f450f08c58bfb4efe8e5469cd56a68a5b8ec93b
│ │ │ ├── 4f479dd70969b1c61e2aa9e0d7b28ce951320684
│ │ │ ├── 4f5765a9a68b1d1e8bd9837311615bb712f744e9
│ │ │ ├── 4fcd7aea14399895fc3b714ba4ab8a5e1e003692
│ │ │ ├── 501ab5444eae9ad32b562570b36ff628ec3790ce
│ │ │ ├── 50495e08a3b12d9709e75faed61bb5348c546bb4
│ │ │ ├── 507f205ea6c56684fccd943a609cdc0bb346a69f
│ │ │ ├── 5178385df63a91f9eba586f0de99be8acff5d65f
│ │ │ ├── 5211f28f1e05bfc4ea0f6e51e4c5a780810c9f9a
│ │ │ ├── 5226ebf815a6f3a2dd66fe52f5d23a658f488344
│ │ │ ├── 522b95c0267408f0303d8f0800a0acc88434bd51
│ │ │ ├── 522ded6f6768a63a36c0052efd621d656cf0f7ec
│ │ │ ├── 523e68fd4357b677e785685bfaaf15605848a80d
│ │ │ ├── 524811f443cf072d261ba6f1c19ec2bd0d91e5d7
│ │ │ ├── 5286e94b4793ae92b19a3cc532954e4aaa6500d0
│ │ │ ├── 52aba038b86998c05b5507fa9422b51e68367509
│ │ │ ├── 52db6fb74ac440a76e95a1544b457cde550470d0
│ │ │ ├── 52ed58efba9852309859e7115373a88eba4d6fbd
│ │ │ ├── 53095bf7785bbb0fbbb9567a9238342b24a12f14
│ │ │ ├── 532cd4b10773917daae39df03479f8b3244c68d1
│ │ │ ├── 535561a4b91974bfc0aa4747148e19eaee605d6b
│ │ │ ├── 539e0278337f619b40d8f087446c228bab6cccc7
│ │ │ ├── 53fc543b35d9dade41d75ff46ebd99de95c49d32
│ │ │ ├── 53fe417ce92625d6aec48ae87124d603e5fd760e
│ │ │ ├── 54088bdbe122f577e2bb2bbaf0892d2a84d1d107
│ │ │ ├── 545dda9ac933f164fb06b9ce56412feb0e87389e
│ │ │ ├── 54976ca2093d1368e56a4c7d0a2b909b5a2472bd
│ │ │ ├── 54d18dafbe5558371956e46e8a3f71dbd35a64e8
│ │ │ ├── 55668c2a8032d4bb7e67186547d18b420efa1842
│ │ │ ├── 556ce15192eb2fbb9dd0038e4fac6bffc9bf9a97
│ │ │ ├── 558511c9c3651ece20f53411db2280c83a7830a3
│ │ │ ├── 5589f830d3ad773cad9e3ec310c594274960ae5f
│ │ │ ├── 56e0f9f2e224f5870db0c75e222b7f84ff650697
│ │ │ ├── 57164b5b72873859518379803db5d70122ffc6f2
│ │ │ ├── 573fd0b6bd990a3168d1527eef353f5c3701cb83
│ │ │ ├── 5764af93bca63d9c5fde5855afc605ffecc362c5
│ │ │ ├── 57799e19812c6415abed8d8eb16fe73c0dbb86fc
│ │ │ ├── 578a81ce19eddfb8740cc918ef30e3e3de6fed29
│ │ │ ├── 5846ca010fd76d7aefc92e4b5a56a806405ed3f1
│ │ │ ├── 584b2a4c8f1a04b2299eccef30368d80f07e0690
│ │ │ ├── 58d420b7a408f1c6f155c2e8b7907595136e2392
│ │ │ ├── 58e3c6f57d11f93ca54603fabe37c8b5f9fcc09e
│ │ │ ├── 591d717e7afc6b6f670d8b2166ecf3f7402a9feb
│ │ │ ├── 591e403c211f3400bc5e93075a05d91702c3f410
│ │ │ ├── 592aa173f4857b6f37f18c687109124a154c838a
│ │ │ ├── 594eb331a727d4dbf5af307884e8bb9efb9a08fe
│ │ │ ├── 5964b11c9939954c1b0e487f156e71d677d3839b
│ │ │ ├── 5993bf51dcc85ee696faf3f69684ef22dcd4bb7b
│ │ │ ├── 59d8ba0d0490b2fcc0a6cabaa9ef23aad6ca8c70
│ │ │ ├── 59f6299681965548f40fde40d3155c2d754c5c40
│ │ │ ├── 59fb69c6db0d55e803195ed43528c4ade75917e1
│ │ │ ├── 5a0160a039e2b324dbcd8a7d4ae6f74c9fca394b
│ │ │ ├── 5a5f5371b1d2368d46157937b94ef96067ad9e0b
│ │ │ ├── 5a7e539f9a8f862158fa28224b1349e518251796
│ │ │ ├── 5aae4dd436f51866bc8ab3e7f68691a07f740901
│ │ │ ├── 5afa8cad31bcf2c5d904bd8ba754e6677ee770dd
│ │ │ ├── 5afc3e1fee1233f0e9cdf3cdf799c3f0f29e7eae
│ │ │ ├── 5b086a7767cd2cb3dff6ddd3a258c057262b2735
│ │ │ ├── 5b2f4c9f931eb48805af7d510eb94b3d7859218b
│ │ │ ├── 5b339ffa1a980cd97e7ecb6869251e219c0ac426
│ │ │ ├── 5b378bb29895dc729a02cf9da53c5783f5ed09a4
│ │ │ ├── 5be4662a424cc1a499e5227b8c685bbcdf089dcc
│ │ │ ├── 5c29a15abb9eb86e7e02e986bef11965b507ecc9
│ │ │ ├── 5c4b33387c247bb9825d6d458d962df814b46c8e
│ │ │ ├── 5c50e2e091b59dc75219bbef78edb8340202629e
│ │ │ ├── 5c7007f1832eadc11bf0dd73d2c74ef167fbf451
│ │ │ ├── 5c72da08f13e3df6d60f53d6513dd6552e66c36a
│ │ │ ├── 5ca74922c7d71c3a26b4431eb90c264326f079fc
│ │ │ ├── 5cef62b6376467e41f0ec5bcab698ec088bdf3d5
│ │ │ ├── 5d110ef6952a97232b85d38c47aeb91362a4f4b8
│ │ │ ├── 5d326935586dc7e8dae79fcb91c31ca079ffc675
│ │ │ ├── 5d453f1961da8d8aca27ffda3b43bb8cdee39df5
│ │ │ ├── 5d9dca33a6be38fe569e106e5cc886854ce3e8c7
│ │ │ ├── 5e1d727a4196f15ce01c55c1fa4ff51587f46676
│ │ │ ├── 5e208bc71186feda27cf3251ba094696fdce8c33
│ │ │ ├── 5e400b915ed5cdfa0df99df1d3280b418e9fddc1
│ │ │ ├── 5e5481335bfd96ebe488211384f06a8bbb8fb490
│ │ │ ├── 5e656964a20e04bec5754870a3a3fd392141891b
│ │ │ ├── 5e6f19659eb4cc7657b20e1df0b7440ee1a0740c
│ │ │ ├── 5e7771cd274c3247859b9e9171e192349e51337f
│ │ │ ├── 5e8db4609549ebe1b720f571139f9e76389e7da3
│ │ │ ├── 5f004a2615edaa7b8e2df2eff7b8e0c10f54016f
│ │ │ ├── 5f421e3cf6daf0642f816053eb0ca330fc5ef51b
│ │ │ ├── 5f449004c9e39807f0e8f8d7b7a4ae97c3b71e25
│ │ │ ├── 5f4c1c618e8458445dfbf02dfa7ae8b909636645
│ │ │ ├── 5f5dad4fb9769faadc7ce392fbbb5cb62fa03e7c
│ │ │ ├── 5fb77413b5cf53b8ee9bb03847006c5fbdc007c9
│ │ │ ├── 5ff75a6b7bf6c4b6479680c04b4760c22ff97833
│ │ │ ├── 60215a10e730f79c20b7d4fcaabec120335e379e
│ │ │ ├── 60272b580667bc336839441f3db4f019728b3392
│ │ │ ├── 6049592232ed99e05cbd7c100608ced7cfa8ba01
│ │ │ ├── 604e195d66a392eb33bd71396d450aba2986e930
│ │ │ ├── 606f50d3891bc0fc033e8aa3bcacc865c136176e
│ │ │ ├── 60b01afd5379fc6d51263eacf6820fd4337d89f2
│ │ │ ├── 60ba4b2daa4ed4d070fec06687e249e0e6f9ee45
│ │ │ ├── 60cd435dbb7d7c1b33ad7a03acff155c286f814a
│ │ │ ├── 60f4cef6efa266e9c2a502084079336b26beadab
│ │ │ ├── 611f2784d7499ce48e59ac4ebf1dc3cae4245588
│ │ │ ├── 6193586878f07594a8e844c318d1663d92e032b6
│ │ │ ├── 619a07125bd0500300e50fb8e8f0c5ef1d4fd0ca
│ │ │ ├── 61e615f5d223296fbe35ecf40f7f0ed027fe90fb
│ │ │ ├── 61fdaba3650e4bfbad84131122ce949343672e69
│ │ │ ├── 622833b9d1425c97805dc74dd3b1abd1f4f3b006
│ │ │ ├── 626855d0d646249185f996be47ea02fff27321fb
│ │ │ ├── 62a2f275c26bb87707b9b757eeed0021da48e06b
│ │ │ ├── 6312ca5c168ca862eaea09bd0ac81889b89a2409
│ │ │ ├── 63347e049baad1da689010fa9a1bd4133bbb63d4
│ │ │ ├── 645938395f67b641fc971581f6ef9f64169d0a41
│ │ │ ├── 646dd560fd8f3519f4b547d01f43c94150d8a5ce
│ │ │ ├── 647540e12fb95b8406199edd247a16a9c2186442
│ │ │ ├── 648f2517faa4a9739a91298f49666439d974d486
│ │ │ ├── 64c9e51daf077df780429ef914f92bc9bd49710b
│ │ │ ├── 64f74ddc2c5aa8f65815509d3cfa1bdaaed8809c
│ │ │ ├── 64f7b6fad7d69c74efe01d7b2b6f7e5775379dbb
│ │ │ ├── 64f9f8e441f73ba147f020b02ec78ac759b41bee
│ │ │ ├── 65126beb58fba7d27a2f36a7c91a8b56d1b9b235
│ │ │ ├── 654e0aaee80e38636c503629d32225db31a616de
│ │ │ ├── 656b3e0b9c2dbe2725bd3f08261db20751de0b43
│ │ │ ├── 656fb09839385e8251d78499ae3ed05ce97d7cb6
│ │ │ ├── 657127ba2c00959ea67205b16c63bdb2f10a2515
│ │ │ ├── 65aea98c57dcd2a1ffb0d35ca20603caaf7d9f03
│ │ │ ├── 65b544011acdbe217d3bbaaa65f1970aaa69cedd
│ │ │ ├── 65c20e09b9f3a47f5039569cd37a5686df76f02a
│ │ │ ├── 65d3a2099c67f644bce1218a2543b1a1c4dec4a0
│ │ │ ├── 665f5bbc3ca48e2398a4a198fe47d4e881a5e51f
│ │ │ ├── 66a6ffb4d6668d7bbba65d5a288e156462d5ee6a
│ │ │ ├── 66b4ca637035bc4df1f0ac6c7774ca1e9a27a8b4
│ │ │ ├── 66ce98d3bfaa1c2c5eaa0cc9d768d89ad444d58c
│ │ │ ├── 671f0dd3f19de4b4bd2fc06eabb4bf0d3825ce19
│ │ │ ├── 677fdfc640db7d7977e89f91314e8e0ea7918e99
│ │ │ ├── 6798a6cc00180e65c6b51c3990744757221eb0be
│ │ │ ├── 67af585ba7303b80777576619f8c46d1b012dcc4
│ │ │ ├── 67b40800d585a70e1b2ee84c3109c005c326567b
│ │ │ ├── 67ea809a689ee506415c7e52c3df441cb2826771
│ │ │ ├── 67f08a93e78cb7e0c4f2c99b83640102242c3187
│ │ │ ├── 68481156e2ccb16fa0ec15dd1bbc4cb2524b7b53
│ │ │ ├── 68c44cedcd6000de4a3283cab764c81a529ca1cb
│ │ │ ├── 68caa96c6ecd6d1e335686d4af4d53fe8006be48
│ │ │ ├── 68df978b8802f1bf1a708bf2661187a9095afbca
│ │ │ ├── 68e6cc15163fe229e77ac95819c08e64cc6252fe
│ │ │ ├── 6948d3cdbf8af79afea52bdd2b15ba20e23b17de
│ │ │ ├── 69905c910f37e69820a697fdb485468c8fbe4854
│ │ │ ├── 69aa5878320887984588c6b0568b974c8710bce9
│ │ │ ├── 69b7cfbf4db9b4011fefe6fc34d383a4b9820295
│ │ │ ├── 69c6263aba1c5f70b5b9a568a32f18fb360374ce
│ │ │ ├── 6a24ddfeb4c80c6e632ce750bbee73a880973a33
│ │ │ ├── 6a25fc3b03006936a321c9c770ff196bdfa5616e
│ │ │ ├── 6a3eb2da615f620404ae55afe5c39c03380d209b
│ │ │ ├── 6a3ed5f7541fe9ceba61df074ce4253e7b86d5d3
│ │ │ ├── 6a8fe97e7e0aff2a886b48b3f471bb7da954c1e5
│ │ │ ├── 6a95391b29b757f09f0029671b65a44451f6a9ee
│ │ │ ├── 6af58d7771c70c96a7ed5abff2fefd1662de1951
│ │ │ ├── 6b4038931b4199be105b653ec04bbd7ea1b11509
│ │ │ ├── 6b408f4fa72ed212aad96023684aa1ba1be3a4d1
│ │ │ ├── 6bb6d0a600bc89dc37873256ec0d1ad7bc31e134
│ │ │ ├── 6be7c108587c54329783a29666987df722ef3790
│ │ │ ├── 6bf6271b4becdd27a2c8367966fccef2548a32b8
│ │ │ ├── 6c816dffae36bf7b4315b6aa686a591042f2cb95
│ │ │ ├── 6cd93133796be9aba238524f6736b3208d49b125
│ │ │ ├── 6d013e136c0e276e4d1a9cbaae1d58ec8d66c2b9
│ │ │ ├── 6d9f94222f9ec834dd28baec1de035fc188d08dc
│ │ │ ├── 6da9dee7ddd170f998bd64d10f4f55c2806cc571
│ │ │ ├── 6de18b6871e065271da0a4c78184d4c40b78a1e7
│ │ │ ├── 6df6798f657135cb6df8dec89cd2f03b156c7712
│ │ │ ├── 6dfb2838c073b12b29c8a0292b2b58c2bfc4aac0
│ │ │ ├── 6e2e1bf0d3bbe5b5955cd958884deebf0aa3302e
│ │ │ ├── 6e334b9848443d6eb7af800cae51675fc214ea4d
│ │ │ ├── 6e36570008b093e78a59d0280d1cdd965f9676b9
│ │ │ ├── 6e50e139c2984f2666d46bff74eb9c2bd49a3bf5
│ │ │ ├── 6e9a4baa26b989fbb2335bae8da3cdd9c3bc2b83
│ │ │ ├── 6ed2e2ac8fe395647378bfebc1f72fdf22c4dfc2
│ │ │ ├── 6edf700f1249eb939aa7726d2bcd4299fc3dfc8a
│ │ │ ├── 6f6ceb69027bd7e4251fbed8321055eefa6e63cf
│ │ │ ├── 6f70930cace121ddfbd0e42d07517a3050f57f53
│ │ │ ├── 6f748fce4819418108bc2101af0d4bfc9eba1a99
│ │ │ ├── 6fd311b05f522a3562126d30b3559231d8dfa84c
│ │ │ ├── 7002503224d9281d81775c1eea009ea6878a0d66
│ │ │ ├── 70121fedb21edc37e07cce4b2eaf4ec8b658fe68
│ │ │ ├── 7018bf96f81aaea48a8ce21dee2677036c4a2900
│ │ │ ├── 7071b2de1b5322e99a5cb040eb8195b1d4c75796
│ │ │ ├── 7071fba39f78039cce76a63ccfef0f7d3f1c3dac
│ │ │ ├── 7081f69ac36f0c5baf82587cdee7fdc47c1ad399
│ │ │ ├── 70a5e8b7d0e36ceb64aebfbc8cb5ac556c88f681
│ │ │ ├── 71059afc6d075b0e4c6d5e4478d1c76aceddd687
│ │ │ ├── 7125029088bc38632ac389950d7cbe3fdbca2cc0
│ │ │ ├── 71297df83d7e630f52d5e79742df4c8a8129207f
│ │ │ ├── 715f2d11f3f65b3638c536cced1d42792b57ce1e
│ │ │ ├── 71853c6197a6a7f222db0f1978c7cb232b87c5ee
│ │ │ ├── 718fab8e665a70f163b7a12f8298477980779d9d
│ │ │ ├── 71f7b757fb9495d8709b03f26057e665752e87bb
│ │ │ ├── 71fbc3a660a26ca287903f82daf16fca2c895f20
│ │ │ ├── 72005fb14bb03496ddceec4b9ea929b0be071519
│ │ │ ├── 721b64139f9f060b5241233936b58617d16634a0
│ │ │ ├── 723a89cbe93e33707529c913a0fa09a510f7c8be
│ │ │ ├── 7255c68f599fc18b7d5f4a4a5ce277e3bba1f335
│ │ │ ├── 7280b3f1c9d09be0b3a80fa59e784e7b7820a9ba
│ │ │ ├── 72c34a954e7fae460fd8ad2dd3b62ea4380d6134
│ │ │ ├── 72cd8f4b26bf1e1386861cad4acbc6d0918be3cb
│ │ │ ├── 72e02f95519e7935956da6e16d039e2d7467dcf0
│ │ │ ├── 7307475418073ff604a26ba6f8ee440c6b22f29d
│ │ │ ├── 7343f8986b9c637ecaa0c3c05a3b3b7efc729174
│ │ │ ├── 7365111e8c3d4c405d0c6b95e5c25aefa7cddbd9
│ │ │ ├── 736641ba171b77938e0ef54941a8c5ac6a3a6521
│ │ │ ├── 73a2ca1316a7826e2dff390b2dd6af276d84224b
│ │ │ ├── 73b1658169b5b210f4c297290a7fbb953a4e5ab6
│ │ │ ├── 73b8147313acf220c795b00f0219629bae0031f7
│ │ │ ├── 73d2efede675386d697305a87305daf866e0cc58
│ │ │ ├── 73f0c445241acd08b13ebc88cffffaa661f1cf13
│ │ │ ├── 740c987f93ba7bbfc1668b82307e2d79156d325b
│ │ │ ├── 7411b09e7eb3b5025f6e6a6f685503c249ef44a4
│ │ │ ├── 74336b1c4fa712829155ee269060506af0bce38a
│ │ │ ├── 744879e9d421932426b4188a5f7af2a400d5be21
│ │ │ ├── 745d9b13c7c7de8177ce6006201db3425e090356
│ │ │ ├── 74bab7ee8b44f4bac1fa097fa480f6902bfc0879
│ │ │ ├── 74c362852b5c947bae2e08d1a05e7db3eba934cf
│ │ │ ├── 74cc7617085b87dc88a9cfb523425a974bc2480c
│ │ │ ├── 74de01d86c4b7f3a445a220fdc4cf6623d05e2d3
│ │ │ ├── 74ef84a20e2f2c91fc84b3fca16584f3418e966e
│ │ │ ├── 75363113d6d085c6cece8646f15847839f296318
│ │ │ ├── 760fb7500540952e64eb575c3c153b2a5c67032e
│ │ │ ├── 761039217507ea135d6fcefe94678e0ff25d99b3
│ │ │ ├── 766c630cd0c36150961b821b8e2da60f0871d631
│ │ │ ├── 7694b11ec914635f184d6f1fb73250fd6589506a
│ │ │ ├── 769d7773f2a529a73a19399b2a06d6b384741ced
│ │ │ ├── 76a1d01890c4a6c1b022e9921ff4d4526a4484e3
│ │ │ ├── 76ae2bebfa0ea782f12a6a28f341e9fdb5a70b81
│ │ │ ├── 7712e5e36eede4343a0ffe6593b436eb0031d17b
│ │ │ ├── 772fb7f6b3ee3e28983d16f0abda41c50fb8d56e
│ │ │ ├── 7730fe73e3d8c7c9310e741bbfc60bf153fac85a
│ │ │ ├── 7757439037152b75047e9597b4de347d3bd2bda1
│ │ │ ├── 77d9d9f718621c64bc8d5b3be84e53e6d5002992
│ │ │ ├── 77e9d0244355be3d68f920b858fbe9b1a10ba3ff
│ │ │ ├── 77f11c0c3e252afa7467b8b2a2521b17cb4da40c
│ │ │ ├── 77f3c10f472eb9d39171799241dbe50a7e91a340
│ │ │ ├── 784b3c240135574580c344ee7ee302836d66bae9
│ │ │ ├── 784ec8114435911d91840995a39f4b9fdf6fa6a0
│ │ │ ├── 785386b047c86f5a09bdef34ed24a1fdd3e5369f
│ │ │ ├── 78997dd36178ccdc19de4b34949eddbf7b55608d
│ │ │ ├── 7967bc78831c52fdc76d74ecdc7b43bea3a7cef5
│ │ │ ├── 797969cc4507a8ec5a1728fa109247710a5587fa
│ │ │ ├── 79d25b69ad98e20c4fdeab89d08bda4f54c477d8
│ │ │ ├── 7a2862bd8183b0ee0b143bc138ca41f9da74bdde
│ │ │ ├── 7a3da42a74ea0e80c0d5eb57b98537700679a571
│ │ │ ├── 7a41bdd287770eff99d7fbe42155337b06f73d3a
│ │ │ ├── 7a7bce61642dcea25bf2e9b226c2b17ca64fc557
│ │ │ ├── 7a9a19cc4d2d0c96ce27b5a29ccb2b65a40590a5
│ │ │ ├── 7ac1ce6e5a69adfb44c2ae5cb5430de8bd529e49
│ │ │ ├── 7ac28adf6d5d816b91652f9d90cc9a8c15bd352f
│ │ │ ├── 7b34ddb952ffd36194b6c23e30e17c0a31f5fe6a
│ │ │ ├── 7bc5f065689bf05d373c9b89923ac51f6910a2d4
│ │ │ ├── 7bcee6a5dfd877f507c9a7ab19ae409f55e521e7
│ │ │ ├── 7bea7361e7f1d5f305534c42bb018cf2fbbedbbe
│ │ │ ├── 7c338ed2840d2bf55f9f5e4eed04f66c80840eb3
│ │ │ ├── 7c48ce01b1006c562e8f00e00b3bd1542503963e
│ │ │ ├── 7c5c8feff890229fdfc0536633bbe323b00f2196
│ │ │ ├── 7ca513f3a37ea20dccd8e4b72f447e3a81137bef
│ │ │ ├── 7d2b11a17efb47d2d2e514099e7a035d6a328424
│ │ │ ├── 7d3af4b4986e4726bf02bd195dd0f822c8747298
│ │ │ ├── 7d4a661e9e7f38e3ba1e27cece7e1f92416c1380
│ │ │ ├── 7d92bf544a66d9430c1a14df2dc81ef8bef6a42e
│ │ │ ├── 7de1ba51cf77c9d6f0337eaf143ca2fed4fa9f04
│ │ │ ├── 7de1d66acccfdf3a77dce89254b313fe2da362d6
│ │ │ ├── 7ebfe75a23e1d2fe618c6d700efea978ca0867dc
│ │ │ ├── 7ee0552f721e4f9f8689a8c50f79d7a6f12a9765
│ │ │ ├── 7ee3b452e6c9c94faf9edcee561571a7458ff29d
│ │ │ ├── 7f379556dd07f330182b7155c56778345150c1ab
│ │ │ ├── 7f717c6a7b422398ee28dac58e3ddfe159f98933
│ │ │ ├── 7fc2a82d07d5ca43a02a0f2b5d0a7dbb959b8ec9
│ │ │ ├── 7fd6710dc313f012f7610cccf0f89f94e4a6c9da
│ │ │ ├── 803fd09995a97ea13a394bac74d1ed5a2e6671c2
│ │ │ ├── 80510823eaaa9d21f8b75fe4ca2097cc8dc2c155
│ │ │ ├── 80ce3c876335642ba3d648d58d86252312e62e96
│ │ │ ├── 80f058e23fb8eb9f19fcf8e5a16dfa19397d3bf3
│ │ │ ├── 813aa30e17da315d5b322b34a96fce5ac8730ac5
│ │ │ ├── 815217492b6d5cddb6c5cf72cc3f124b0818a384
│ │ │ ├── 819b07c67d164b8fdf338f403637ba80b33a5a46
│ │ │ ├── 81b19fbce8c737684cba678c83bcec75018d3876
│ │ │ ├── 8208dd3adef9d7bfddb789222778813ff5446f2b
│ │ │ ├── 8255f60b56a9bb06d778aa21c2cdef00d332addc
│ │ │ ├── 825cac9287449e9dc7f545e1266c4b425bcfa43d
│ │ │ ├── 82988ce60bc305df3509a8107127ac6ed411ac3a
│ │ │ ├── 829985dab434ea049414df9c867aa15c3ca2dfd8
│ │ │ ├── 82aa7e3876115df44f7d8836ac85aa7d9e516264
│ │ │ ├── 832d5b3188671d25731e6cee98080ac3930e1ccd
│ │ │ ├── 833d261be77ec49b5eb14bdfae5a6f515b77154a
│ │ │ ├── 83745ddaecc7295bd5987b2ea2c640521bc2ef6e
│ │ │ ├── 8396a08d7b6af2d075b0f49c4dfdd2b3a1954a03
│ │ │ ├── 83b7309db4f6b572edee40a1529fb572d7849ee1
│ │ │ ├── 84715408517e0b2c274091d67f1144d01487ae05
│ │ │ ├── 847f19c54a56327321aa2753e3367ed8aa6660aa
│ │ │ ├── 84d5ca02b7dd95dcbc53cdd72c6fde66eb392bd2
│ │ │ ├── 84db9986323329726e1d34739c9b27febf41a6b3
│ │ │ ├── 84e7a7e59e12e16ada61f97498f30101c6f75e4b
│ │ │ ├── 84ec9896f8b880499122b3213e75783a878e6e03
│ │ │ ├── 853ef60418abd6ceb0af0952e305ca782b5a3bfb
│ │ │ ├── 854906f02c9f064e568a62f32fe768aff5ade53f
│ │ │ ├── 85877a15ffe90d7f3cf5df62b3689dfe99825e4e
│ │ │ ├── 85953c4583a9e4c29f49e1ad524df42f9b9d5b8d
│ │ │ ├── 85c42ae953a5ffd207cc73486ce6dba1fbd98d91
│ │ │ ├── 85cfdd8ff1f25a19ba4ea902307a02224fd1f586
│ │ │ ├── 8633c0d1a2136f1a3ab248d6fd023aa156134954
│ │ │ ├── 86510396f902f0f6c477507d41f5818e8a10ae41
│ │ │ ├── 86937ebd0bd844547e3e8858697c2bbd4c8a9f9d
│ │ │ ├── 86978709f845cec2c71f524339067a022dc64e82
│ │ │ ├── 86a726e8c8650e656cfd8f2fdcbaed3babd4c2bb
│ │ │ ├── 870406cab56a3e34935ce2c0618c1ba083d9c89f
│ │ │ ├── 872f3f469357d7efc817924e5f300ecb21c5d841
│ │ │ ├── 87376199cde08cc5a081c781fb10c1d46d75eaa7
│ │ │ ├── 874e1ffc7267c63ec1cf15a714daf73129baf5a8
│ │ │ ├── 875c089d28943c789bd01358ef247c533a9a2f13
│ │ │ ├── 87d4c09dc4fa3a30e8ca71e967f8b29735f3397e
│ │ │ ├── 87d510897ab02478fbd40f66fbae172ac61bcce5
│ │ │ ├── 87d559e6541a29581df48337c1113c24a6dfe08c
│ │ │ ├── 87ea33eb20390de3955ceab905e29c8118b6f210
│ │ │ ├── 87ee1adeb8b44054256c8b06d5742ac330831ab8
│ │ │ ├── 8808781aec13551817753d017e63d01e9a36e038
│ │ │ ├── 887f646319f21d1832a1f410c764a85b284edae9
│ │ │ ├── 8882632b7f0dffa4d723ab9cf17bedb55690ba5b
│ │ │ ├── 889dafe75e2ff3e156c19c64970e831e780340b2
│ │ │ ├── 88b89dc6c74be13ccf3b127810cad928bcc80148
│ │ │ ├── 89083907a419b34f60767720a7321b0c7e08e69b
│ │ │ ├── 890ec7539973234d9e8e9b6a269f025f8b2f70cd
│ │ │ ├── 8925f4fd67fdfabfdd3085e1c3bb82dfdf601ba3
│ │ │ ├── 89554db32d4c262b3cde61e1dab1c8bbb03a6712
│ │ │ ├── 8955ebe508aad7a5304f5528b42a71ac590907a4
│ │ │ ├── 8986dc7195f91ecfb4036576053ec5cf1443ffb8
│ │ │ ├── 8996736185e4a9e1bcaeacc40d7623ae71b4f4a1
│ │ │ ├── 89a70c9e9a51579a7afc940154fda92cb9e34041
│ │ │ ├── 89a8899fbeadd6126533a53fd73d7bd7fde61a81
│ │ │ ├── 89f71b240a6f84db97ffeae5071c2f5827101835
│ │ │ ├── 8a37acf9d516019c62a2485627bb9ecc10a32d14
│ │ │ ├── 8a609c6306899f9048b2dd83720aa01ecf7a22bf
│ │ │ ├── 8a62acaedc8819babbda795ea8ae6c6ca3663327
│ │ │ ├── 8a64160745226c52ada7d2fb46c564671b94fea5
│ │ │ ├── 8a980e634d67a313fbdf4e667eaad93f937053cf
│ │ │ ├── 8ae92d85bdc2ab45307d84f8fe1b7b33b4b51ef5
│ │ │ ├── 8b2d9bd2f821948bc59379cb551c230b677559e3
│ │ │ ├── 8b434c54d0baf4f4401a5ecd1811800e51c182f0
│ │ │ ├── 8b64b9a53bc7def08b33aa60af18aecdf97e6b79
│ │ │ ├── 8b9966f8de45327580315d73d623bf4919cdd42f
│ │ │ ├── 8b9b3ffc8dc35e72f3fd548de9a317adb33219e3
│ │ │ ├── 8b9fc6f1fa2c7be5f04a819338d9024aebddc354
│ │ │ ├── 8bf058ff648f7c6a7478c685bdee033bd7c87ee0
│ │ │ ├── 8c4a751404315cb24bf1701823ef10c0f678bdaf
│ │ │ ├── 8c9087fd8352dbfa734e18ad7dc146451e10f4fa
│ │ │ ├── 8d66aebe342a099b0f3b2775c1eb617875e534b5
│ │ │ ├── 8d6fe3a5a60cdcdc4e8a520f00ed80931000d60e
│ │ │ ├── 8d7fd542d6991618960d6e63b0266aa60b032842
│ │ │ ├── 8dba8c3293ef83e5bd5e3f65574b998dc957184c
│ │ │ ├── 8de89e740f15c9a24c083e5492fa1d75b8ae80fd
│ │ │ ├── 8df6f9746aee06061963e4551280c50645ddc70f
│ │ │ ├── 8e180d5c21e026f57ecb222924a750c3d8e6860a
│ │ │ ├── 8e3c7460789ee814f8dd6df8d2a120a1bc25c4f6
│ │ │ ├── 8e7f7c92dc3b1c70bf70d6db08989299c631dfba
│ │ │ ├── 8e94e5a8c5a77029d60e11b499c5ffc3d955fd60
│ │ │ ├── 8ec16d2d89c4d2d0d97d1647077e0fe59b5e6d37
│ │ │ ├── 8efd86fb78a56a5145ed7739dcb00c78581c5375
│ │ │ ├── 8f1653c62a69a759ec64557c473fe38f9bd602cf
│ │ │ ├── 8f27d5d19276e456a4ed7ba7633374814dc64b7d
│ │ │ ├── 8f2d14d20a4b915bf7babce673ebaac865395060
│ │ │ ├── 8fd0c1bf1aea783d64b98657b650270dd228a0a2
│ │ │ ├── 8fdd8e53e5eced795f033e8c0d383002afeeb259
│ │ │ ├── 9003a3d699faaf1b4d969a2f09f12b94d1984c67
│ │ │ ├── 907d305f8dc2eeef29777cbf02e71174a12d6edf
│ │ │ ├── 9097b7d8fc4ac664300586682b06ef4d1f97bfdc
│ │ │ ├── 9098bfe3cec3bd38d4bef4b06ba940390876bd9d
│ │ │ ├── 90e1684500be7ce760ff920bffb912e8e1fab3c3
│ │ │ ├── 91533056639e00bca25609c84326c7746b1a8651
│ │ │ ├── 91748141aa5fa2d5f31589d3ce70c74d20a1cf79
│ │ │ ├── 917d3283e2619e02b6a1cd83d46a7777ba82c1ff
│ │ │ ├── 918685c3ed600c58ef1679e557f243ffb55df666
│ │ │ ├── 9198957475a60c8e669f5762ef8f22366d8ffa79
│ │ │ ├── 91dfde1d6e005e422f64a59776234f1f4c80b5e4
│ │ │ ├── 9206fdc05603e6aa440fba244e4b12c715deed0d
│ │ │ ├── 9235b5df1e09cb6edea4727858790b83f460b837
│ │ │ ├── 92527e52276794f0fadc6bccc6c5c45149438dc7
│ │ │ ├── 927d7b53856175931bbc99cd8b95c6a250f1f172
│ │ │ ├── 928705450cace2a6b485c6aa8c991080b5c4d7e1
│ │ │ ├── 92bf25b363502731e36a7eede6825fe59c739ed4
│ │ │ ├── 92d64f5802f317ff0e7c96c0e4a1b14c3ddf2016
│ │ │ ├── 9326f2230eb094ff8d832531288188473bfdba91
│ │ │ ├── 93577763529d52b0ecb74fb859a0297638ad2376
│ │ │ ├── 936c2600ced56141dfda6e65c677109a58484103
│ │ │ ├── 937d952f2856439135bf7c407c57f31067dbb584
│ │ │ ├── 93c3c80a0cd5dbbe003b040ab3088876141ec93f
│ │ │ ├── 93cb0ef4d3cf5b473073ca9c2875411c671da2e4
│ │ │ ├── 93d497503a0e154b8a6666750e21e603309c61a4
│ │ │ ├── 93f97bc6282e64688a1f26ffeabd424468d23e27
│ │ │ ├── 9421ef7a42f96e840ed4b8be14fa69bcd338a590
│ │ │ ├── 946ef6ec030cbdc0a213c0636667acc55fa0c020
│ │ │ ├── 94c5406b16807a300a6fab102213dea896520d26
│ │ │ ├── 94e07024c64822c266a8902ab7c8bcda46c1e96a
│ │ │ ├── 94f147f2605aacadebe9358fbd3f4d1794834bc5
│ │ │ ├── 95001067eca7fea1ef39595276bc6cdb16264047
│ │ │ ├── 9510b11555d73deef859c468e7ac5ee2d479e29d
│ │ │ ├── 9524073b629a0369a7ba7f5b8b413bcad1f01910
│ │ │ ├── 95848cbfae314a6e74983b5b747197cbfea32c3d
│ │ │ ├── 9584d5e727b8a3cd49c847f95f7293ec214750ad
│ │ │ ├── 959cfd1ff8f88fae5ba1f0d579cfa5787d0d69bf
│ │ │ ├── 959eaaa00d41e966c75cd70e62176c229274992b
│ │ │ ├── 95d0e08dc637634520140386b1092c9e4e7b447e
│ │ │ ├── 95e5889b03a5124ac8e88ebb7709af2ed79f877f
│ │ │ ├── 95fd2ba8b2060849c962ba4cf2bdda8682db7849
│ │ │ ├── 961ccc14462216604e10de9654857bddb713ed0d
│ │ │ ├── 964fa4ea0734abc37035330e5703a9d977716d25
│ │ │ ├── 96f9191eda654d2f33e2a91d91d78a3b5a5e63e9
│ │ │ ├── 9749ada2649e11677b2887efe919da6a101f0d8e
│ │ │ ├── 97d170e1550eee4afc0af065b78cda302a97674c
│ │ │ ├── 97e7488b0ca63d35dc7bf61ac1d7cf60271e2f50
│ │ │ ├── 9801422f896acb4aa9bdbff478d722f34d389d5d
│ │ │ ├── 9823452f7bdd84dd3eea0236c81e3c5c0e1a7655
│ │ │ ├── 98543f4e9151b4daf5b0946edd64055acd0098cf
│ │ │ ├── 9878681d4f564ff3d1dac5cf35e57791681839cf
│ │ │ ├── 98942b2fa5fc2386ae6b65ae48c44950b54bd9c6
│ │ │ ├── 98b3643f683293bae56776ce4ed5ba5a24f97537
│ │ │ ├── 98c11b35f135ebfb8a6cc1e4b51768963c31eedd
│ │ │ ├── 98cb89f31e4299060a213b8628ff76e98ccda5de
│ │ │ ├── 98f41d981857c8a644b33730768de1b21ac3ad3a
│ │ │ ├── 9948373c0e8e1a2ea3c7ee118c4c684e873ab666
│ │ │ ├── 9970bf47ee4c690e233d6b9646911ffb1b47b3e8
│ │ │ ├── 99a751a61f49587009801b57cd0bc698a0675327
│ │ │ ├── 99aa766b8a4f0ab6578a41f74a72d455b92d90a6
│ │ │ ├── 99ceca3a07dad7f983ddbb9a8e102a572f2bde40
│ │ │ ├── 99dddcfe0ce0b01c0b8e1ed5227995d987b2e6f8
│ │ │ ├── 9a127e94619f3fd8ba23d902ea57b0a15de36106
│ │ │ ├── 9a396639f005f80ffa18770dd3ab22557c2bfd2a
│ │ │ ├── 9aa861982dbedcb42bc2d0a9e799fe20b06a2def
│ │ │ ├── 9ac1958b7370cf81d36794c39a7afa8bb8461874
│ │ │ ├── 9b3a0f66c64788ee1021d801a3d5344f206cc360
│ │ │ ├── 9b3b914851af53cdad17fd5a53581ce2a4b10c1f
│ │ │ ├── 9b6c94891513e888b56a7c73f3d8d99a42e8b01c
│ │ │ ├── 9b814752c087ef667d398a0b00925d2d5516b28c
│ │ │ ├── 9c17362676cf63c52c396fdea414e8f66d30c114
│ │ │ ├── 9c7c90cab1cdaccaa897651941edbb2495aef2e1
│ │ │ ├── 9c7eb9654c0705ffb3a76dc61e354e4dd5891927
│ │ │ ├── 9c80aa1c68c55720f7172bf20c83ba2030f2165c
│ │ │ ├── 9c977e49625711ad3927a8281cd20dac00becc51
│ │ │ ├── 9ccd9f3f526df57224dbe0cca5ba52fb35ca7004
│ │ │ ├── 9d4858e0f4fabedf2edc2484f99d074ee911ffcf
│ │ │ ├── 9dd24f849d902c86eca38e64a0e131e384c1fb2e
│ │ │ ├── 9dd5bfd8b9d53ade81181b05be73d69ac6dc8553
│ │ │ ├── 9e3725a1e43ef2fadffab785961e1675ef2a6a15
│ │ │ ├── 9ec34954b2c68c3ce6a2dc317d123923da09ad4a
│ │ │ ├── 9ec8613d24f57c9a78726ffba8bb116e1ec71baa
│ │ │ ├── 9f6f549ec9383ed8ac7172d5ba77cf81f787f57c
│ │ │ ├── 9fb677ffdf9bb95c03513db87a0f659f4eef46f8
│ │ │ ├── 9fb96a28e0ecf0c7722887f1a2b00d8a6f709a27
│ │ │ ├── 9fbab75d469c0ddcddf43a5b9d9adf945a994264
│ │ │ ├── 9fc789e6e2c169abfd6b06c74cc59d15a1196386
│ │ │ ├── 9fcf145ddbea0f17085875b937e3476b2a19fdfb
│ │ │ ├── 9fd163299e284cac73e460592ec22bf5e5b7a663
│ │ │ ├── 9fedcbbe9564a051bdd40ff51b5fa4af5025ad89
│ │ │ ├── 9ffec196c62d15fcfbd00844aa3c260ed15afcbc
│ │ │ ├── a0441ae490afc5e7b8f49969822cd8f6f26d1ba5
│ │ │ ├── a0c6febe36c4444c9cc10a3147925c1998a77094
│ │ │ ├── a0de3d33eeb99d9dd1768baf1d3e005f94a49788
│ │ │ ├── a108fb1ff5209f98abeb4b8d4d5b45c7af394547
│ │ │ ├── a1334dc8d05cebb90550ba9d53bc547954417857
│ │ │ ├── a144f0701f5c7e1adc9abfb798cebb4a068dc661
│ │ │ ├── a190f7298c1366b9c185239111796b48dd0ee292
│ │ │ ├── a1d0f77c9e1de1cca9fced42952c6b99a1cf4311
│ │ │ ├── a1db2e467d1757272a526a435d8453bdeb57bc7d
│ │ │ ├── a2149f4e9f06353d5ef9fdb2a482ab1bc8a00b64
│ │ │ ├── a26667d204cb5da404762b194cfee37e62854ad3
│ │ │ ├── a2746e09f7e03522383d5837fe0e608d5f343c0a
│ │ │ ├── a27bb96cef7ffd10f116373490d450c9474d44ed
│ │ │ ├── a2bb413527abd1016ee54b53a1ca94d01b7a7cff
│ │ │ ├── a3319ead46bf9f7725fd36c33887fdbcb4a9dbd8
│ │ │ ├── a35870abfe36c5087c497bea881bb345206835df
│ │ │ ├── a36ebc82b53618657c6e85d6c5ff321de21aa312
│ │ │ ├── a3b1275c7991c4887bdea9c04274e0581cee77e3
│ │ │ ├── a40913ea98f302840fcf73d3473fb5739efe69ca
│ │ │ ├── a40ddcf84db6be316c8a4eaed141ffea14f5e96e
│ │ │ ├── a421c4a794455e2ed0a4bfb6965823d769315ae6
│ │ │ ├── a44081211250d219276181ed32b7bbdc9bdf6ac3
│ │ │ ├── a459a4211a7801b6940484ff4e9a1c4d23046e2b
│ │ │ ├── a4641d2ad386dc90f49ceeba18da662724381227
│ │ │ ├── a4a8cc21063f1da4850491d45ded402707d5522d
│ │ │ ├── a4b6badcc8f3c74db32ec99548a13ea2f3c94406
│ │ │ ├── a4ee8d03c2e208def1e15f8761e74d5f2f43df41
│ │ │ ├── a52486c8faa7590c713109cfdf53ed3139ae6ffc
│ │ │ ├── a5392332a30ff91577a68056a8986676b6c64f32
│ │ │ ├── a55d2e03fb1e866fd5f57aeae21c3d841838a3c5
│ │ │ ├── a5735077e5ec918a745ceadfd9550c0ac11e9601
│ │ │ ├── a59f388d9db5e11b4051952a4ee6a7413a4ee57b
│ │ │ ├── a5bab9e8d03296f4b99a66dd62a4dc023dee6f82
│ │ │ ├── a5e2aa6359356e92673d4b49cc1ae7f789af60a1
│ │ │ ├── a602f9e53d9d0ad0c3cb5ba4620157a0f8f6ec90
│ │ │ ├── a6100d3bc3b0291f65f36820dc096f08b39923e1
│ │ │ ├── a6532c8d444d4dad7369b265f1e85d73462f6464
│ │ │ ├── a69908c8bff6fefd41785cf6f145b61e7526cfd1
│ │ │ ├── a6aaee0fd63fbd3443f5291ad5c96dfe7ea50065
│ │ │ ├── a6bb96678f32d8cbd7842ea780dcc0b0de0e0669
│ │ │ ├── a6f568324cc23a5385be3c8c239d3db0c7172e79
│ │ │ ├── a7369ddda5a160e899869745df3ce72589090d26
│ │ │ ├── a7745410062a7a69a0e4e7013101706b5e6e1799
│ │ │ ├── a77e91fbe3b497e67780104d80b9baf2dc855f2e
│ │ │ ├── a7ba0ada495ee679d148169242224922e1b031fe
│ │ │ ├── a7cb9cc085d63528538a1b262bb978382999904e
│ │ │ ├── a7dd29c3b33fb01bf38932d6360f773e06ca3435
│ │ │ ├── a87f1dae0f8ab5a2c664ff647f9a6bbf1514c737
│ │ │ ├── a8a21280fb21eaed561dbe8c8847c0d11319d36b
│ │ │ ├── a8ba7e14662710eed8f8549f34f925daca620123
│ │ │ ├── a908920e8359127729b1d6a15c36da9973c4b529
│ │ │ ├── a9240f166f8d5084150b991df88191d353e9b4e0
│ │ │ ├── a92fa154f80b32d73c9b9c5f571bff6f7baa909f
│ │ │ ├── a96ba2d6a55300acc8f9d1de7ee823dd5135a8f5
│ │ │ ├── a9c2ffe5b2f1282922c4ce065ea38e58b4bac6a8
│ │ │ ├── a9d35892e5836a74fcd23a6cfba5dd5879949064
│ │ │ ├── a9d3e092c9b85ce07ba3a1592321b5f43345a78c
│ │ │ ├── aa5c87957076415cf2b60a592bd076c11e0d87a1
│ │ │ ├── aa64548d1d823f7a13a7a2337ccbe54229ee1176
│ │ │ ├── aa76c48a193aa2ef333bf50a3588c2b1d76444c8
│ │ │ ├── aadd102a95c1005eed8418b1f19c4deea7c8fbf2
│ │ │ ├── aae4823680f8e9a659303fe9555a0c3ff5d80fe5
│ │ │ ├── aaead72efa125cf8bf3d56d5b5d3dba2f8db459d
│ │ │ ├── ab161aa34bda96b20b6281217ce6c51dd55f137d
│ │ │ ├── ab7fa25c3e3f1c4b43ab59623882e79c1f3fd6bf
│ │ │ ├── abb0bb281a728bd1e693b0471683e67a0f57ef4b
│ │ │ ├── ac153594fba786b366c93b7645f8f8a2b9836e1b
│ │ │ ├── ac6b275741d040ed925a652b39a90e88e720ab88
│ │ │ ├── ac9231da4082430afe8f4d40127814c613648d8e
│ │ │ ├── acc5bcf2274fe0d508f96696aabebb6ac4386b8e
│ │ │ ├── ad2a8f0f6e1ee029025844e8177b9fbb41947381
│ │ │ ├── ad800cc0250b233b2ffad321cb8b585ee1edb0c2
│ │ │ ├── adbd6562dc5c51d4e4b68a581ed5af33f50083aa
│ │ │ ├── adbe60e8a3a032e3a9c6e41fa73bae6e4d1e03d7
│ │ │ ├── adeb4a82e2a3a3c1cd32de3c4488d241286b3a30
│ │ │ ├── ae1b7156ab2dba6456c2cc0fc27208e663b34ecf
│ │ │ ├── ae882b459d1dbd85179fdff066aa754b02e3c050
│ │ │ ├── ae9b541966fb8737f6e0a7feb974bc05bd378c76
│ │ │ ├── aea5992604988b218addf8e3fa819b56ab70f787
│ │ │ ├── aeba26cd606a1bca176609b820d6febe35192a25
│ │ │ ├── aed46455adc8bed05635efd40d95610896519fa1
│ │ │ ├── af070a627f34901ffc090a8baabf645a7f9a270a
│ │ │ ├── af0e2bd7ab592d34272a771b67b40e88b4c4ad95
│ │ │ ├── af1207e93bcc14b936eecec46fd8a0d05818f0e1
│ │ │ ├── af388253a7f50c219266940500cf132e07d11869
│ │ │ ├── afafc6409a3fa2791cf0722b6d87a1a676b6f059
│ │ │ ├── afba6fdb2532b3ca2ef1fa610e3b76fb1bbd38ad
│ │ │ ├── b02f57f5161caa1800a480349871ac3213a0b0ac
│ │ │ ├── b0b171139791e140e5c23e5103f4a1b36f024542
│ │ │ ├── b0b70ccf3b39396c202ecd61e3b0fe06b81b0444
│ │ │ ├── b0b8e3773cfa73c772cdff5655e666953557f8c3
│ │ │ ├── b134bd04ffa8fbc92b4110593a7a54390249cc59
│ │ │ ├── b13b58653e13fe09509581752abbacab554db4a4
│ │ │ ├── b153361e004e593da95d6fe88d966d01a715304f
│ │ │ ├── b155e86d9a43cf9d05175f714284bfaff34edc1a
│ │ │ ├── b1966287cb58515bb52cd094784ef88a6b78b426
│ │ │ ├── b1d543b2543afac0f93582fa99e00a65c18d57c5
│ │ │ ├── b1ed13d0e6ec40aa1eba3cf3eb9cff7816f13b89
│ │ │ ├── b2622cc6477b05c34d963051a20f64f3bd679b6e
│ │ │ ├── b27adefeaaa6f19905688de084dbd6a055cdfa7e
│ │ │ ├── b2a4d85e98db09f91346ce0d81cfc7a2e0c066fe
│ │ │ ├── b2e1d22ac4f450ca203b9a706c8a9518fbe1eefb
│ │ │ ├── b3799eda5c1d727b1176b189c9ead48d3431bfe3
│ │ │ ├── b38807427ba5dd2dbf6cd7fb9a809dbb5fbfff76
│ │ │ ├── b3b6f0ce9c9a3a21d8eeb6da56f6965163ced234
│ │ │ ├── b3c53aee908c5641e3bd9aee3af9c35c388dbe3f
│ │ │ ├── b41ab8630e5ee40112f139936a9bd0fb636ee5be
│ │ │ ├── b4266ec68f1ed072ad5e02d37819294b01aed51b
│ │ │ ├── b47b99ad3d6fd54f4eca6d8edbf2e792e5d311f9
│ │ │ ├── b4f38b58a503aeee7228e38874088194410e2822
│ │ │ ├── b4f44c1fde61fc9e482b8f1767e377d5c5caf914
│ │ │ ├── b59ca11a0ab30888b81a14283c565c87026d32eb
│ │ │ ├── b59ec93886f3563342f6cd09196333aeca6768af
│ │ │ ├── b6198f5a6c35196f1ad0b11f0e8a25128bf1ec7c
│ │ │ ├── b6589fc6ab0dc82cf12099d1c2d40ab994e8410c
│ │ │ ├── b67f3b2a5eea1a0d00c27ca6503b467ba26c38c8
│ │ │ ├── b769ffb499b1db835f57ccec37f4542b742d77d2
│ │ │ ├── b7fde61ad56ddfaeac7e1d9ddbcb85baa239154c
│ │ │ ├── b80ace4c3f8f0d7fcfe7c00bd45a77b553058a4f
│ │ │ ├── b8448e48c7eb8b5f9206d12fabefab3eb3d563f8
│ │ │ ├── b858cb282617fb0956d960215c8e84d1ccf909c6
│ │ │ ├── b8abac800b5d0a02725bbd37d6cbed65532336f9
│ │ │ ├── b983b47562c02a23e06646234093bde3c0e37617
│ │ │ ├── b98c6967941d1d5e4f256516d9e735f386190c69
│ │ │ ├── b9f6e8df12d8ae9dde6b07010950aa9b8991a4f2
│ │ │ ├── b9fdbe0705cd07c5ea75a9110e3ac3549eaf026d
│ │ │ ├── ba22915b09d8b5d2b0e22218f116ee6695b6bfe1
│ │ │ ├── ba26e959e316810f88b356c0489bea1714f1b5c0
│ │ │ ├── ba756389fd658c7cd61c959df7fab74744683ef4
│ │ │ ├── bb46728b3b5606137411440273b69e40aaa07a4b
│ │ │ ├── bb5a7a3b14cf68ea2273e8847af03d3cd22f0763
│ │ │ ├── bb6089b2b32d1600c52aa70f603aad1c20925a73
│ │ │ ├── bbd17e83c6e23c2c6dfc7b87920a8d030bc8911e
│ │ │ ├── bbd514db162c3276d884ede1725b5f658a315ab3
│ │ │ ├── bc18e7d53762c375203629a8e195fd64520f0726
│ │ │ ├── bcb0c5869a5307c814b7b5488c2d237c49e5aad2
│ │ │ ├── bcc224a549f3e5ae237328897ac01dda6cb9d4b8
│ │ │ ├── bcf7efc013c3900a5558d1f98f65a8881b0a6205
│ │ │ ├── bd38b4e43527b113ca30cfbb3d978af0f5d8ab1f
│ │ │ ├── bd4422d976d5dd79060712ffb5b9ea30c56abf75
│ │ │ ├── bd714bbc2d04d957a0645235181d949171367522
│ │ │ ├── bd79aa97c2d843cfb9e07d6873a64ff4d83a802c
│ │ │ ├── bd9ace7f52d06d9d0e3be7e478df3c18ee7b8889
│ │ │ ├── bdbbe5a24c96a20f7bccbd20fa5ed39876b9ed1a
│ │ │ ├── bdd0360e742f95c476942a4ceeab0fdc30325714
│ │ │ ├── bdf2aab285c70c1ab13b4b250207c94281ffd41a
│ │ │ ├── bdf784a34d659d59f19dd3a175b9e11df4ca7d7d
│ │ │ ├── be5aabc1c515f33f049a36df00bf856a85056450
│ │ │ ├── be941d669bf3d13a837ad30fe735a68696ef85a3
│ │ │ ├── be9e0279e0e6bafa62281dbe46353ec2525f4e90
│ │ │ ├── beb252e7d73ff3bfed7ff2ffa3f0115b65cee7ee
│ │ │ ├── bec13c87de3ff63c4516cec2feecdd67bccbe1be
│ │ │ ├── bee53a895da9e20081665bb6caf6e8eb4ff95542
│ │ │ ├── bf0bae741247ba35538898aec271bd1bf2d54817
│ │ │ ├── bf10d0c34b7e0db0736ee48075b06c090fb30312
│ │ │ ├── bf12fb128f0a99e1fbedee76148628140a2b9cb3
│ │ │ ├── bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f
│ │ │ ├── bf3c578f12a8abcd46b51e3c87cf1b5a4d5a01cc
│ │ │ ├── bf4ff4503a36002031cb74ed74df2eb0952d50b7
│ │ │ ├── bfe45d7b586336f816082aa1431e3fda73056f7f
│ │ │ ├── c0024c17303a2e684dc92172547ea5b77d2468c2
│ │ │ ├── c019790975569602bc0f6501f34f7dc20f986922
│ │ │ ├── c06ca44d9974438e9a35fa0f34ade4494f67e877
│ │ │ ├── c06f6f9031859261196bc02c075a1a8e71820a63
│ │ │ ├── c07733a701c61577a976536e93f09c3519808918
│ │ │ ├── c0d63dddfbc3523608304cc80ef04e521acb685e
│ │ │ ├── c0e5c686b64dd2d2c8e0b4bd3b73b6447991e58e
│ │ │ ├── c187da44fff2ff08f2efe0801814fca9837c5acc
│ │ │ ├── c1de1e9e74b7a282d9bee6ca8b0696deee365b11
│ │ │ ├── c1e268861ff28ce965af34ed75858b321641c783
│ │ │ ├── c1e5d7136e00a944288b8bdbe4fe772a91dcef5a
│ │ │ ├── c20e0e3e91f01a0eb4b73c6e50a19eecb93c3a41
│ │ │ ├── c276a738d5f6a1ffd6c6fe9e612483b4d920d1ac
│ │ │ ├── c2bd3cc00b0e145cb5713491d9f1f718cfacd1aa
│ │ │ ├── c2d5ea1cc8a7d90536f754683f9d164dbf45e2c9
│ │ │ ├── c353616f4c26eaa0ffd04eff9d8a3704fdae2861
│ │ │ ├── c378736d00935c82e0269fd919dc2a035ea96ff9
│ │ │ ├── c37cdf7e2074a76c17bf785be3ce4e1f6114cef2
│ │ │ ├── c39ac0a6b941c8feb4169142bd7277b4750ab4c0
│ │ │ ├── c4043153c778aa0f924e823b8453da90b425e5b3
│ │ │ ├── c44886dd2cb47e85301bc39578031c418fe56a68
│ │ │ ├── c5060e6f41e0e54165b122e53d780f63c41dffce
│ │ │ ├── c53c0ae58bcc536bce0a9308dd1ae2c26fc63b77
│ │ │ ├── c5408eb6de50fdfcd38af654ea6cf348c6333659
│ │ │ ├── c541c370d1a091fc14ee0f6438f3a27c5c034cd8
│ │ │ ├── c565b3c9bee894e67be7dbe3b03bd66473f1a710
│ │ │ ├── c5b2ea981f65d511cf1e211f2fe3d3071ed4761c
│ │ │ ├── c5c9b39bc6339324f375e4459a6c04a3eba764f0
│ │ │ ├── c5e4f269a2ac9fe9ec53ee89d7f3911ddddaebe1
│ │ │ ├── c5e558ea5ee802bdf709cb74e2943ff1a3b417b4
│ │ │ ├── c5ea9019e6f48e1bb40ceda0f7a3c706550644ca
│ │ │ ├── c6715de98dfecdfa7318d355f24e1265bf0aa3b7
│ │ │ ├── c6da5e2edef188ae7adba024625dc121b6c4fb41
│ │ │ ├── c6f9cdbe547adce2cd6e8a7025ef785cc8634220
│ │ │ ├── c6fe4d05ced76c51832a5049d4169cdcb538b03f
│ │ │ ├── c7106dce6a3618a3f2fe6cc862cfaee64ed0aa28
│ │ │ ├── c76713b887112a7d221e948194c6662eb69cb8d4
│ │ │ ├── c77e136677ebd490426345a4232e4562c16d99f4
│ │ │ ├── c7a27f4ae92705347bc129b5a9635e61be1fe1ba
│ │ │ ├── c803bc189438c0f82f0a4db74b89657f5c52ebb7
│ │ │ ├── c82442e401b1f2b11ab7fd797394ba2b813f9aba
│ │ │ ├── c84530b820e51976f2f5ff7d8d687b11896f0446
│ │ │ ├── c919f29419d613e8859a1451f8b69e624a8462f5
│ │ │ ├── ca7fcc4731640a7e9ba658942ca744d784c87c57
│ │ │ ├── cb14d77c9ecbcad149076157ae577385e74eed03
│ │ │ ├── cb2dc868c5ecd883c8cfc07dfe7f95b1aa276acd
│ │ │ ├── cb30fcc7156e4fdc4bfd8768a8c2a74d44080b82
│ │ │ ├── cbbee5de32c1b0931986d49e7156e5e3766cfa17
│ │ │ ├── ccdf7048014c4b68ec8ea6a8820d17c9a0a27723
│ │ │ ├── cd53c6d48d02f7cf28884a3feb301df5bcbc9e68
│ │ │ ├── cd6465383ef8b48427c0dd2738c0d859e6bd44a2
│ │ │ ├── cd75fc555cbe9a42b484eac3bd8081b0d4647b97
│ │ │ ├── ce08ccfa9fdfd9a589d102f0788e7f4f34b301d3
│ │ │ ├── ce2e2dd9bd9963d349ca84dd3b0353d801073583
│ │ │ ├── ce4f37343387ffe4851470fbcef15c79849a9d8a
│ │ │ ├── ce717247cb5c79b0ac456dec29a89f163505f3d5
│ │ │ ├── cebb2eec7857f3cb3778becf0d4d0dd6b92432d4
│ │ │ ├── cecd5ed5a70c8bffc13d3d11279c009c77b66172
│ │ │ ├── cedb351dc81ad7f9842f7d08d038580b07ef9b43
│ │ │ ├── cf5574590c2e70e63fa63beb363067ba002198ae
│ │ │ ├── cf5ac5672fdf5ff36e104e761bba3825f5d6505f
│ │ │ ├── cf8c22517d80b044694fd7931e3cb7ad282bd630
│ │ │ ├── cfa9d88592cb6a7e525979e17397d8fae1aa99b4
│ │ │ ├── cfdb693eba5960b2cb32d981c90c73e59f0bb1a9
│ │ │ ├── cfdcd68c86218ef5f4ab884b00a5dfdf764dd655
│ │ │ ├── d015cb1d4b3873997e2a0e242fe6a176ce7bf337
│ │ │ ├── d01bad5f29314cd71bd7fc99608fe0a6f80bad1a
│ │ │ ├── d048a0332f1e2533274664743c1b3b2b90c38364
│ │ │ ├── d05c988eaf9f825cd99835c8fbcac943051879e1
│ │ │ ├── d07ca08a629344da347f58d8197232fac6215fa1
│ │ │ ├── d086154ea1ed7e7e56fcbee339590ad84759e9d9
│ │ │ ├── d0994a8bbd253367cc7767a63372053fee8af220
│ │ │ ├── d0bb35a5696c0b905aa9468b7d4cf17882ea238a
│ │ │ ├── d0e22d0bc65a9455ef968762cdb5e97280b87fd3
│ │ │ ├── d0edbfae5a6466296d4ff94632b6e7c81ae236de
│ │ │ ├── d0fe8068e382dfe9198ba3cf1cbb791afe4a375e
│ │ │ ├── d13ae9fbb3c69dc919cf2942926b08e15a848e4c
│ │ │ ├── d162ab8709bbd7ba953495646c850823748ef97c
│ │ │ ├── d1854cae891ec7b29161ccaf79a24b00c274bdaa
│ │ │ ├── d1b98f1abd5dd51520ec179d7d369b1fa1262a4a
│ │ │ ├── d1c83d8743f2907ac244e660f0ac2b53406e145a
│ │ │ ├── d279202ad4c3553596c8ed7e77b57c9ac050429c
│ │ │ ├── d27db4dc4fc14d555487695acef375bd9657262b
│ │ │ ├── d2a1e363316e4c82917715d6db7ff6ffbf503df3
│ │ │ ├── d2b28da60ade64564c50208a4c82cca42d83afbe
│ │ │ ├── d2d0ba7f288f86642ee274e7854060cc8da8eb75
│ │ │ ├── d2f76e6e2d1042de0d226cc8e9a7e070991fc3d5
│ │ │ ├── d333318e5e6f01d55b86909499ca62b4104d5758
│ │ │ ├── d3588a2a72e66256cf690ab82fadf1f2fc50733c
│ │ │ ├── d378b675145ecff3ae67f440a1cc7416fcea5e10
│ │ │ ├── d39485627d2bbe955f898eefb701285d5faab858
│ │ │ ├── d3b2c83ad151ea9b98f64b2ef23722a54c84b25c
│ │ │ ├── d3b749f3d92ceb97ba84c4a5bc1a914e7b354799
│ │ │ ├── d3bb329ef5f92ac1bac4eee2a3c406957d9ad4d2
│ │ │ ├── d3e2e607632ae479d072999375ad9df11e3db913
│ │ │ ├── d3f1131183a16798fb9c862fa8e0755e7a234956
│ │ │ ├── d3f152b8ca43515f8a4b5e0963e1c4567d5a6d2b
│ │ │ ├── d40383bcbc731c1b3290057d8730a23d06bfb133
│ │ │ ├── d42fc4ae0da326038c9589ae2a63e4a2618a61c0
│ │ │ ├── d455d53f069ad8bec38ea51be853f2344904b4b0
│ │ │ ├── d45bcd1ed857d13b8d26d81b5cc0e936c94a5d5e
│ │ │ ├── d45c3e58ea20c7d118dad4c1dc03811cce8dc39b
│ │ │ ├── d46a3875a8055176db72fcad5c0550951f53da7e
│ │ │ ├── d46adb2286c2d28d4f4c070d9738eaefb8799806
│ │ │ ├── d474b28d4d3868d3b409505107ef3c2937290ce0
│ │ │ ├── d4eaa99c5b7677288de80d05928c5e26c5031997
│ │ │ ├── d510583e52f477554b1befaa7190bebf65cd4188
│ │ │ ├── d52b935ef614539e8f284c803c0b93223d75b2ae
│ │ │ ├── d578577d5047f076c033fab505817fe342ffbcea
│ │ │ ├── d57f25b714eee33942eb6853c4ae5776246220e0
│ │ │ ├── d5ffa1f27468ecee1146eacf88e657f9484fda7e
│ │ │ ├── d630fb00ef0f0a2995c62e959b13c33b664e3ce5
│ │ │ ├── d66cd07bc08836d626b36f4c12e3d11aebec3af2
│ │ │ ├── d67d4422dccb731ed3fcb61ffdb76a979af68dde
│ │ │ ├── d6e0c95ba1b8b4644f3ea9566e649d029900f865
│ │ │ ├── d6fbe61b6a991eccd409ca6b922b9d1a8bf8be86
│ │ │ ├── d703a22e65c8a1280e4a0ecb4ffd407b79839508
│ │ │ ├── d709edb9c9c90cac9f7474610bcee857acf3d86a
│ │ │ ├── d750010a709171aa3f400cbe019efe556b93b506
│ │ │ ├── d7691f47b775367dd77bae46660ad2ed29172dcb
│ │ │ ├── d76d350b759b5c82fb167226671640bbcd176a5e
│ │ │ ├── d77af0a79824468f60efe2ef77d6bcbbbf1c252e
│ │ │ ├── d7e8eaac6293255aaf7bd7a39504e2eb28dfffe9
│ │ │ ├── d84e64915ebb23e3fa4dd95f8156a09d45d74f98
│ │ │ ├── d8602b9e5945c8024966dd4dc77b69c760e017b1
│ │ │ ├── d865f410be1a725b020ec33161efba3365b4a251
│ │ │ ├── d8a181448dafa2720886c3c6d9eed9724914ce27
│ │ │ ├── d8e54f5def4e966279baa1c30418fd50dece7f8f
│ │ │ ├── d951243133f8a9476a989f05412e7ddbac9b0b44
│ │ │ ├── d95ef5025db631422eb926e03fe4620587716f01
│ │ │ ├── d96f3106b5babe556e058711988b90bd2e5eba30
│ │ │ ├── d98186e56ea7cba8592c121992a339fe60cd575c
│ │ │ ├── d9e83874d260f2f10d48d98c0b773b836096d426
│ │ │ ├── da12304c7f1ca9c3f673e93f7accd50bd9e40108
│ │ │ ├── da6803102d9d283e29c2acc598b138f6bec65dd1
│ │ │ ├── da70b7529e28ae088787f84c11ae6cef124f432d
│ │ │ ├── dad7d68ab9099738c002065a123ec91cf4388a08
│ │ │ ├── dae30bd9f7e7c2bee801aef30cad430a51eb6f29
│ │ │ ├── dae7c37cf239e28746d00d2811f6c52f7c2c9e62
│ │ │ ├── db4731e954b3df8f755a563babb04f40a03f70c3
│ │ │ ├── db6a4543b6dd41f7cdead99fb446bc349056a396
│ │ │ ├── db73cae3b93bca8ca653a1d02fc0476445c663e2
│ │ │ ├── db88644b3d004078b0d3ac8f4f48c3e0039ec709
│ │ │ ├── db960539ae065eb88b878f229dbe7a9b354b6a82
│ │ │ ├── db9791e8c4fe304c73fb76995e819addcf3c7f22
│ │ │ ├── dba8c110547a47411eac58f1c3fdd6a45b594648
│ │ │ ├── dc3fc7dc1c5a791ea00a9b83594eaa48e29585fd
│ │ │ ├── dc5aeee0ba5dcc88d3143338b71943586a3968a1
│ │ │ ├── dc70d7c211f5ba1f6c19c2e530418b149202e67c
│ │ │ ├── dcbbc57c1ee45d207d8847cb1808680cc3ac74ae
│ │ │ ├── dcbf7831e04a6d7b9b08c0583a546dff1faf4aee
│ │ │ ├── dd29ecf524b030a65261e3059c48ab9e1ecb2585
│ │ │ ├── dd4256fae27a87dbd63a8808414478bd5cef60ae
│ │ │ ├── dd681c9159332af385c6ecee62ff001ea89bb70a
│ │ │ ├── dd802af437aaa74440570a553e1d688912b48f92
│ │ │ ├── dd81f2dc51952b5f8e6b587814779f03a9fe407f
│ │ │ ├── dd93453fb2970d59e21db38cd16ab2f55157661a
│ │ │ ├── ddbe14919763ec4c9fdff15edad2e93cbd8469b5
│ │ │ ├── ddc40aec8ffe87fcb4661a4ab675f4944e3d94ce
│ │ │ ├── de00d3d6de62c9398444754f82883bde134e4b78
│ │ │ ├── de221b3a78bf0faff640f0df865f1a39b3320be9
│ │ │ ├── de2c5acf5b5c0f48d8cba6d1145a0d967a493562
│ │ │ ├── de2e806389a2f1cb304d0a9a92c32b9948e76b18
│ │ │ ├── de3fadf083499ea69028ac9917ffd2ca34ebf84b
│ │ │ ├── de89eb3a895da6aae53d1309859efca3ffdc6f00
│ │ │ ├── deae2e96a7fc6bd06c873a16c569b6de654117f9
│ │ │ ├── def03a29bf06dda7befac55709c21a3c23ee102d
│ │ │ ├── df1a004346920860ac56353876a1f18e6078432c
│ │ │ ├── df462de2973204edcc9e3dfd60dd911f8531e36f
│ │ │ ├── e00904e7d9577c80e830a20b7a46b5063dcdd54e
│ │ │ ├── e014618c12037fb95937b01fef7c21194850947d
│ │ │ ├── e01c0443f6e920bcad542add601e6ba607c80378
│ │ │ ├── e048958cd1942a7362d3f07b89bcc3f031691a0b
│ │ │ ├── e09112a79b064e4bd20ed2e9c862b7ccbed03171
│ │ │ ├── e0e8fe48e68ce2fffe1d5272f79bde98165fc889
│ │ │ ├── e1809b4e6f8c10a221bc25ae723e22f49472917c
│ │ │ ├── e1cb7eb758be155ccb2dcbced2195c9711215df2
│ │ │ ├── e24070621687375583ffc91d7896ee589b70d648
│ │ │ ├── e2f855110c47e10f9be887ca8e45c9362966fe39
│ │ │ ├── e38ca5932f67313a7b5e65f551bd011b9f8b9326
│ │ │ ├── e38d4c6a4477a774592e4148bdf7f963e59c814b
│ │ │ ├── e3c67a7cb8c03ec4fccba1c083b662c91c73c436
│ │ │ ├── e3d1222ed9ecc833408e958dc32062ed3ac76633
│ │ │ ├── e496748790e162babac97266494bb87b188386d3
│ │ │ ├── e4c3b999cc459e58b9af1d671da867e411085dc7
│ │ │ ├── e503ebc79eea106e20befb531bb0580458ea511b
│ │ │ ├── e5383c85fcda28429483284bee2b99be6b3c7839
│ │ │ ├── e5c599f26029948f37e493e2138187b46d5a2296
│ │ │ ├── e5c65af89c0cb104b34e4b95146680dadf44854f
│ │ │ ├── e5da5e7811a24e9f8c8b42db2b1938ce70cf1928
│ │ │ ├── e5fa5609645656eb9846f3783680fd4353104dfa
│ │ │ ├── e60d746184d67a7c6c86a8f4ac531f1cbe5f851f
│ │ │ ├── e61f1b17038dcc7d428cd8d91e46a98dd29b4a66
│ │ │ ├── e636f8753bc5b894526b61d28cbabebc87531419
│ │ │ ├── e647ed3f69e91701e441e9044063d85bcd21b18e
│ │ │ ├── e688edcc6a61d071a50b1cf75862c5a7bb95d021
│ │ │ ├── e6cfe0f785bd3ee90612a04bf2b8de247160a4df
│ │ │ ├── e6de28717b39f5e380b95b0cc8eebf42c590d42f
│ │ │ ├── e6deee34dab841dfa08f25d851689a4dd47e38a8
│ │ │ ├── e70130edcabcdcdfe13cc488316b075709c14259
│ │ │ ├── e70ff1dffef0ab7169a297cbcad58fd4145b6c39
│ │ │ ├── e72a964a82eca97bdb3ca93ca476c11553764af6
│ │ │ ├── e76dac95550b32ca69ab73b10656947943c797e9
│ │ │ ├── e7922fac9bfc346b419839a4c7635cd15909dcbd
│ │ │ ├── e7a2e3be4db44ce21dd6c459dd0791433c35a867
│ │ │ ├── e7aee0f85bb185ec092ea440b3d5eb11ce3ff294
│ │ │ ├── e7fa1d92a8c7d6b8cfb9a81cb18d42d190fd5652
│ │ │ ├── e836a1de4dbd94e3741b390fe6446f5105612a5c
│ │ │ ├── e94509e8057d3d6de55cf800749b6007b1b64f53
│ │ │ ├── e948388a7715e34c87d9c1d4dc808f023305cf4b
│ │ │ ├── e9c77331059ac23965deb2586fa84ed4e3c2b71c
│ │ │ ├── ea1fc1e34a2f094638d240229d62f714d0c4915d
│ │ │ ├── ea7b2adbb99935340f3ee814c1a29982f813ee35
│ │ │ ├── eaa41dc3a57b84d20b7c6c96ba6bd4fbda5b9c3c
│ │ │ ├── eadc2915945cd8c46e340f1c22ce9bf6481420d9
│ │ │ ├── eaf8883b835448416f845fcb8553d641daa617d3
│ │ │ ├── eb274da744f47a61ff64ca65acf4d92c9eca35c3
│ │ │ ├── eb381bbd1bd7fe502fcbc6c4301b3aa7c1d6b28a
│ │ │ ├── eb57bdbf2651950ebc41014981cca3f5db128cb6
│ │ │ ├── ebba271875275d3869ac477d5cdb1b5edf5dfcfa
│ │ │ ├── ebcd3dd4e06fcdc3f5d30a70a439ac28b8ac7ee4
│ │ │ ├── ebe6c656f2d2e82f3507fb7430e7c9362f199080
│ │ │ ├── ebeea39b334b856e8b49c513f36f91748d1cddb2
│ │ │ ├── ec0b38e775dc428b4d0dacf6106a3b2ee11e4e00
│ │ │ ├── ec8a604f398c083f831b0df331d43dd29c33a250
│ │ │ ├── ecb4376d0db030c449f88247cf0a2554dff70d5f
│ │ │ ├── ed59797dfed3f82661fdfd3338a7abf4a37380d0
│ │ │ ├── ed737e757460c021ec8f7c02c720acf69a287d41
│ │ │ ├── ed93036a1131734f3339ff2fc4e0a291e99a58dc
│ │ │ ├── eda5110beb8012b81702894922473f44af749756
│ │ │ ├── edb477c0c4f3bd1174b291c6149ceed9684de93f
│ │ │ ├── edd035e3794d529d86dbeacd7c91a051598bef83
│ │ │ ├── ee11bb4111d888a32ef608e7b464f826e78f1d47
│ │ │ ├── ee8249eeaf49c382e97ceaf8bdc2913c662d438d
│ │ │ ├── eea663fc6a4315767e83a1813b813cbf8687e454
│ │ │ ├── ef51f697f225e22606890a41e5b94bc166a13177
│ │ │ ├── efc458a3fe5db89be14f7d3a09136f91c9e5ade8
│ │ │ ├── efd1ddc1c52a772d576820745fb7aa2bd10437c8
│ │ │ ├── f02762a7fcdb1b0c31a5fa4bacfed8a1c4886dd3
│ │ │ ├── f076b13596e9ba47ef358e904098c7792291470d
│ │ │ ├── f080446304324098b74b9addc0a16960d33e1b84
│ │ │ ├── f0e8e904cdb47da95aa8f2431aee8b950a3b5fad
│ │ │ ├── f107031029ba62edf05f86896e373c2db8f137a6
│ │ │ ├── f13574ddb80c70f5f1f8f66aaf6428067623862f
│ │ │ ├── f168756ea1e9da1b39c942cf0400a7258a5f3242
│ │ │ ├── f19726796f982a665b0199cef6d6e55b6004e48c
│ │ │ ├── f1aafe65790f6aa55b2637fae7dbab75ae9ee303
│ │ │ ├── f1b48bfd63d4ebba9a54b4150609680a49d7f948
│ │ │ ├── f1c9cae05b9d1368c75a417309c8b932062321f1
│ │ │ ├── f23f01d576a1214c2642c12b28b6c2beabc994fe
│ │ │ ├── f268cadcd87ad02eff199b6ffc47d13684fb0872
│ │ │ ├── f27ca1f2650e5855fd9c767425cc6f574bffc0e6
│ │ │ ├── f2ce6e465c9453ca7e5dd5e73fbe053fa72b6fbc
│ │ │ ├── f2da766758cc66b117d77e400a84ca8c37692a93
│ │ │ ├── f2e9221c838871a9d67e12a4ac6b418ae0094f32
│ │ │ ├── f2fcc1a7f09e91b5470d46243d93e739b835370f
│ │ │ ├── f30f945b723735abf8bc01370eccb1d2d1c04fac
│ │ │ ├── f3459f2ef08c231355365cd60fef0d5e42f80148
│ │ │ ├── f355df3e93c60fc8761f2664021666a0b6b5bba9
│ │ │ ├── f35a22719542beedfb5151c1ffd5542cf4259c3c
│ │ │ ├── f36471aeafac5332ba76531d3c063dc57dde724d
│ │ │ ├── f38562ef340bd9005a06815486a3b24512fa17f1
│ │ │ ├── f3d15cb03c5ab7fa26d64d119e8b5c47dfaafdac
│ │ │ ├── f4133147ec4af04930f80794cfde883aa84f82eb
│ │ │ ├── f4a2b8a90b15fe2862831a00b09f61305e1a9aba
│ │ │ ├── f4dddb7fafd2bfdee68f60e48b3d3ad08225638b
│ │ │ ├── f5a6140f0733dcce47cf834d185782228e5f8c4e
│ │ │ ├── f5b7e6d36dc0113f61b36c700817d42b96f7b037
│ │ │ ├── f6721fb49d5ef3bb41bff904fb9fd4078d45459b
│ │ │ ├── f678db19c304d5f9b7df02f3319c7c9c452891dd
│ │ │ ├── f69b6bf8a4fb50bcfd7a929a91c576c7f142ee0c
│ │ │ ├── f69f9e6a842385a10a63d3902452ea399f665408
│ │ │ ├── f6b82f51c6c8dbc5b9725f8f99021a4115686d3b
│ │ │ ├── f6d8d8aca0c537f42ff1170262de735ac8d368b0
│ │ │ ├── f7235109c8e5f89ec07e5d745a8031e9eba4e4fe
│ │ │ ├── f76050957f138cd98c8bcb70fe9d645ac1eb384f
│ │ │ ├── f76d62d100a1e8f5f547a917376011f5eab08e21
│ │ │ ├── f809a70c8f8c73af451d3274aae21a56139fe131
│ │ │ ├── f80cf7d82b10b997b7f3645e871215f22f1e3c81
│ │ │ ├── f834bde21859165b56c0aaa6547991a1ce7d94bd
│ │ │ ├── f8da3bd2576f2727ea86f4d9adac3b9414b46c2e
│ │ │ ├── f8e3fa6afe70097811e341ab99c1a17446ffd61f
│ │ │ ├── f8fcd7b7a9b527bc1a7cc93a4078b3d82f36306a
│ │ │ ├── f8ffc7665d502533f12a456dc66b5ccc1ff607dd
│ │ │ ├── f912399b776ac88e1dad4a18efd31399fea80f10
│ │ │ ├── f93ed8c42b62f7e9b82fc997a19624f257c70857
│ │ │ ├── f95031531de9e202b32291a05af9876cc3ce9a8c
│ │ │ ├── f9788c950d2dd9f6b14d2e7bb78c8b615edc7c88
│ │ │ ├── f9967deae6d58d55273d6d42eb21c6cc92324c09
│ │ │ ├── f99c8639d7a3fa61d37ea7836607e1cbdd1e357e
│ │ │ ├── f9b5bbd0f79ea98711967a099486df367a10e420
│ │ │ ├── f9b89c54ad87e8acb2a634e30ac15e8ca5f2a247
│ │ │ ├── fa5388c3505e19b2594740ca14d489eef7f88eee
│ │ │ ├── fa679c8413b7c5e08e98f8f2aab0828393da2b08
│ │ │ ├── fb96549631c835eb239cd614cc6b5cb7d295121a
│ │ │ ├── fb9d086f7e09d899a7aa85c4aacb446d6be6b8a1
│ │ │ ├── fbaa9ab770dbc683a854ec13c9812d3a41cef2e3
│ │ │ ├── fbba5cb04e6dcadcbae46d1389ee6b20bd7688f3
│ │ │ ├── fbc7fc48c176d0c37f3800b9a84e087df5ed0c5a
│ │ │ ├── fc63a99d912d2e8bc6fa5b89697b68db86851e8d
│ │ │ ├── fcd16b8c302b8a976f7b2403034ae668a02979e8
│ │ │ ├── fcded1aeea2cc7fb273a5a257a111aad52a1a89d
│ │ │ ├── fd0f2c0ac3a94e2445f4960acffbab66276fe058
│ │ │ ├── fd44e98d796d78eefda958c7482b352284bac0a3
│ │ │ ├── fd99bb37c407c410979c32ac3a8ad98106d56d41
│ │ │ ├── fdc69a6b15aae0c7387ac06665609d07abf009ad
│ │ │ ├── fe240db3c2cf44806965964b6c0bee9a9aaf0602
│ │ │ ├── fec5377a68cccf295ce1ed0054a10dcd4bbb8c3b
│ │ │ ├── fec75060fbc2a7129d2935474d36af9cf585aebc
│ │ │ ├── fecff0273b2b0fd75e99911c333d72362fbd8d49
│ │ │ ├── feda82ba42feb1da5ea4e8631a61aa407ead0230
│ │ │ ├── fee5fce787e411a6197c3a78148e4cd2d9491892
│ │ │ ├── fefd42170819637d98298c3d8525f2709966de49
│ │ │ ├── ff27acc5779ab7aa2378ea435d87109a020e80ce
│ │ │ └── ff53d9a038d690f0f8a5e96246e1a26b0523811a
│ │ ├── fuzz_query_parser/
│ │ │ ├── .gitignore
│ │ │ └── seed.txt
│ │ ├── fuzz_query_transpiler/
│ │ │ ├── seed_and
│ │ │ ├── seed_double-not
│ │ │ ├── seed_empty
│ │ │ ├── seed_empty-phrase
│ │ │ ├── seed_leading-wild
│ │ │ ├── seed_many-or
│ │ │ ├── seed_nested
│ │ │ ├── seed_nested-not
│ │ │ ├── seed_not
│ │ │ ├── seed_null-byte
│ │ │ ├── seed_or
│ │ │ ├── seed_paren-stuffing
│ │ │ ├── seed_phrase
│ │ │ ├── seed_simple
│ │ │ ├── seed_trailing-wild
│ │ │ └── seed_unicode
│ │ ├── fuzz_redact_secrets/
│ │ │ ├── 01a61d6fdde312f0f415d81122189d007a6faa8b
│ │ │ ├── 06c990b57d85cc50a8b2d9d9df6c8d7acc72ca1e
│ │ │ ├── 0c8c597533cce753a8803ce06536a021aed22037
│ │ │ ├── 0e005991cb246cfcc00a4dd297d70d5ae810b434
│ │ │ ├── 103625057b22373ede029764ae05fb1efcf4280a
│ │ │ ├── 12f74c7be8674bbfec9017f6c6f029922f7e617d
│ │ │ ├── 150c69cc156c2966f4b0ca1e3af393323f3e59cf
│ │ │ ├── 1727d740840b4884f5f0b6d2a30ed098a35c8a6b
│ │ │ ├── 179145457cbb75b12cb2748eabb64f4b35df7666
│ │ │ ├── 1dad6fff5174367f41fa285a76a0c046c4d328c0
│ │ │ ├── 2012658e8bfcc3a62bbad3a116f0494d24e24fe3
│ │ │ ├── 23f2a5326e0922c5a3f4eb67fafb90a947e73b14
│ │ │ ├── 249ccb76d6dfee06f135fb490ab21097550cebda
│ │ │ ├── 25311cd9fcc636f0b5b6e3e311ff03b66af98ae4
│ │ │ ├── 26fc843d64e834b383f9a92e1ae669f7be70ad1f
│ │ │ ├── 2a19113b6c07868ad3bcaaf43082ba6a58c09567
│ │ │ ├── 2a24aababd3ac0c10adabf52d6eafd48fbeebc28
│ │ │ ├── 2a4f298d10968a94976d529d489b43f97b458c2d
│ │ │ ├── 2ab4f5e728a94b3941644707d832f2c16c9bee39
│ │ │ ├── 2e2c286ea2844e2dc29f728fdadf91f597aaf82b
│ │ │ ├── 3704e5175df12c450fae225abbbe913b88020c1b
│ │ │ ├── 396183bff0c95c5edc26fd2c0450308a372ba484
│ │ │ ├── 3bd96c82da965fcd49c43d682ed90e3802e6e070
│ │ │ ├── 3c14ee3c76a9e7a11b52e9f1a32367b555cec7ad
│ │ │ ├── 3c160aff4764257e51daec63df1d676462950af3
│ │ │ ├── 3f8861267c0268caa030c90a88ff0a5913a707df
│ │ │ ├── 40f525c1ba8b83f96d735faf0578916fa6cd27a1
│ │ │ ├── 41e68f48767c52a64cea63e274182fec854b6abe
│ │ │ ├── 4961ff8715bb251301154fef0245a189b34ca1e3
│ │ │ ├── 51b5d590064b7257ea9ab83994ead33623dd8680
│ │ │ ├── 51d3839d7bea5d3bea6e54bf7e8bf887bb3d0a7d
│ │ │ ├── 52ad7e655a9e4d7f3d0280b9da3afae1bc8cb23a
│ │ │ ├── 54573344c7758f8e156f532833cd77492d5b3ccb
│ │ │ ├── 560d012ba8179e0e3cdb226f13c3c339145972a9
│ │ │ ├── 57f7a094831e6da293752008e6ae5502a6f3e243
│ │ │ ├── 5811941aefb60b66f3055f3ca8d9e9c1f4bf827a
│ │ │ ├── 5bea166f7301040caab839dcf833dbe960bc354c
│ │ │ ├── 5e3b49b9338939af80f435d0e170bd12d7369dbc
│ │ │ ├── 5e60ba7b548f6c1a4d48292757d8ab286a9b4528
│ │ │ ├── 61d4f0fa2fa049991a7f077aa78d8dcc436a4fa0
│ │ │ ├── 628a74c5d0cee2f821b101a0972385f4a770c815
│ │ │ ├── 6865225ec52f1b3c7309f242f800e42aa1b16980
│ │ │ ├── 6ab3bebd75abab28cb9819e69fe9cde562b389b8
│ │ │ ├── 705c2a96e17a40236c5ef1ff7fdca6c4324d6bbd
│ │ │ ├── 70fff4576f54a85ad5c5e3c5adb9ea113ec121e9
│ │ │ ├── 712c32b5e0c44ab9a905e32634d4044f28da66c8
│ │ │ ├── 713a2efe0a6748043b1587cd19fcc5293d382588
│ │ │ ├── 7182598900a6bd7f96d90c38053b0c2b7022030c
│ │ │ ├── 72a951ca0291d1714fc74898bde90248ba36f23b
│ │ │ ├── 791401a93016fe9b8a23c7f5b33a4383cf6255b2
│ │ │ ├── 7a2a43683254a9c50309ceb75947229e9d763c19
│ │ │ ├── 7a2fc8d9d44c6e0c237a6703311ef7532894240b
│ │ │ ├── 7b2e440cc3d6a70c57727de2e80bfc3da0d3d2e4
│ │ │ ├── 7f5377b0f515ad417ac22a27496250854ca7233a
│ │ │ ├── 7fa0fa9f43592fc9958273eacbb0fb176fb32b96
│ │ │ ├── 81afc508f11596edf4000a0aa9e7f069aff82021
│ │ │ ├── 832f34f6c8d3624bce6993822d03c2243b8d6926
│ │ │ ├── 83347d93e5f6f633e9f068a77597e608b9dc3906
│ │ │ ├── 8385937b09862b54116b90e24e22f1bd7479da2e
│ │ │ ├── 857b0462e64611369c47b3baff6f9aa238e7a62f
│ │ │ ├── 8590042bedb01179137fdcac1b7d950757d03670
│ │ │ ├── 8b079a8515c6c283c6b7d874c3e9aa3b3c063359
│ │ │ ├── 8d5d2af9bf9bfa81c58e9f580c075f5908a6a91e
│ │ │ ├── 9098d66fccee1e0bcd4e1ceb9056a4b59806d003
│ │ │ ├── 9154f0324f3ea65813518cb55961cd0355aa714e
│ │ │ ├── 91b1746ead727fe8a8dc5b46b5e1b542e8d786d1
│ │ │ ├── 935096c8fbb5c23f2781f3f49fc440c5b5f51ce4
│ │ │ ├── 950cd5f7b7d4fa1dd1d0b0940fbd3e1c61a23f7f
│ │ │ ├── 9a987e1e00618d3799dc4a3e28ba40ae4b145266
│ │ │ ├── 9abe7015406c67b10c42a6c616dda50fc5a1cdc1
│ │ │ ├── a1f909bbb31f213bb80309ef7b4065ed42fc3119
│ │ │ ├── ac07d63e5f7946bc6a5646c0214e08a99df8650a
│ │ │ ├── ad957d03ab9abfc2dc575845da484ba44b58942e
│ │ │ ├── b2aaf4c5170b5efcaac1ccdf893e68361454f11d
│ │ │ ├── b2e82def46b30d571829e004d051145e7b9c1ed3
│ │ │ ├── be0739730051f7d5ba91d91dca984e69e8821928
│ │ │ ├── bearer-jwt
│ │ │ ├── befd879eabb2270ff265e7d9c19e309fe24e9e88
│ │ │ ├── c140349dc02d03f969c1497489b974df5a2c065d
│ │ │ ├── c4611c276b524607c5e63e47cee65d99e3779890
│ │ │ ├── cbb2b144757b4bd66180575e5d2855f7b87ea784
│ │ │ ├── ccb9356ead29fc97a4ab0c3ae2f7e2b8ec46f3fa
│ │ │ ├── cd1ba7dfdca9bb23355f1439372beaffba485f8a
│ │ │ ├── ce8a00318b23a2bf0bc43d1ab26fac0863f57de4
│ │ │ ├── cf65dab11212b63bdd9a9b1b46ad427fb58f1dbb
│ │ │ ├── d247f439588e44e891366d0d02fdc715b22528e6
│ │ │ ├── d3592f3134006b9484b5b986e279baf24ae94bec
│ │ │ ├── d3bbad1568c0359c90e8685b78ea879746b45b37
│ │ │ ├── d5ddc648c83e2055ead82b9398a68cd39786f241
│ │ │ ├── d5e02fe870f9ec66c5b4af5d9d19fec45b4b9e80
│ │ │ ├── d6befeb54164dc0ac4ca12f0ad5aa84c8071720d
│ │ │ ├── d90f0e5ed141e31e50d7831af4ad882b2000a4aa
│ │ │ ├── da77f0e7b2e26893303df6fecfd7e60c8f227f83
│ │ │ ├── db-url
│ │ │ ├── dbfa25ddf775463a133accdbb6f141c1fbdeef54
│ │ │ ├── de6c4f2ff1698d5d2f96b8493b633c990aaaf10b
│ │ │ ├── e08fbf8435f84712ab300a79a42e7837df084ab8
│ │ │ ├── e22d2fd1d8c12dc77e3c7b4f57fe8ae5ef43274f
│ │ │ ├── e36cf71d05200aa229304f4557def88b8f00ec20
│ │ │ ├── e563e29b6a0c7d3970fae2ec54092b154c9959de
│ │ │ ├── ea2e45cfe5d0e0e02435301647e3651ad3d1d42e
│ │ │ ├── ea598573966770cd5b1642d404609df6e2f75c9b
│ │ │ ├── eba5dfab45a74e4c9dee4f1566f3189ea03bcc3d
│ │ │ ├── ecc4df9a4649e1c56beb32a127d0a6691ff02b1f
│ │ │ ├── eea4ace343d74f0313216e63604ce37c9bd3d643
│ │ │ ├── escaped-bytes
│ │ │ ├── f8ffefa21504da3ffb54613ab5466e24ad6c915c
│ │ │ ├── f949864ea448c29f4d84cb99c27f7c04829406b5
│ │ │ ├── fae7e04b700e83fc3cc1f7541ba21d1d87d7060d
│ │ │ ├── fb6c9e475bb9a52f27311cd47f8c3ba0b6c79c22
│ │ │ ├── fbb57086843f0c22550c5158784645dcf8cd0b7e
│ │ │ ├── github-token
│ │ │ ├── key-in-object-key
│ │ │ ├── long-repeated
│ │ │ ├── nested-json
│ │ │ ├── openai-key
│ │ │ ├── plain
│ │ │ └── unicode
│ │ ├── fuzz_robot_envelope_roundtrip/
│ │ │ ├── seed_4d41e886
│ │ │ ├── seed_76a9cf12
│ │ │ └── seed_99914b93
│ │ ├── fuzz_time_parser/
│ │ │ ├── seed_04d6c157
│ │ │ ├── seed_07453d0a
│ │ │ ├── seed_18860964
│ │ │ ├── seed_1c6c1404
│ │ │ ├── seed_23a326d0
│ │ │ ├── seed_24920dec
│ │ │ ├── seed_289ff636
│ │ │ ├── seed_36b38a7c
│ │ │ ├── seed_628631f0
│ │ │ ├── seed_90015098
│ │ │ ├── seed_97bc592b
│ │ │ ├── seed_9cff1781
│ │ │ ├── seed_b5e9e3cc
│ │ │ ├── seed_c5e7dfaf
│ │ │ ├── seed_cce906c4
│ │ │ ├── seed_d33d790d
│ │ │ ├── seed_d41d8cd9
│ │ │ ├── seed_e1bec4c2
│ │ │ ├── seed_e9f17f6f
│ │ │ ├── seed_eac9e8dd
│ │ │ └── seed_faa48af0
│ │ └── manifest/
│ │ ├── empty.json
│ │ ├── full.json
│ │ ├── invalid_types.json
│ │ ├── minimal.json
│ │ └── unicode.json
│ └── fuzz_targets/
│ ├── chunked.rs
│ ├── config.rs
│ ├── decrypt.rs
│ ├── fuzz_cli_argv.rs
│ ├── fuzz_connectors.rs
│ ├── fuzz_html_export_renderer.rs
│ ├── fuzz_query_parser.rs
│ ├── fuzz_query_transpiler.rs
│ ├── fuzz_redact_secrets.rs
│ ├── fuzz_robot_envelope_roundtrip.rs
│ ├── fuzz_time_parser.rs
│ ├── kdf.rs
│ └── manifest.rs
├── install.ps1
├── install.sh
├── lighthouse-budget.json
├── packaging/
│ └── homebrew/
│ └── coding-agent-search.rb
├── refactor/
│ └── artifacts/
│ ├── 20260424T222109Z-codex-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── baseline_cargo_check_all_targets.log
│ │ ├── baseline_cargo_fmt_check.log
│ │ ├── baseline_loc_wc.txt
│ │ ├── cargo_clippy_all_targets.log
│ │ ├── cargo_clippy_all_targets_known_doc_indent_allowed.log
│ │ ├── cargo_test_html_export_lib.log
│ │ ├── duplication_map.json
│ │ ├── duplication_map.md
│ │ ├── isomorphism_html_export_error_derive.md
│ │ ├── loc_delta_html_export_errors.numstat
│ │ ├── skill_inventory.json
│ │ ├── slop_scan.md
│ │ ├── touched_rustfmt_check.log
│ │ └── ubs_html_export_errors.log
│ ├── 20260424T230127Z-repeated-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── pass10_final_rescan.md
│ │ ├── pass1_trait_boilerplate.md
│ │ ├── pass2_wrapper_collapse.md
│ │ ├── pass3_rule_of_3_helper.md
│ │ ├── pass4_constant_literal_consolidation.md
│ │ ├── pass5_error_mapping.md
│ │ ├── pass6_option_default_flow.md
│ │ ├── pass7_test_fixture_dry.md
│ │ ├── pass8_control_flow_tightening.md
│ │ └── pass9_alias_reexport_audit.md
│ ├── 20260425T024205Z-second-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── architecture.md
│ │ ├── baseline.md
│ │ ├── pass10_final_rescan_encrypt_error.md
│ │ ├── pass1_derive_error_boilerplate.md
│ │ ├── pass2_private_wrapper_collapse.md
│ │ ├── pass3_json_output_plumbing.md
│ │ ├── pass4_search_filters_fixture_helper.md
│ │ ├── pass5_wizard_option_fallbacks.md
│ │ ├── pass6_config_env_error_mapping.md
│ │ ├── pass7_cloudflare_env_constants.md
│ │ ├── pass8_breakdown_row_projection.md
│ │ └── pass9_remove_chart_slice_alias.md
│ ├── 20260425T154730Z-third-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── architecture.md
│ │ ├── baseline.md
│ │ ├── pass10_docs_assertion_macro.md
│ │ ├── pass1_ssh_error_derive.md
│ │ ├── pass2_sources_alias_audit.md
│ │ ├── pass3_cloudflare_fixture_helper.md
│ │ ├── pass4_docs_version_constant.md
│ │ ├── pass5_docs_date_fallback.md
│ │ ├── pass6_analytics_query_error_helper.md
│ │ ├── pass7_rollup_stats_projection.md
│ │ ├── pass8_inline_js_assertion_macro.md
│ │ └── pass9_setup_wrapper_collapse.md
│ ├── 20260425T180745Z-fourth-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── architecture.md
│ │ ├── baseline.md
│ │ ├── pass10_final_rescan.md
│ │ ├── pass1_analytics_error_derive.md
│ │ ├── pass2_metric_as_str.md
│ │ ├── pass3_drift_signal_json.md
│ │ ├── pass4_group_by_test_matrix.md
│ │ ├── pass5_status_table_constants.md
│ │ ├── pass6_token_usage_agent_fallback.md
│ │ ├── pass7_key_slot_error_helper.md
│ │ ├── pass8_encrypt_assert_helper.md
│ │ └── pass9_key_management_wrapper_collapse.md
│ ├── 20260425T184600Z-fifth-simplify/
│ │ ├── architecture.md
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass10_path_mode_rescan.md
│ │ ├── pass1_simulation_failure_error_derive.md
│ │ ├── pass2_sync_method_as_str.md
│ │ ├── pass3_master_key_backup_json.md
│ │ ├── pass4_source_filter_cycle_matrix.md
│ │ ├── pass5_master_key_note_constant.md
│ │ ├── pass6_config_input_defaults.md
│ │ ├── pass7_analytics_cli_error_helper.md
│ │ ├── pass8_bookmark_search_assertion_helper.md
│ │ └── pass9_setup_wrapper_inline.md
│ ├── 20260425T213512Z-sixth-simplify/
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass10_docs_date_format_rescan.md
│ │ ├── pass1_preview_error_derive.md
│ │ ├── pass2_preview_mime_constants.md
│ │ ├── pass3_export_hit_json_helper.md
│ │ ├── pass4_preview_site_fixture.md
│ │ ├── pass5_docs_url_fallback.md
│ │ ├── pass6_key_slot_id_helper.md
│ │ ├── pass7_share_profile_parse_labels.md
│ │ ├── pass8_export_json_assertion_helper.md
│ │ └── pass9_export_extra_json_inline.md
│ ├── 20260425T234742Z-seventh-simplify/
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass10_db_error_derive.md
│ │ ├── pass1_pages_decrypt_error_derive.md
│ │ ├── pass2_update_asset_constants.md
│ │ ├── pass3_cloudflare_project_body_helper.md
│ │ ├── pass4_cloudflare_prereq_fixture.md
│ │ ├── pass5_no_limit_budget_helper.md
│ │ ├── pass6_fastembed_unavailable_helper.md
│ │ ├── pass7_semantic_policy_as_str.md
│ │ ├── pass8_cloudflare_missing_assertion.md
│ │ └── pass9_github_resolve_site_wrapper.md
│ ├── 20260426T155536Z-eighth-simplify/
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass10_dim_as_str.md
│ │ ├── pass1_size_error_derive.md
│ │ ├── pass2_message_role_display_table.md
│ │ ├── pass3_sync_schedule_literals.md
│ │ ├── pass4_unencrypted_config_helper.md
│ │ ├── pass5_username_fallback.md
│ │ ├── pass6_embedder_unavailable_helper.md
│ │ ├── pass7_remote_spec_wrapper.md
│ │ ├── pass8_embedder_registry_fixture.md
│ │ └── pass9_group_by_as_str.md
│ ├── 20260426T163300Z-ninth-simplify/
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass1_setup_error_derive.md
│ │ ├── pass2_password_strength_tables.md
│ │ ├── pass3_source_filter_literals.md
│ │ ├── pass4_export_json_payload.md
│ │ ├── pass5_config_time_range.md
│ │ ├── pass6_reranker_error_constructor.md
│ │ ├── pass7_pages_export_temp_path_inline.md
│ │ ├── pass8_reranker_registry_fixture.md
│ │ └── pass9_password_strength_visuals.md
│ ├── 20260426T210630Z-tenth-simplify/
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass1_model_fixture_helper.md
│ │ ├── pass2_progress_snapshot_helper.md
│ │ ├── pass3_export_format_table.md
│ │ ├── pass4_pipeline_assertion_dedupe.md
│ │ ├── pass5_stale_config_env_helper.md
│ │ ├── pass6_inline_track_a_rebuild_check.md
│ │ ├── pass7_shared_db_id_helpers.md
│ │ ├── pass8_worker_config_fixture.md
│ │ └── pass9_worker_model_literals.md
│ ├── 20260427T023153Z-eleventh-simplify/
│ │ ├── baseline.md
│ │ ├── final_dashboard.md
│ │ ├── pass1_worker_fast_embed_expectation.md
│ │ ├── pass2_export_hit_base_projection.md
│ │ ├── pass3_unencrypted_blocked_literals.md
│ │ ├── pass4_embedding_model_precedence.md
│ │ ├── pass5_inline_reranker_loader.md
│ │ ├── pass6_export_hit_assertion_matrix.md
│ │ ├── pass7_worker_usize_to_i64_helper.md
│ │ ├── pass8_pages_config_password_fixture.md
│ │ └── pass9_daemon_connection_error_helper.md
│ ├── 20260427T040829Z-twelfth-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── baseline.md
│ │ ├── pass10_final_rescan_content_review_matrix.md
│ │ ├── pass1_confirmation_flow_fixture.md
│ │ ├── pass2_confirmation_strength_label_table.md
│ │ ├── pass3_secret_ack_phrase_literals.md
│ │ ├── pass4_no_limit_budget_option_flow.md
│ │ ├── pass5_key_rotation_staging_wrapper.md
│ │ ├── pass6_semantic_doc_component_id.md
│ │ ├── pass7_daemon_unexpected_response_error.md
│ │ ├── pass8_daemon_status_projection.md
│ │ └── pass9_password_action_matrix.md
│ ├── 20260427T160551Z-thirteenth-simplify/
│ │ ├── DASHBOARD.md
│ │ ├── baseline.md
│ │ ├── pass10_final_rescan_retryable_error_matrix.md
│ │ ├── pass1_semantic_truthy_env.md
│ │ ├── pass2_embedder_display_matrix.md
│ │ ├── pass3_scheduler_reason_next_steps.md
│ │ ├── pass4_semantic_conversation_fixture.md
│ │ ├── pass5_semantic_progress_u64_conversion.md
│ │ ├── pass6_effective_settings_compiled_projection.md
│ │ ├── pass7_invalid_mirror_url_error_shape.md
│ │ ├── pass8_model_verified_marker_temp_wrapper.md
│ │ └── pass9_mirror_url_rejection_matrix.md
│ └── 20260427T164600Z-fourteenth-simplify/
│ ├── DASHBOARD.md
│ ├── baseline.md
│ ├── pass10_final_rescan_dashboard.md
│ ├── pass1_readiness_predicate_matrix.md
│ ├── pass2_semantic_availability_tui_matrix.md
│ ├── pass3_tier_readiness_matrix.md
│ ├── pass4_protocol_error_display_matrix.md
│ ├── pass5_query_token_count_matrix.md
│ ├── pass6_reranker_lookup_matrix.md
│ ├── pass7_role_code_matrix.md
│ ├── pass8_hash_token_matrix.md
│ └── pass9_asset_state_projection.md
├── rust-toolchain.toml
├── scripts/
│ ├── bakeoff/
│ │ ├── cass_embedder_e2e.sh
│ │ ├── cass_rerank_e2e.sh
│ │ └── cass_validation_e2e.sh
│ ├── bench-report.sh
│ ├── check_bench_regression.py
│ ├── coverage-uncovered.sh
│ ├── coverage.sh
│ ├── daemon/
│ │ └── cass_daemon_e2e.sh
│ ├── e2e/
│ │ ├── cli_flow.sh
│ │ ├── connector_stress.sh
│ │ ├── daemon_fallback.sh
│ │ ├── doctor_v2.sh
│ │ ├── e2e_logging_acceptance_test.sh
│ │ ├── full_coverage_validation.sh
│ │ ├── multi_machine_sync.sh
│ │ ├── query_parser_e2e.sh
│ │ ├── security_paths_e2e.sh
│ │ ├── semantic_index.sh
│ │ └── sources_sync.sh
│ ├── e2e_logging_acceptance_test.sh
│ ├── generate-gap-report.sh
│ ├── historical_recovery/
│ │ ├── README.md
│ │ ├── clone_core_tables_via_dump.sh
│ │ ├── import_codex_rollouts.py
│ │ ├── inventory_sqlite_sources.py
│ │ ├── merge_historical_bundle.py
│ │ ├── recover_historical_bundle.py
│ │ ├── run_watch_once_batches.py
│ │ └── screen_bundle_delta.py
│ ├── lib/
│ │ └── e2e_log.sh
│ ├── migration_e2e_validate.sh
│ ├── test-all.sh
│ ├── test-pages-e2e.sh
│ ├── test-quick.sh
│ ├── test-report.sh
│ ├── tests/
│ │ ├── generate_evidence_bundle.sh
│ │ └── run_all.sh
│ ├── validate-e2e-jsonl.sh
│ ├── validate_ci.sh
│ ├── validate_docs.sh
│ └── validate_fixtures.sh
├── src/
│ ├── analytics/
│ │ ├── bucketing.rs
│ │ ├── derive.rs
│ │ ├── mod.rs
│ │ ├── query.rs
│ │ ├── types.rs
│ │ └── validate.rs
│ ├── bakeoff.rs
│ ├── bin/
│ │ └── cass-pages-perf-bundle.rs
│ ├── bookmarks.rs
│ ├── connectors/
│ │ ├── aider.rs
│ │ ├── amp.rs
│ │ ├── chatgpt.rs
│ │ ├── claude_code.rs
│ │ ├── clawdbot.rs
│ │ ├── cline.rs
│ │ ├── codex.rs
│ │ ├── copilot.rs
│ │ ├── copilot_cli.rs
│ │ ├── crush.rs
│ │ ├── cursor.rs
│ │ ├── factory.rs
│ │ ├── gemini.rs
│ │ ├── kimi.rs
│ │ ├── mod.rs
│ │ ├── openclaw.rs
│ │ ├── opencode.rs
│ │ ├── pi_agent.rs
│ │ ├── qwen.rs
│ │ └── vibe.rs
│ ├── crash_replay.rs
│ ├── daemon/
│ │ ├── client.rs
│ │ ├── core.rs
│ │ ├── mod.rs
│ │ ├── models.rs
│ │ ├── protocol.rs
│ │ ├── resource.rs
│ │ └── worker.rs
│ ├── doctor.rs
│ ├── encryption.rs
│ ├── evidence_bundle.rs
│ ├── explainability.rs
│ ├── export.rs
│ ├── ftui_harness.rs
│ ├── html_export/
│ │ ├── encryption.rs
│ │ ├── filename.rs
│ │ ├── mod.rs
│ │ ├── renderer.rs
│ │ ├── scripts.rs
│ │ ├── styles.rs
│ │ └── template.rs
│ ├── indexer/
│ │ ├── lexical_generation.rs
│ │ ├── memoization.rs
│ │ ├── mod.rs
│ │ ├── parallel_wal_shadow.rs
│ │ ├── redact_secrets.rs
│ │ ├── refresh_ledger.rs
│ │ ├── responsiveness.rs
│ │ └── semantic.rs
│ ├── lib.rs
│ ├── main.rs
│ ├── model/
│ │ ├── cli_error_kind.rs
│ │ ├── conversation_packet.rs
│ │ ├── mod.rs
│ │ ├── packet_audit.rs
│ │ └── types.rs
│ ├── pages/
│ │ ├── analytics.rs
│ │ ├── archive_config.rs
│ │ ├── attachments.rs
│ │ ├── bundle.rs
│ │ ├── config_input.rs
│ │ ├── confirmation.rs
│ │ ├── deploy_cloudflare.rs
│ │ ├── deploy_github.rs
│ │ ├── docs.rs
│ │ ├── encrypt.rs
│ │ ├── errors.rs
│ │ ├── export.rs
│ │ ├── fts.rs
│ │ ├── key_management.rs
│ │ ├── mod.rs
│ │ ├── password.rs
│ │ ├── patterns.rs
│ │ ├── preview.rs
│ │ ├── profiles.rs
│ │ ├── qr.rs
│ │ ├── redact.rs
│ │ ├── secret_scan.rs
│ │ ├── size.rs
│ │ ├── summary.rs
│ │ ├── verify.rs
│ │ └── wizard.rs
│ ├── pages_assets/
│ │ ├── attachments.js
│ │ ├── auth.js
│ │ ├── coi-detector.js
│ │ ├── conversation.js
│ │ ├── crypto_worker.js
│ │ ├── database.js
│ │ ├── index.html
│ │ ├── password-strength.js
│ │ ├── router.js
│ │ ├── search.js
│ │ ├── session.js
│ │ ├── settings.js
│ │ ├── share.js
│ │ ├── stats.js
│ │ ├── storage.js
│ │ ├── styles.css
│ │ ├── sw-register.js
│ │ ├── sw.js
│ │ ├── viewer.js
│ │ ├── virtual-list.js
│ │ └── virtual-list.test.html
│ ├── perf_evidence.rs
│ ├── policy_registry.rs
│ ├── query_cost_planner.rs
│ ├── raw_mirror.rs
│ ├── search/
│ │ ├── ann_index.rs
│ │ ├── asset_state.rs
│ │ ├── canonicalize.rs
│ │ ├── daemon_client.rs
│ │ ├── embedder.rs
│ │ ├── embedder_registry.rs
│ │ ├── fastembed_embedder.rs
│ │ ├── fastembed_reranker.rs
│ │ ├── hash_embedder.rs
│ │ ├── mod.rs
│ │ ├── model_download.rs
│ │ ├── model_manager.rs
│ │ ├── policy.rs
│ │ ├── query.rs
│ │ ├── readiness.rs
│ │ ├── reranker.rs
│ │ ├── reranker_registry.rs
│ │ ├── semantic_manifest.rs
│ │ ├── tantivy.rs
│ │ ├── two_tier_search.rs
│ │ └── vector_index.rs
│ ├── sources/
│ │ ├── config.rs
│ │ ├── index.rs
│ │ ├── install.rs
│ │ ├── interactive.rs
│ │ ├── mod.rs
│ │ ├── probe.rs
│ │ ├── provenance.rs
│ │ ├── setup.rs
│ │ └── sync.rs
│ ├── storage/
│ │ ├── mod.rs
│ │ └── sqlite.rs
│ ├── topology_budget.rs
│ ├── tui_asciicast.rs
│ ├── ui/
│ │ ├── analytics_charts.rs
│ │ ├── app.rs
│ │ ├── components/
│ │ │ ├── breadcrumbs.rs
│ │ │ ├── export_modal.rs
│ │ │ ├── help_strip.rs
│ │ │ ├── mod.rs
│ │ │ ├── palette.rs
│ │ │ ├── pills.rs
│ │ │ ├── theme.rs
│ │ │ ├── toast.rs
│ │ │ └── widgets.rs
│ │ ├── data.rs
│ │ ├── ftui_adapter.rs
│ │ ├── mod.rs
│ │ ├── shortcuts.rs
│ │ ├── style_system.rs
│ │ ├── theme.rs
│ │ ├── time_parser.rs
│ │ ├── trace.rs
│ │ └── tui.rs
│ └── update_check.rs
├── test-results/
│ ├── no_mock_allowlist.json
│ └── no_mock_audit.md
└── tests/
├── .beads/
│ ├── .gitignore
│ ├── config.yaml
│ └── metadata.json
├── _probe_mot85.rs
├── accessibility/
│ └── axe-core.test.js
├── agent_detection_completeness.rs
├── atomic_swap_publish_crash_window.rs
├── bakeoff_harness.rs
├── canonicalize_equivalence.proptest-regressions
├── canonicalize_equivalence.rs
├── card_defaults_wallclock_ab.rs
├── cli_diag.rs
├── cli_dispatch_coverage.rs
├── cli_doctor.rs
├── cli_index.rs
├── cli_model_lifecycle_contract.rs
├── cli_refresh_contract.rs
├── cli_robot.rs
├── cli_search_semantic_flags.rs
├── cli_stats_source_filter.rs
├── cli_status.rs
├── concurrent_search.rs
├── connector_aider.rs
├── connector_amp.rs
├── connector_chatgpt.rs
├── connector_claude.rs
├── connector_claude_code_conformance.rs
├── connector_clawdbot.rs
├── connector_clawdbot_conformance.rs
├── connector_cline.rs
├── connector_codex.rs
├── connector_copilot.rs
├── connector_copilot_cli.rs
├── connector_crush.rs
├── connector_cursor.rs
├── connector_factory.rs
├── connector_gemini.rs
├── connector_kimi.rs
├── connector_openclaw.rs
├── connector_opencode.rs
├── connector_pi_agent.rs
├── connector_qwen.rs
├── connector_vibe.rs
├── cross_workstream_integration.rs
├── crypto_vectors.rs
├── daemon_client_integration.rs
├── deploy_cloudflare.rs
├── deploy_github.rs
├── docker/
│ ├── Dockerfile.sshd
│ └── entrypoint.sh
├── docs/
│ ├── help.rs
│ ├── mod.rs
│ └── readme.rs
├── doctor_e2e_runner.rs
├── doctor_fixture_factory.rs
├── e2e/
│ ├── accessibility/
│ │ ├── aria-live.spec.ts
│ │ ├── axe-core.spec.ts
│ │ ├── keyboard-nav.spec.ts
│ │ └── visual-preferences.spec.ts
│ ├── capabilities/
│ │ └── browser-apis.spec.ts
│ ├── cloudflare/
│ │ └── cloudflare-smoke.spec.ts
│ ├── encryption/
│ │ └── password-flow.spec.ts
│ ├── export/
│ │ ├── html-export-e2e.spec.ts
│ │ └── pages-pipeline-e2e.spec.ts
│ ├── exports/
│ │ ├── setup-metadata.json
│ │ ├── test-basic.html
│ │ ├── test-encrypted.html
│ │ ├── test-large.html
│ │ ├── test-no-cdn.html
│ │ ├── test-tool-calls.html
│ │ └── test-unicode.html
│ ├── interactivity/
│ │ ├── collapsible.spec.ts
│ │ ├── copy-clipboard.spec.ts
│ │ ├── search.spec.ts
│ │ └── theme-toggle.spec.ts
│ ├── mobile/
│ │ ├── performance.spec.ts
│ │ ├── responsive-layout.spec.ts
│ │ ├── touch-navigation.spec.ts
│ │ └── virtual-keyboard.spec.ts
│ ├── offline/
│ │ ├── cdn-fallback.spec.ts
│ │ ├── network-transitions.spec.ts
│ │ └── service-worker-cache.spec.ts
│ ├── pages_preview/
│ │ ├── bundle/
│ │ │ ├── private/
│ │ │ │ ├── integrity-fingerprint.txt
│ │ │ │ └── master-key.json
│ │ │ └── site/
│ │ │ ├── .nojekyll
│ │ │ ├── README.md
│ │ │ ├── attachments.js
│ │ │ ├── auth.js
│ │ │ ├── coi-detector.js
│ │ │ ├── config.json
│ │ │ ├── conversation.js
│ │ │ ├── crypto_worker.js
│ │ │ ├── database.js
│ │ │ ├── index.html
│ │ │ ├── integrity.json
│ │ │ ├── robots.txt
│ │ │ ├── search.js
│ │ │ ├── session.js
│ │ │ ├── settings.js
│ │ │ ├── site.json
│ │ │ ├── styles.css
│ │ │ ├── sw-register.js
│ │ │ ├── sw.js
│ │ │ ├── viewer.js
│ │ │ └── virtual-list.js
│ │ ├── db/
│ │ │ ├── agent_search.db-shm
│ │ │ └── agent_search.db-wal
│ │ ├── encrypt/
│ │ │ └── config.json
│ │ └── preview-server.log
│ ├── preview/
│ │ └── opfs-service-worker.spec.ts
│ ├── print/
│ │ └── print-preview.spec.ts
│ ├── rendering/
│ │ └── basic-render.spec.ts
│ ├── reporters/
│ │ └── jsonl-reporter.ts
│ └── setup/
│ ├── global-setup.ts
│ ├── global-teardown.ts
│ └── test-utils.ts
├── e2e_cli_flows.rs
├── e2e_deploy.rs
├── e2e_error_recovery.rs
├── e2e_filters.rs
├── e2e_full_integration.rs
├── e2e_health.rs
├── e2e_index_tui.rs
├── e2e_install_easy.rs
├── e2e_jsonl_schema_test.rs
├── e2e_large_dataset.rs
├── e2e_lexical_fail_open.rs
├── e2e_multi_connector.rs
├── e2e_pages.rs
├── e2e_search_index.rs
├── e2e_semantic_backfill_robot.rs
├── e2e_semantic_search.rs
├── e2e_sources.rs
├── e2e_ssh_sources.rs
├── e2e_tui_smoke_flows.rs
├── e2e_two_tier_search.rs
├── fixture_helpers.rs
├── fixtures/
│ ├── README.md
│ ├── amp/
│ │ └── thread-001.json
│ ├── chatgpt_real/
│ │ └── conversations-real/
│ │ ├── conv-conversation-id.json
│ │ ├── conv-multipart.json
│ │ └── conv-structured-parts.json
│ ├── claude_code_real/
│ │ └── projects/
│ │ └── -test-project/
│ │ └── agent-test123.jsonl
│ ├── claude_project/
│ │ └── projectA/
│ │ └── .claude.json
│ ├── cli_contract/
│ │ ├── api_version.json
│ │ ├── capabilities.json
│ │ └── introspect.json
│ ├── cline/
│ │ └── task1/
│ │ ├── api_conversation_history.json
│ │ ├── task_metadata.json
│ │ └── ui_messages.json
│ ├── codex_real/
│ │ └── sessions/
│ │ └── 2025/
│ │ └── 11/
│ │ ├── 25/
│ │ │ └── rollout-test.jsonl
│ │ └── 26/
│ │ └── rollout-tool-call.jsonl
│ ├── connectors/
│ │ └── MANIFEST.json
│ ├── copilot/
│ │ ├── cli_prompt_output_unicode.events.jsonl
│ │ ├── cli_truncated_resume.events.jsonl
│ │ └── legacy_history_human.json
│ ├── cursor/
│ │ ├── headers_only_workspace_file_uri.json
│ │ ├── headers_only_workspace_project_dir.json
│ │ └── headers_only_workspace_vscode_remote_uri.json
│ ├── gemini/
│ │ └── hash123/
│ │ └── chats/
│ │ └── session-test.json
│ ├── golden/
│ │ ├── detection_result.json
│ │ ├── normalized_conversation.json
│ │ ├── normalized_conversation_minimal.json
│ │ ├── normalized_message.json
│ │ └── normalized_snippet.json
│ ├── html_export/
│ │ ├── edge_cases/
│ │ │ ├── all_message_types.jsonl
│ │ │ ├── empty_session.jsonl
│ │ │ ├── large_session.jsonl
│ │ │ ├── single_message.jsonl
│ │ │ └── unicode_heavy.jsonl
│ │ ├── malformed/
│ │ │ ├── invalid_json.jsonl
│ │ │ ├── missing_fields.jsonl
│ │ │ ├── truncated.jsonl
│ │ │ └── wrong_types.jsonl
│ │ ├── mod.rs
│ │ └── real_sessions/
│ │ ├── aider_bugfix.jsonl
│ │ ├── amp_data_pipeline.jsonl
│ │ ├── chatgpt_react_help.jsonl
│ │ ├── claude_code_auth_fix.jsonl
│ │ ├── cline_vscode_setup.jsonl
│ │ ├── codex_api_design.jsonl
│ │ ├── cursor_refactoring.jsonl
│ │ ├── factory_code_generation.jsonl
│ │ ├── gemini_debugging.jsonl
│ │ ├── opencode_rust_cli.jsonl
│ │ └── pi_agent_personal_assistant.jsonl
│ ├── install/
│ │ ├── coding-agent-search
│ │ ├── coding-agent-search-vtest-linux-x86_64.tar.gz.sha256
│ │ └── coding-agent-search-vtest-windows-x86_64.zip.sha256
│ ├── message_grouping/
│ │ ├── README.md
│ │ ├── claude_session.jsonl
│ │ ├── codex_session.jsonl
│ │ ├── cursor_session.jsonl
│ │ ├── edge_cases.jsonl
│ │ └── opencode_session.jsonl
│ ├── models/
│ │ ├── README.md
│ │ ├── config.json
│ │ ├── model.onnx
│ │ ├── model.onnx.placeholder
│ │ ├── special_tokens_map.json
│ │ ├── tokenizer.json
│ │ ├── tokenizer_config.json
│ │ ├── xenova-ms-marco-minilm-l6-v2-int8/
│ │ │ ├── checksums.sha256
│ │ │ ├── config.json
│ │ │ ├── model.onnx
│ │ │ ├── special_tokens_map.json
│ │ │ ├── tokenizer.json
│ │ │ └── tokenizer_config.json
│ │ └── xenova-paraphrase-minilm-l3-v2-int8/
│ │ ├── checksums.sha256
│ │ ├── config.json
│ │ ├── model.onnx
│ │ ├── special_tokens_map.json
│ │ ├── tokenizer.json
│ │ └── tokenizer_config.json
│ ├── opencode_json/
│ │ ├── message/
│ │ │ └── ses_test1/
│ │ │ ├── msg_test1.json
│ │ │ └── msg_test2.json
│ │ ├── part/
│ │ │ ├── msg_test1/
│ │ │ │ └── part1.json
│ │ │ └── msg_test2/
│ │ │ └── part1.json
│ │ └── session/
│ │ └── proj1/
│ │ └── ses_test1.json
│ ├── pages_verify/
│ │ ├── missing_required/
│ │ │ └── site/
│ │ │ ├── .nojekyll
│ │ │ ├── auth.js
│ │ │ ├── config.json
│ │ │ ├── index.html
│ │ │ ├── robots.txt
│ │ │ ├── styles.css
│ │ │ ├── sw.js
│ │ │ └── viewer.js
│ │ ├── missing_required_no_viewer/
│ │ │ └── site/
│ │ │ ├── .nojekyll
│ │ │ ├── auth.js
│ │ │ ├── config.json
│ │ │ ├── index.html
│ │ │ ├── robots.txt
│ │ │ ├── styles.css
│ │ │ └── sw.js
│ │ ├── secret_leak/
│ │ │ └── site/
│ │ │ ├── .nojekyll
│ │ │ ├── auth.js
│ │ │ ├── config.json
│ │ │ ├── index.html
│ │ │ ├── recovery-secret.txt
│ │ │ ├── robots.txt
│ │ │ ├── styles.css
│ │ │ ├── sw.js
│ │ │ └── viewer.js
│ │ ├── unencrypted/
│ │ │ └── site/
│ │ │ ├── .nojekyll
│ │ │ ├── auth.js
│ │ │ ├── config.json
│ │ │ ├── index.html
│ │ │ ├── integrity.json
│ │ │ ├── robots.txt
│ │ │ ├── styles.css
│ │ │ ├── sw.js
│ │ │ └── viewer.js
│ │ └── valid/
│ │ └── site/
│ │ ├── .nojekyll
│ │ ├── auth.js
│ │ ├── config.json
│ │ ├── index.html
│ │ ├── integrity.json
│ │ ├── robots.txt
│ │ ├── styles.css
│ │ ├── sw.js
│ │ └── viewer.js
│ ├── pi_agent/
│ │ └── sessions/
│ │ └── --test-project--/
│ │ └── 2024-01-15T10-30-00-000Z_abc12345-1234-5678-9abc-def012345678.jsonl
│ └── sources/
│ └── probe/
│ ├── README.md
│ ├── empty_index_host.json
│ ├── indexed_host.json
│ ├── no_cass_host.json
│ ├── not_indexed_host.json
│ ├── unknown_status_host.json
│ └── unreachable_host.json
├── frankensqlite_compat_gates.rs
├── frankensqlite_concurrent_stress.rs
├── fs_errors.rs
├── fsqlite_repro.rs
├── ftui_harness_snapshots.rs
├── golden/
│ ├── PROVENANCE.md
│ ├── html_export/
│ │ ├── basic_export.html.golden
│ │ └── encrypted_export.html.golden
│ ├── log/
│ │ └── memo_trace.json.golden
│ ├── metamorphic/
│ │ ├── agent_filter_breakdown.json
│ │ ├── case_invariance.json
│ │ ├── corpus_shape.json
│ │ ├── days_filter_staircase.json
│ │ └── limit_prefix_ordering.json
│ ├── regression/
│ │ └── claude_indexed_search_matrix.json
│ ├── robot/
│ │ ├── api_version.json.golden
│ │ ├── api_version_shape.json.golden
│ │ ├── capabilities.json.golden
│ │ ├── capabilities_shape.json.golden
│ │ ├── diag.json.golden
│ │ ├── diag_quarantine.json.golden
│ │ ├── diag_shape.json.golden
│ │ ├── doctor.json.golden
│ │ ├── doctor_quarantine.json.golden
│ │ ├── doctor_shape.json.golden
│ │ ├── error_envelope_kinds.json.golden
│ │ ├── export_html_shape.json.golden
│ │ ├── health.json.golden
│ │ ├── health_semantic_backfill_wait.json.golden
│ │ ├── health_semantic_progress.json.golden
│ │ ├── health_shape.json.golden
│ │ ├── introspect.json.golden
│ │ ├── introspect_shape.json.golden
│ │ ├── models_check_update_not_installed_shape.json.golden
│ │ ├── models_status.json.golden
│ │ ├── models_status_shape.json.golden
│ │ ├── models_verify_not_acquired_shape.json.golden
│ │ ├── quarantine_summary_shape.json.golden
│ │ ├── search_robot.json.golden
│ │ ├── search_robot_shape.json.golden
│ │ ├── sessions_missing_db_shape.json.golden
│ │ ├── stats_full_payload.json.golden
│ │ ├── stats_full_payload_shape.json.golden
│ │ ├── stats_missing_db.json.golden
│ │ ├── stats_missing_db_shape.json.golden
│ │ ├── status_quarantine.json.golden
│ │ ├── status_quarantine_full.json.golden
│ │ ├── status_semantic_backfill_wait.json.golden
│ │ ├── status_semantic_progress.json.golden
│ │ └── status_shape.json.golden
│ └── robot_docs/
│ ├── analytics.txt.golden
│ ├── commands.txt.golden
│ ├── contracts.txt.golden
│ ├── env.txt.golden
│ ├── examples.txt.golden
│ ├── exit-codes.txt.golden
│ ├── guide.txt.golden
│ ├── paths.txt.golden
│ ├── robot_help.txt.golden
│ ├── schemas.txt.golden
│ ├── sources.txt.golden
│ └── wrap.txt.golden
├── golden_error_envelope.rs
├── golden_fuzz_corpus.rs
├── golden_memo_trace.rs
├── golden_metamorphic_search.rs
├── golden_readiness.rs
├── golden_regression_search.rs
├── golden_robot_docs.rs
├── golden_robot_json.rs
├── html_export/
│ └── html_export_encryption.test.js
├── html_export_e2e.rs
├── html_export_integration.rs
├── indexer_memoization_policy.rs
├── indexer_tantivy.rs
├── install_scripts.rs
├── lifecycle_matrix.rs
├── load_archive_size.rs
├── load_concurrent.rs
├── logging.rs
├── memory_tests.rs
├── metamorphic_agent_detection.rs
├── metamorphic_html_export.rs
├── metamorphic_introspect_schema.rs
├── metamorphic_search.rs
├── metamorphic_stats.rs
├── multi_source_integration.rs
├── package.json
├── pages_accessibility_e2e.rs
├── pages_bundle.rs
├── pages_error_handling_e2e.rs
├── pages_export.rs
├── pages_export_golden.rs
├── pages_export_integration.rs
├── pages_fts.rs
├── pages_master_e2e.rs
├── pages_pipeline_e2e.rs
├── pages_preview_integration.rs
├── pages_verify.rs
├── pages_wizard.rs
├── parse_errors.rs
├── perf_e2e.rs
├── perf_evidence_replay.rs
├── perf_proptest.rs
├── performance/
│ ├── assertions.js
│ ├── decrypt-timing.test.js
│ ├── lighthouse.config.js
│ ├── memory-profiler.test.js
│ ├── mobile-decrypt.test.js
│ ├── package.json
│ ├── run_perf.js
│ ├── scroll-performance.test.js
│ └── search-latency.test.js
├── playwright.config.ts
├── ranking.rs
├── recovery/
│ ├── disaster.rs
│ ├── key_slots.rs
│ └── mod.rs
├── regex_cache.rs
├── regression_behavioral.rs
├── regression_coding_agent_session_search_dyoj4.rs
├── regression_coding_agent_session_search_vmtms.rs
├── repro_noise_filter.rs
├── reproduce_query_bug.rs
├── reproduction_sync_oscillation.rs
├── robot_perf.rs
├── search_asset_harness.rs
├── search_asset_simulation.rs
├── search_caching.rs
├── search_filters.rs
├── search_frankensearch_integration.rs
├── search_latency_under_indexing.rs
├── search_pipeline.rs
├── search_wildcard_fallback.rs
├── secret_scan.rs
├── security_nonce.rs
├── semantic_integration.rs
├── serialization_compat.rs
├── serialization_golden.rs
├── setup_workflow.rs
├── snapshots/
│ ├── cassapp_baseline_detail_find_closed.snap
│ ├── cassapp_baseline_detail_find_current_match.snap
│ ├── cassapp_baseline_detail_find_empty_query.snap
│ ├── cassapp_baseline_detail_find_no_matches.snap
│ ├── cassapp_baseline_detail_tabs_json_active.snap
│ ├── cassapp_baseline_detail_tabs_messages_active.snap
│ ├── cassapp_baseline_detail_tabs_raw_active.snap
│ ├── cassapp_baseline_detail_tabs_snippets_active.snap
│ ├── cassapp_baseline_pills_active_inactive.snap
│ ├── cassapp_baseline_role_gutters_messages.snap
│ ├── cassapp_command_palette.snap
│ ├── cassapp_consent_dialog.snap
│ ├── cassapp_consent_dialog_downloading.snap
│ ├── cassapp_empty_narrow.snap
│ ├── cassapp_empty_wide.snap
│ ├── cassapp_help_overlay.snap
│ ├── cassapp_help_overlay_narrow.snap
│ ├── cassapp_help_strip_pinned.snap
│ ├── cassapp_multiple_toasts.snap
│ ├── cassapp_results_narrow.snap
│ ├── cassapp_results_wide.snap
│ ├── cassapp_search_surface_active_filters.snap
│ ├── cassapp_search_surface_breakpoint_medium.snap
│ ├── cassapp_search_surface_breakpoint_narrow.snap
│ ├── cassapp_search_surface_breakpoint_wide.snap
│ ├── cassapp_search_surface_structure_default.snap
│ ├── cassapp_search_surface_theme_dark.snap
│ ├── cassapp_search_surface_theme_high_contrast.snap
│ ├── cassapp_search_surface_theme_light.snap
│ ├── cassapp_single_toast.snap
│ ├── ftui_block_paragraph_baseline.snap
│ ├── ftui_list_selection_baseline.snap
│ ├── ftui_styled_text_baseline.ansi.snap
│ ├── tui_flows__keystroke_driven_command_palette.snap
│ ├── tui_flows__search_open_find_in_detail.snap
│ └── tui_flows__search_to_detail_snippets_tab.snap
├── ssh_sync_integration.rs
├── ssh_test_helper.rs
├── storage.rs
├── storage_frankensqlite_parity.rs
├── storage_migration_safety.rs
├── streaming_index.rs
├── tests/
│ └── test-results/
│ └── e2e/
│ └── placeholder
├── tsconfig.json
├── tui_flows.rs
├── tui_headless_smoke.rs
├── tui_integration_smoke.rs
├── tui_smoke.rs
├── ui_components.rs
├── ui_footer.rs
├── ui_help.rs
├── ui_hotkeys.rs
├── ui_snap.rs
├── upgrade/
│ ├── compatibility.rs
│ ├── migration.rs
│ └── mod.rs
├── util/
│ ├── doctor_e2e_runner.rs
│ ├── doctor_fixture.rs
│ ├── e2e_log.rs
│ ├── mod.rs
│ ├── search_asset_simulation.rs
│ └── timeout.rs
├── vectors/
│ ├── aes_gcm.yaml
│ ├── argon2.yaml
│ └── hkdf.yaml
└── watch_e2e.rs
Showing preview only (1,719K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (16868 symbols across 360 files)
FILE: benches/bench_utils.rs
function configure_criterion (line 21) | pub fn configure_criterion() -> Criterion {
function configure_criterion_quick (line 34) | pub fn configure_criterion_quick() -> Criterion {
function configure_criterion_thorough (line 46) | pub fn configure_criterion_thorough() -> Criterion {
constant SCALING_SIZES (line 57) | pub const SCALING_SIZES: &[usize] = &[1_000, 5_000, 10_000, 25_000, 50_0...
constant SCALING_SIZES_SMALL (line 60) | pub const SCALING_SIZES_SMALL: &[usize] = &[100, 500, 1_000, 2_500, 5_000];
constant SCALING_SIZES_LARGE (line 63) | pub const SCALING_SIZES_LARGE: &[usize] = &[10_000, 25_000, 50_000, 100_...
function bench_scaling (line 84) | pub fn bench_scaling<T, S, B>(
function bench_scaling_with_throughput (line 112) | pub fn bench_scaling_with_throughput<T, S, B>(
function bench_comparison (line 143) | pub fn bench_comparison<F1, F2>(c: &mut Criterion, name: &str, mut basel...
type VectorBenchParams (line 156) | pub struct VectorBenchParams {
method small (line 175) | pub fn small() -> Self {
method medium (line 184) | pub fn medium() -> Self {
method large (line 193) | pub fn large() -> Self {
method with_dimension (line 202) | pub fn with_dimension(mut self, dim: usize) -> Self {
method with_corpus_size (line 207) | pub fn with_corpus_size(mut self, size: usize) -> Self {
method with_top_k (line 212) | pub fn with_top_k(mut self, k: usize) -> Self {
method default (line 164) | fn default() -> Self {
type SearchBenchParams (line 220) | pub struct SearchBenchParams {
method with_filters (line 237) | pub fn with_filters(mut self) -> Self {
method with_limit (line 242) | pub fn with_limit(mut self, limit: usize) -> Self {
method default (line 227) | fn default() -> Self {
function test_vector_bench_params_default (line 253) | fn test_vector_bench_params_default() {
function test_vector_bench_params_builder (line 261) | fn test_vector_bench_params_builder() {
function test_search_bench_params (line 270) | fn test_search_bench_params() {
FILE: benches/cache_micro.rs
function build_small_index (line 11) | fn build_small_index() -> (TempDir, SearchClient) {
function bench_cache_hits (line 73) | fn bench_cache_hits(c: &mut Criterion) {
function bench_typing_forward (line 91) | fn bench_typing_forward(c: &mut Criterion) {
function bench_typing_backspace (line 106) | fn bench_typing_backspace(c: &mut Criterion) {
function bench_rapid_keystroke_mixed (line 126) | fn bench_rapid_keystroke_mixed(c: &mut Criterion) {
function bench_cache_miss (line 142) | fn bench_cache_miss(c: &mut Criterion) {
function bench_filtered_search (line 158) | fn bench_filtered_search(c: &mut Criterion) {
FILE: benches/crypto_perf.rs
function bench_argon2id_minimal (line 33) | fn bench_argon2id_minimal(c: &mut Criterion) {
function bench_argon2id_production (line 49) | fn bench_argon2id_production(c: &mut Criterion) {
function bench_argon2id_memory_scaling (line 70) | fn bench_argon2id_memory_scaling(c: &mut Criterion) {
function random_bytes (line 101) | fn random_bytes(len: usize) -> Vec<u8> {
function bench_aes_gcm_encrypt (line 109) | fn bench_aes_gcm_encrypt(c: &mut Criterion) {
function bench_aes_gcm_decrypt (line 136) | fn bench_aes_gcm_decrypt(c: &mut Criterion) {
function bench_aes_gcm_roundtrip (line 163) | fn bench_aes_gcm_roundtrip(c: &mut Criterion) {
function bench_hkdf_extract (line 195) | fn bench_hkdf_extract(c: &mut Criterion) {
function bench_hkdf_extract_expand (line 206) | fn bench_hkdf_extract_expand(c: &mut Criterion) {
function bench_chunked_encrypt (line 230) | fn bench_chunked_encrypt(c: &mut Criterion) {
function format_size (line 271) | fn format_size(bytes: usize) -> String {
FILE: benches/db_perf.rs
function generate_conversation (line 35) | fn generate_conversation(conv_id: i64, msg_count: i64) -> NormalizedConv...
function setup_test_db (line 72) | fn setup_test_db(conv_count: i64, msgs_per_conv: i64) -> (TempDir, Sqlit...
function bench_db_open (line 94) | fn bench_db_open(c: &mut Criterion) {
function bench_db_open_with_data (line 113) | fn bench_db_open_with_data(c: &mut Criterion) {
function bench_db_open_readonly (line 126) | fn bench_db_open_readonly(c: &mut Criterion) {
function bench_insert_conversation (line 143) | fn bench_insert_conversation(c: &mut Criterion) {
function bench_insert_batch (line 172) | fn bench_insert_batch(c: &mut Criterion) {
function bench_list_conversations (line 209) | fn bench_list_conversations(c: &mut Criterion) {
function bench_fetch_messages (line 247) | fn bench_fetch_messages(c: &mut Criterion) {
function bench_list_agents (line 285) | fn bench_list_agents(c: &mut Criterion) {
function bench_list_workspaces (line 299) | fn bench_list_workspaces(c: &mut Criterion) {
function bench_fts_rebuild (line 317) | fn bench_fts_rebuild(c: &mut Criterion) {
function bench_daily_histogram (line 346) | fn bench_daily_histogram(c: &mut Criterion) {
function bench_session_count_range (line 366) | fn bench_session_count_range(c: &mut Criterion) {
function bench_db_scaling (line 389) | fn bench_db_scaling(c: &mut Criterion) {
FILE: benches/export_perf.rs
function generate_compressible_data (line 33) | fn generate_compressible_data(size: usize) -> Vec<u8> {
function generate_random_data (line 46) | fn generate_random_data(size: usize) -> Vec<u8> {
function generate_mixed_data (line 54) | fn generate_mixed_data(size: usize) -> Vec<u8> {
function bench_compress_levels (line 83) | fn bench_compress_levels(c: &mut Criterion) {
function bench_compress_scaling (line 108) | fn bench_compress_scaling(c: &mut Criterion) {
function bench_decompress (line 133) | fn bench_decompress(c: &mut Criterion) {
function bench_compress_data_types (line 163) | fn bench_compress_data_types(c: &mut Criterion) {
function bench_chunked_compress (line 208) | fn bench_chunked_compress(c: &mut Criterion) {
function bench_streaming_compress (line 239) | fn bench_streaming_compress(c: &mut Criterion) {
function bench_roundtrip (line 272) | fn bench_roundtrip(c: &mut Criterion) {
function bench_json_serialize (line 308) | fn bench_json_serialize(c: &mut Criterion) {
function bench_msgpack_serialize (line 364) | fn bench_msgpack_serialize(c: &mut Criterion) {
function format_size (line 413) | fn format_size(bytes: usize) -> String {
FILE: benches/index_perf.rs
function create_corpus (line 61) | fn create_corpus(tmp: &TempDir, count: usize) -> (std::path::PathBuf, st...
function bench_index_full (line 87) | fn bench_index_full(c: &mut Criterion) {
function bench_redact_text (line 122) | fn bench_redact_text(c: &mut Criterion) {
function bench_streaming_vs_batch (line 151) | fn bench_streaming_vs_batch(c: &mut Criterion) {
function bench_channel_overhead (line 224) | fn bench_channel_overhead(c: &mut Criterion) {
function scan_codex_conversation_count (line 261) | fn scan_codex_conversation_count(data_dir: &Path, scan_roots: &[ScanRoot...
function bench_codex_scan_preflight (line 284) | fn bench_codex_scan_preflight(c: &mut Criterion) {
function build_semantic_corpus (line 328) | fn build_semantic_corpus(count: usize) -> Vec<EmbeddingInput> {
function bench_semantic_embedding (line 361) | fn bench_semantic_embedding(c: &mut Criterion) {
function bench_semantic_shard_generation (line 402) | fn bench_semantic_shard_generation(c: &mut Criterion) {
function bench_semantic_shard_generation_large (line 611) | fn bench_semantic_shard_generation_large(c: &mut Criterion) {
function bench_ingest_with_responsiveness (line 658) | fn bench_ingest_with_responsiveness(c: &mut Criterion) {
function bench_card_defaults_ab (line 718) | fn bench_card_defaults_ab(c: &mut Criterion) {
FILE: benches/integration_regression.rs
function generate_conversation (line 38) | fn generate_conversation(conv_id: i64, msg_count: i64) -> NormalizedConv...
function generate_remote_conversation (line 74) | fn generate_remote_conversation(conv_id: i64, msg_count: i64) -> Normali...
function make_conversation (line 88) | fn make_conversation(conv_id: i64, msg_count: i64) -> Conversation {
function make_remote_conversation (line 131) | fn make_remote_conversation(conv_id: i64, msg_count: i64) -> Conversation {
function make_agent (line 138) | fn make_agent(id: i64) -> Agent {
function setup_persist_seeded_db (line 153) | fn setup_persist_seeded_db(conv_count: i64, msgs_per_conv: i64) -> (Temp...
function setup_direct_seeded_db (line 171) | fn setup_direct_seeded_db(conv_count: i64, msgs_per_conv: i64) -> (TempD...
function bench_db_open_comparison (line 209) | fn bench_db_open_comparison(c: &mut Criterion) {
function bench_insert_comparison (line 245) | fn bench_insert_comparison(c: &mut Criterion) {
function bench_insert_remote_source_reuse (line 310) | fn bench_insert_remote_source_reuse(c: &mut Criterion) {
function bench_append_remote_source_merge (line 385) | fn bench_append_remote_source_merge(c: &mut Criterion) {
function bench_query_comparison (line 473) | fn bench_query_comparison(c: &mut Criterion) {
function with_retry (line 547) | fn with_retry<F, T>(max_retries: usize, mut f: F) -> anyhow::Result<T>
function bench_concurrent_writes (line 586) | fn bench_concurrent_writes(c: &mut Criterion) {
function bench_insert_scaling (line 684) | fn bench_insert_scaling(c: &mut Criterion) {
FILE: benches/regex_cache.rs
function content_field (line 6) | fn content_field() -> Field {
function bench_regex_cache_hits (line 11) | fn bench_regex_cache_hits(c: &mut Criterion) {
function bench_regex_cache_misses (line 31) | fn bench_regex_cache_misses(c: &mut Criterion) {
function bench_regex_uncached (line 75) | fn bench_regex_uncached(c: &mut Criterion) {
function bench_regex_typing_sequence (line 94) | fn bench_regex_typing_sequence(c: &mut Criterion) {
FILE: benches/runtime_perf.rs
function sample_conv (line 12) | fn sample_conv(i: i64, msgs: i64) -> NormalizedConversation {
function seed_index (line 39) | fn seed_index(conv_count: i64, msgs: i64) -> (TempDir, SearchClient) {
function bench_indexing (line 64) | fn bench_indexing(c: &mut Criterion) {
function bench_search (line 92) | fn bench_search(c: &mut Criterion) {
function bench_dot_product (line 110) | fn bench_dot_product(c: &mut Criterion) {
function wildcard_sample_conv (line 127) | fn wildcard_sample_conv(i: i64, msgs: i64) -> NormalizedConversation {
function seed_wildcard_index (line 190) | fn seed_wildcard_index(conv_count: i64, msgs_per_conv: i64) -> (TempDir,...
function bench_wildcard_exact (line 214) | fn bench_wildcard_exact(c: &mut Criterion) {
function bench_wildcard_prefix (line 236) | fn bench_wildcard_prefix(c: &mut Criterion) {
function bench_wildcard_suffix (line 257) | fn bench_wildcard_suffix(c: &mut Criterion) {
function bench_wildcard_substring (line 278) | fn bench_wildcard_substring(c: &mut Criterion) {
function bench_wildcard_suffix_common (line 299) | fn bench_wildcard_suffix_common(c: &mut Criterion) {
function bench_wildcard_large_dataset (line 320) | fn bench_wildcard_large_dataset(c: &mut Criterion) {
function bench_concurrent_indexing (line 400) | fn bench_concurrent_indexing(c: &mut Criterion) {
function bench_rapid_sequential_search (line 428) | fn bench_rapid_sequential_search(c: &mut Criterion) {
function bench_search_scaling (line 491) | fn bench_search_scaling(c: &mut Criterion) {
FILE: benches/search_latency_e2e.rs
constant CONVERSATION_COUNT (line 24) | const CONVERSATION_COUNT: usize = 1_000;
constant SEARCH_LIMIT (line 25) | const SEARCH_LIMIT: usize = 25;
constant SPARSE_THRESHOLD (line 26) | const SPARSE_THRESHOLD: usize = 3;
constant MESSAGES_PER_CONVERSATION (line 27) | const MESSAGES_PER_CONVERSATION: usize = 24;
constant WARM_SAMPLES (line 28) | const WARM_SAMPLES: usize = 12;
constant PREFIX_SEQUENCES (line 29) | const PREFIX_SEQUENCES: usize = 6;
constant TYPICAL_P95_BUDGET_MS (line 30) | const TYPICAL_P95_BUDGET_MS: f64 = 60.0;
constant FILTER_OVERHEAD_MAX_RATIO (line 31) | const FILTER_OVERHEAD_MAX_RATIO: f64 = 2.0;
constant EXACT_QUERY (line 33) | const EXACT_QUERY: &str = "frankensqlite write conflict";
constant PHRASE_QUERY (line 34) | const PHRASE_QUERY: &str = "\"distributed tracing handshake\"";
constant WILDCARD_QUERY (line 35) | const WILDCARD_QUERY: &str = "*token*";
constant PREFIX_SEQUENCE (line 36) | const PREFIX_SEQUENCE: [&str; 4] = ["a", "au", "aut", "auth"];
constant COMPONENTS (line 38) | const COMPONENTS: &[&str] = &[
constant OPERATIONS (line 49) | const OPERATIONS: &[&str] = &[
type FixtureConversation (line 60) | struct FixtureConversation {
type SearchFixture (line 64) | struct SearchFixture {
type LatencySummary (line 77) | struct LatencySummary {
function interactive_field_mask (line 88) | fn interactive_field_mask() -> FieldMask {
function bench_client_options (line 92) | fn bench_client_options() -> SearchClientOptions {
function default_filters (line 99) | fn default_filters() -> SearchFilters {
function filtered_search_filters (line 103) | fn filtered_search_filters(fixture: &SearchFixture) -> SearchFilters {
function build_fixture_conversation (line 114) | fn build_fixture_conversation(
function build_fixture (line 206) | fn build_fixture() -> Result<SearchFixture> {
function run_search (line 245) | fn run_search(
function run_ranked_query (line 262) | fn run_ranked_query(
function apply_ranking_mode (line 285) | fn apply_ranking_mode(mut hits: Vec<SearchHit>, ranking: RankingMode) ->...
function ranking_score (line 324) | fn ranking_score(
function compare_by_date (line 347) | fn compare_by_date(left: &SearchHit, right: &SearchHit, newest_first: bo...
function compare_stable (line 358) | fn compare_stable(left: &SearchHit, right: &SearchHit) -> Ordering {
function summarize_latencies (line 365) | fn summarize_latencies(
function measure_warm_query (line 411) | fn measure_warm_query(
function measure_prefix_typing (line 438) | fn measure_prefix_typing(
function measure_ranked_query (line 469) | fn measure_ranked_query(
function log_summary (line 497) | fn log_summary(scenario: &str, fixture: &SearchFixture, summary: &Latenc...
function assert_latency_budget (line 514) | fn assert_latency_budget(label: &str, summary: &LatencySummary, budget_m...
function assert_ratio_budget (line 527) | fn assert_ratio_budget(label: &str, lhs_ms: f64, rhs_ms: f64, max_ratio:...
function run_preflight_assertions (line 540) | fn run_preflight_assertions(fixture: &SearchFixture) -> Result<()> {
function bench_search_latency_e2e (line 637) | fn bench_search_latency_e2e(c: &mut Criterion) {
FILE: benches/search_perf.rs
function bench_hash_embed_1000_docs (line 25) | fn bench_hash_embed_1000_docs(c: &mut Criterion) {
function bench_hash_embed_batch (line 41) | fn bench_hash_embed_batch(c: &mut Criterion) {
function make_long_message (line 59) | fn make_long_message() -> String {
function make_sized_message (line 73) | fn make_sized_message(target_len: usize) -> String {
function bench_canonicalize_long_message (line 83) | fn bench_canonicalize_long_message(c: &mut Criterion) {
function bench_canonicalize_with_code (line 91) | fn bench_canonicalize_with_code(c: &mut Criterion) {
function bench_canonicalize_scaling (line 121) | fn bench_canonicalize_scaling(c: &mut Criterion) {
function make_bench_hit (line 139) | fn make_bench_hit(id: &str, score: f32) -> SearchHit {
function bench_rrf_fusion_100_results (line 162) | fn bench_rrf_fusion_100_results(c: &mut Criterion) {
function bench_rrf_fusion_overlapping (line 180) | fn bench_rrf_fusion_overlapping(c: &mut Criterion) {
function bench_empty_search (line 202) | fn bench_empty_search(c: &mut Criterion) {
function bench_vector_index_search_10k (line 221) | fn bench_vector_index_search_10k(c: &mut Criterion) {
function bench_vector_index_search_50k (line 240) | fn bench_vector_index_search_50k(c: &mut Criterion) {
function bench_vector_index_search_50k_filtered (line 259) | fn bench_vector_index_search_50k_filtered(c: &mut Criterion) {
function bench_vector_search_scaling (line 292) | fn bench_vector_search_scaling(c: &mut Criterion) {
function build_temp_fsvi_index (line 313) | fn build_temp_fsvi_index(
function normalize_in_place (line 354) | fn normalize_in_place(vec: &mut [f32]) {
function build_query (line 364) | fn build_query(dimension: usize) -> Vec<f32> {
function bench_vector_index_search_50k_loaded (line 376) | fn bench_vector_index_search_50k_loaded(c: &mut Criterion) {
function bench_dot_product_f32 (line 399) | fn bench_dot_product_f32(c: &mut Criterion) {
function bench_dot_product_f16 (line 419) | fn bench_dot_product_f16(c: &mut Criterion) {
function bench_dot_product_f16_throughput (line 441) | fn bench_dot_product_f16_throughput(c: &mut Criterion) {
FILE: build.rs
type ValidationMode (line 10) | enum ValidationMode {
type DependencyContract (line 16) | struct DependencyContract {
type GitState (line 34) | struct GitState {
constant STRICT_PATH_DEP_FEATURE (line 39) | const STRICT_PATH_DEP_FEATURE: &str = "strict-path-dep-validation";
constant STRICT_PATH_DEP_ENV (line 40) | const STRICT_PATH_DEP_ENV: &str = "CASS_STRICT_PATH_DEP_VALIDATION";
constant CONTRACTS (line 42) | const CONTRACTS: &[DependencyContract] = &[
function main (line 235) | fn main() {
function validate_path_dependency_contracts (line 253) | fn validate_path_dependency_contracts(manifest_dir: &Path, manifest: &Va...
function validate_manifest_dependency_spec (line 269) | fn validate_manifest_dependency_spec(manifest: &Value, contract: &Depend...
function validate_patch_path (line 374) | fn validate_patch_path(manifest: &Value, contract: &DependencyContract) {
function validate_local_contract (line 404) | fn validate_local_contract(
function validate_strict_git_state (line 525) | fn validate_strict_git_state(contract: &DependencyContract, repo_root: &...
function warn_on_path_drift (line 557) | fn warn_on_path_drift(contract: &DependencyContract, repo_root: &Path, s...
function strict_path_dep_validation_enabled (line 583) | fn strict_path_dep_validation_enabled() -> bool {
function expected_patch_path (line 594) | fn expected_patch_path(contract: &DependencyContract) -> String {
function git_state (line 609) | fn git_state(repo_root: &Path) -> Result<GitState, String> {
function git_output (line 620) | fn git_output(repo_root: &Path, args: &[&str]) -> Result<String, String> {
function emit_vergen_metadata (line 635) | fn emit_vergen_metadata() {
function table (line 652) | fn table<'a>(value: &'a Value, key: &str, context: &str) -> &'a toml::ma...
function inline_table (line 658) | fn inline_table<'a>(
function table_value (line 668) | fn table_value<'a>(
function string_value (line 678) | fn string_value<'a>(table: &'a toml::map::Map<String, Value>, key: &str,...
function feature_set (line 685) | fn feature_set(value: Option<&Value>) -> BTreeSet<String> {
function contract_error (line 698) | fn contract_error(contract: &DependencyContract, message: String) -> ! {
FILE: fuzz/fuzz_targets/chunked.rs
type ChunkedInput (line 16) | struct ChunkedInput {
FILE: fuzz/fuzz_targets/config.rs
type ConfigInput (line 18) | struct ConfigInput {
FILE: fuzz/fuzz_targets/decrypt.rs
type DecryptInput (line 18) | struct DecryptInput {
function encode_base64 (line 41) | fn encode_base64(data: &[u8]) -> String {
FILE: fuzz/fuzz_targets/fuzz_cli_argv.rs
constant SUBCOMMANDS (line 26) | const SUBCOMMANDS: &[&str] = &[
constant LONG_FLAGS (line 34) | const LONG_FLAGS: &[&str] = &[
type DashStyle (line 69) | enum DashStyle {
type CasePerturbation (line 76) | enum CasePerturbation {
type FlagToken (line 83) | struct FlagToken {
type ValueStyle (line 94) | enum ValueStyle {
type ArgKind (line 101) | enum ArgKind {
type ArgvInput (line 108) | struct ArgvInput {
constant MAX_ARGV_LEN (line 112) | const MAX_ARGV_LEN: usize = 32;
constant MAX_STRING_BYTES (line 113) | const MAX_STRING_BYTES: usize = 256;
function bounded_string (line 115) | fn bounded_string(mut value: String, max_bytes: usize) -> String {
function mangle_case (line 127) | fn mangle_case(flag: &str, case: &CasePerturbation) -> String {
function prefix (line 145) | fn prefix(dash: &DashStyle) -> &'static str {
function build_argv (line 153) | fn build_argv(input: ArgvInput) -> Vec<String> {
function contains_help_or_version (line 188) | fn contains_help_or_version(argv: &[String]) -> bool {
FILE: fuzz/fuzz_targets/fuzz_connectors.rs
constant MAX_PAYLOAD_BYTES (line 18) | const MAX_PAYLOAD_BYTES: usize = 128 * 1024;
type ConnectorInput (line 21) | struct ConnectorInput {
function write_payload (line 26) | fn write_payload(path: PathBuf, payload: &[u8]) {
function write_connector_layout (line 33) | fn write_connector_layout(root: &Path, slug: &str, payload: &[u8]) {
FILE: fuzz/fuzz_targets/fuzz_html_export_renderer.rs
constant MAX_CONTENT_BYTES (line 15) | const MAX_CONTENT_BYTES: usize = 16 * 1024;
constant MAX_FIELD_BYTES (line 16) | const MAX_FIELD_BYTES: usize = 1024;
constant MAX_TOOL_BYTES (line 17) | const MAX_TOOL_BYTES: usize = 8 * 1024;
constant MAX_RENDERED_BYTES (line 18) | const MAX_RENDERED_BYTES: usize = 2 * 1024 * 1024;
type FuzzRole (line 21) | enum FuzzRole {
type FuzzTool (line 31) | struct FuzzTool {
type FuzzOptions (line 39) | struct FuzzOptions {
type RendererInput (line 50) | struct RendererInput {
function bounded_string (line 60) | fn bounded_string(mut value: String, max_bytes: usize) -> String {
function fuzz_role_to_string (line 73) | fn fuzz_role_to_string(role: FuzzRole) -> String {
function fuzz_status_to_tool_status (line 84) | fn fuzz_status_to_tool_status(status: u8) -> ToolStatus {
function build_message (line 92) | fn build_message(input: RendererInput) -> (Message, RenderOptions) {
function assert_no_active_script_or_dangerous_url (line 142) | fn assert_no_active_script_or_dangerous_url(html: &str) {
FILE: fuzz/fuzz_targets/fuzz_query_parser.rs
constant MAX_QUERY_BYTES (line 17) | const MAX_QUERY_BYTES: usize = 64 * 1024;
constant MAX_FILTER_BYTES (line 18) | const MAX_FILTER_BYTES: usize = 4 * 1024;
constant MAX_FILTER_VALUES (line 19) | const MAX_FILTER_VALUES: usize = 16;
type QueryInput (line 22) | struct QueryInput {
function bounded_string (line 32) | fn bounded_string(mut value: String, max_bytes: usize) -> String {
function bounded_set (line 45) | fn bounded_set(values: Vec<String>) -> HashSet<String> {
FILE: fuzz/fuzz_targets/fuzz_query_transpiler.rs
constant MAX_QUERY_BYTES (line 38) | const MAX_QUERY_BYTES: usize = 64 * 1024;
function bounded_str (line 40) | fn bounded_str(value: &str, max_bytes: usize) -> &str {
FILE: fuzz/fuzz_targets/fuzz_redact_secrets.rs
constant MAX_BYTES (line 16) | const MAX_BYTES: usize = 64 * 1024;
constant MAX_STRING_BYTES (line 17) | const MAX_STRING_BYTES: usize = 16 * 1024;
constant MAX_ARRAY_ITEMS (line 18) | const MAX_ARRAY_ITEMS: usize = 32;
constant MAX_OBJECT_ITEMS (line 19) | const MAX_OBJECT_ITEMS: usize = 24;
type JsonPair (line 22) | struct JsonPair {
type JsonScalar (line 28) | enum JsonScalar {
method arbitrary (line 47) | fn arbitrary(u: &mut Unstructured<'a>) -> ArbitraryResult<Self> {
type RedactInput (line 38) | struct RedactInput {
method arbitrary (line 60) | fn arbitrary(u: &mut Unstructured<'a>) -> ArbitraryResult<Self> {
function arbitrary_bounded_bytes (line 89) | fn arbitrary_bounded_bytes(u: &mut Unstructured<'_>, max_bytes: usize) -...
function arbitrary_bounded_string (line 94) | fn arbitrary_bounded_string(u: &mut Unstructured<'_>, max_bytes: usize) ...
function bounded_string (line 102) | fn bounded_string(mut value: String, max_bytes: usize) -> String {
function bounded_bytes (line 114) | fn bounded_bytes(bytes: &[u8]) -> &[u8] {
function scalar_to_value (line 122) | fn scalar_to_value(scalar: JsonScalar) -> Value {
function structured_value (line 135) | fn structured_value(input: RedactInput) -> Value {
function exercise_json (line 157) | fn exercise_json(value: &Value, capacity: usize) {
FILE: fuzz/fuzz_targets/fuzz_robot_envelope_roundtrip.rs
constant MAX_FIELD_BYTES (line 22) | const MAX_FIELD_BYTES: usize = 64 * 1024;
type EnvelopeInput (line 25) | struct EnvelopeInput {
function bound_str (line 33) | fn bound_str(s: String, max_bytes: usize) -> String {
function build_envelope (line 46) | fn build_envelope(input: &EnvelopeInput) -> serde_json::Value {
FILE: fuzz/fuzz_targets/fuzz_time_parser.rs
constant MAX_INPUT_BYTES (line 18) | const MAX_INPUT_BYTES: usize = 8 * 1024;
FILE: fuzz/fuzz_targets/kdf.rs
type KdfInput (line 15) | struct KdfInput {
FILE: packaging/homebrew/coding-agent-search.rb
class Cass (line 1) | class Cass < Formula
method install (line 25) | def install
FILE: scripts/check_bench_regression.py
function classify_metric (line 62) | def classify_metric(name: str) -> tuple[str, float]:
function parse_args (line 72) | def parse_args() -> argparse.Namespace:
function get_thresholds (line 181) | def get_thresholds(args: argparse.Namespace) -> dict[str, float]:
function find_criterion_dir (line 201) | def find_criterion_dir(target_dir: str) -> Optional[Path]:
function load_benchmark_estimates (line 209) | def load_benchmark_estimates(criterion_dir: Path, bench_name: str) -> dict:
function compare_benchmarks (line 236) | def compare_benchmarks(
function load_history (line 282) | def load_history(history_file: str) -> dict:
function save_history (line 294) | def save_history(history: dict, history_file: str, limit: int = 30):
function add_to_history (line 306) | def add_to_history(
function analyze_trends (line 321) | def analyze_trends(history: dict, window: int = 5) -> dict:
function format_ns (line 405) | def format_ns(ns: float) -> str:
function print_results (line 417) | def print_results(
function print_trends (line 480) | def print_trends(trends: dict):
function main (line 522) | def main():
FILE: scripts/historical_recovery/import_codex_rollouts.py
function parse_args (line 22) | def parse_args() -> argparse.Namespace:
function now_ms (line 80) | def now_ms() -> int:
function coerce_ts_ms (line 84) | def coerce_ts_ms(value: object) -> Optional[int]:
function flatten_content (line 121) | def flatten_content(value: object) -> str:
function extract_content_part (line 136) | def extract_content_part(item: object) -> Optional[str]:
function compact_message_extra (line 161) | def compact_message_extra(raw: Dict[str, object]) -> Dict[str, object]:
function token_usage_from_payload (line 183) | def token_usage_from_payload(payload: Dict[str, object]) -> Optional[Dic...
function coerce_ts_like_integer (line 204) | def coerce_ts_like_integer(value: object) -> Optional[int]:
function update_time_bounds (line 225) | def update_time_bounds(
function maybe_compact_extra (line 239) | def maybe_compact_extra(path: Path, payload: Dict[str, object], compact:...
function attach_token_usage_to_latest_assistant (line 245) | def attach_token_usage_to_latest_assistant(
function derive_title (line 264) | def derive_title(messages: Sequence[Dict[str, object]], fallback: Option...
function reindex_messages (line 279) | def reindex_messages(messages: List[Dict[str, object]]) -> None:
function canonical_message_fingerprint (line 284) | def canonical_message_fingerprint(
function canonical_replay_fingerprint (line 296) | def canonical_replay_fingerprint(
function message_merge_fingerprint (line 310) | def message_merge_fingerprint(message: Dict[str, object]) -> Tuple[int, ...
function load_existing_message_state (line 320) | def load_existing_message_state(
function open_canonical_rw (line 348) | def open_canonical_rw(path: Path) -> sqlite3.Connection:
function ensure_meta_table (line 356) | def ensure_meta_table(conn: sqlite3.Connection) -> None:
function ensure_source (line 367) | def ensure_source(conn: sqlite3.Connection, source_id: str) -> None:
function ensure_agent (line 381) | def ensure_agent(conn: sqlite3.Connection, slug: str) -> int:
function find_agent_id (line 396) | def find_agent_id(conn: sqlite3.Connection, slug: str) -> Optional[int]:
function ensure_workspace (line 401) | def ensure_workspace(
function build_canonical_codex_index (line 429) | def build_canonical_codex_index(
function load_thread_fallbacks (line 489) | def load_thread_fallbacks(state_db_path: Optional[Path]) -> Dict[str, Di...
function enumerate_rollout_files (line 524) | def enumerate_rollout_files(sessions_root: Path) -> List[Path]:
function derive_external_id (line 530) | def derive_external_id(path: Path, sessions_root: Path) -> str:
function serialize_json (line 538) | def serialize_json(value: object) -> str:
function compute_message_stats (line 542) | def compute_message_stats(messages: Sequence[Dict[str, object]]) -> Dict...
function parse_rollout (line 583) | def parse_rollout(path: Path, sessions_root: Path, thread_fallback: Opti...
function fast_path_unchanged (line 761) | def fast_path_unchanged(existing: Dict[str, object], parsed: Dict[str, o...
function insert_message (line 781) | def insert_message(
function update_conversation_metadata (line 806) | def update_conversation_metadata(
function process_rollouts (line 863) | def process_rollouts(args: argparse.Namespace) -> Dict[str, object]:
function main (line 1100) | def main() -> int:
FILE: scripts/historical_recovery/inventory_sqlite_sources.py
function parse_args (line 33) | def parse_args() -> argparse.Namespace:
function sidecar_path (line 69) | def sidecar_path(path: Path, suffix: str) -> Path:
function looks_like_candidate (line 73) | def looks_like_candidate(path: Path) -> bool:
function first_bytes (line 80) | def first_bytes(path: Path, byte_count: int = 16) -> bytes:
function sqlite_header_state (line 88) | def sqlite_header_state(path: Path) -> str:
function total_bundle_bytes (line 97) | def total_bundle_bytes(path: Path) -> int:
function discover_candidates (line 106) | def discover_candidates(roots: Sequence[Path], max_depth: Optional[int])...
function open_sqlite_readonly (line 133) | def open_sqlite_readonly(path: Path) -> Tuple[Optional[sqlite3.Connectio...
function safe_scalar (line 146) | def safe_scalar(conn: sqlite3.Connection, sql: str) -> Tuple[Optional[ob...
function probe_sqlite (line 154) | def probe_sqlite(path: Path, with_quick_check: bool) -> Dict[str, object]:
function emit_tsv (line 237) | def emit_tsv(records: Sequence[Dict[str, object]]) -> None:
function main (line 266) | def main() -> int:
FILE: scripts/historical_recovery/merge_historical_bundle.py
function parse_args (line 33) | def parse_args() -> argparse.Namespace:
function now_ms (line 80) | def now_ms() -> int:
function open_source_readonly (line 84) | def open_source_readonly(path: Path) -> sqlite3.Connection:
function open_canonical_rw (line 93) | def open_canonical_rw(path: Path) -> sqlite3.Connection:
function get_table_columns (line 101) | def get_table_columns(conn: sqlite3.Connection, table_name: str) -> Set[...
function build_source_conversation_sql (line 109) | def build_source_conversation_sql(columns: Set[str]) -> str:
function content_hash (line 139) | def content_hash(text: str) -> str:
function parse_json_dict (line 143) | def parse_json_dict(raw: Optional[str]) -> Optional[Dict[str, Any]]:
function coerce_int (line 158) | def coerce_int(value: Any) -> Optional[int]:
function coerce_float (line 179) | def coerce_float(value: Any) -> Optional[float]:
function preferred_model_from_metadata (line 195) | def preferred_model_from_metadata(conv_row: sqlite3.Row) -> Optional[str]:
function first_non_empty_text (line 212) | def first_non_empty_text(*values: Any) -> Optional[str]:
function count_tool_items (line 219) | def count_tool_items(items: Any) -> int:
function extract_message_summary (line 234) | def extract_message_summary(
function prefer_source_or_derived (line 386) | def prefer_source_or_derived(existing: Any, derived: Any) -> Any:
function resolve_conversation_summary (line 396) | def resolve_conversation_summary(
function message_merge_fingerprint (line 408) | def message_merge_fingerprint(row: sqlite3.Row) -> Tuple[int, Optional[i...
function message_replay_fingerprint (line 418) | def message_replay_fingerprint(row: sqlite3.Row) -> Tuple[Optional[int],...
function fetch_source_agents (line 427) | def fetch_source_agents(conn: sqlite3.Connection) -> Dict[int, sqlite3.R...
function fetch_source_workspaces (line 436) | def fetch_source_workspaces(conn: sqlite3.Connection) -> Dict[int, sqlit...
function fetch_source_sources (line 443) | def fetch_source_sources(conn: sqlite3.Connection) -> Dict[str, sqlite3....
function ensure_agent (line 452) | def ensure_agent(
function ensure_workspace (line 487) | def ensure_workspace(
function ensure_source (line 514) | def ensure_source(
function build_canonical_caches (line 559) | def build_canonical_caches(
function fetch_source_messages (line 588) | def fetch_source_messages(conn: sqlite3.Connection, conversation_id: int...
function fetch_source_snippets (line 602) | def fetch_source_snippets(conn: sqlite3.Connection, source_message_ids: ...
function load_existing_message_state (line 623) | def load_existing_message_state(
function insert_snippets (line 644) | def insert_snippets(
function effective_started_at (line 669) | def effective_started_at(conv_row: sqlite3.Row, source_messages: Sequenc...
function process_bundle (line 676) | def process_bundle(args: argparse.Namespace) -> Dict[str, object]:
function main (line 974) | def main() -> int:
FILE: scripts/historical_recovery/recover_historical_bundle.py
function parse_args (line 95) | def parse_args() -> argparse.Namespace:
function is_recoverable_insert (line 119) | def is_recoverable_insert(line: str) -> Optional[str]:
function prepare_output_db (line 132) | def prepare_output_db(output_db: Path, overwrite_output: bool) -> None:
function write_line (line 147) | def write_line(stream: TextIO, line: str) -> None:
function summarize_output_db (line 153) | def summarize_output_db(output_db: Path) -> Dict[str, object]:
function main (line 164) | def main() -> int:
FILE: scripts/historical_recovery/run_watch_once_batches.py
function parse_args (line 24) | def parse_args() -> argparse.Namespace:
function read_explicit_paths (line 184) | def read_explicit_paths(paths_files: List[str]) -> Tuple[List[Path], Dic...
function collect_paths (line 212) | def collect_paths(
function estimated_file_size_bytes (line 231) | def estimated_file_size_bytes(path: Path) -> int:
function select_batch_paths (line 238) | def select_batch_paths(
function config_signature (line 265) | def config_signature(
function state_paths (line 279) | def state_paths(args: argparse.Namespace) -> tuple[Path, Path, Dict[str,...
function load_state (line 306) | def load_state(state_file: Path) -> Dict[str, object]:
function save_state (line 321) | def save_state(state_file: Path, state: Dict[str, object]) -> None:
function append_log (line 327) | def append_log(log_file: Path, payload: Dict[str, object]) -> None:
function maybe_migrate_legacy_state (line 333) | def maybe_migrate_legacy_state(
function normalize_state_metadata (line 357) | def normalize_state_metadata(
function build_state_snapshot (line 388) | def build_state_snapshot(
function run_cass_json (line 429) | def run_cass_json(
function db_counts (line 483) | def db_counts(cass_binary: Path, data_dir: Path) -> Dict[str, Any]:
function read_meminfo_kb (line 573) | def read_meminfo_kb() -> Dict[str, int]:
function read_proc_status_kb (line 588) | def read_proc_status_kb(pid: int) -> Dict[str, int]:
function compute_memory_budgets_kb (line 607) | def compute_memory_budgets_kb(
class TailBuffer (line 630) | class TailBuffer:
method __init__ (line 631) | def __init__(self, max_chars: int) -> None:
method append (line 636) | def append(self, chunk: str) -> None:
method text (line 645) | def text(self) -> str:
function drain_stream (line 652) | def drain_stream(stream: Optional[Any], tail: TailBuffer) -> None:
function run_batch (line 665) | def run_batch(
function failure_text (line 766) | def failure_text(proc: subprocess.CompletedProcess[str]) -> str:
function has_masked_watch_failure (line 770) | def has_masked_watch_failure(proc: subprocess.CompletedProcess[str]) -> ...
function is_out_of_memory_failure (line 774) | def is_out_of_memory_failure(
function autotune_after_success (line 789) | def autotune_after_success(
function main (line 869) | def main() -> int:
FILE: scripts/historical_recovery/screen_bundle_delta.py
function parse_args (line 14) | def parse_args() -> argparse.Namespace:
function resolve_paths (line 37) | def resolve_paths(patterns: Sequence[str]) -> List[Path]:
function open_ro (line 61) | def open_ro(path: Path) -> sqlite3.Connection:
function load_canonical_keys (line 70) | def load_canonical_keys(canonical_db: Path) -> Dict[Tuple[str, str, str]...
function screen_bundle (line 93) | def screen_bundle(path: Path, canonical_keys: Dict[Tuple[str, str, str],...
function main (line 137) | def main() -> int:
FILE: src/analytics/bucketing.rs
function day_id_to_iso (line 11) | pub fn day_id_to_iso(day_id: i64) -> String {
function hour_id_to_iso (line 21) | pub fn hour_id_to_iso(hour_id: i64) -> String {
function day_id_to_iso_week (line 31) | pub fn day_id_to_iso_week(day_id: i64) -> String {
function day_id_to_month (line 44) | pub fn day_id_to_month(day_id: i64) -> String {
function resolve_day_range (line 56) | pub fn resolve_day_range(filter: &AnalyticsFilter) -> (Option<i64>, Opti...
function resolve_hour_range (line 64) | pub fn resolve_hour_range(filter: &AnalyticsFilter) -> (Option<i64>, Opt...
function day_id_roundtrip (line 82) | fn day_id_roundtrip() {
function hour_id_roundtrip (line 91) | fn hour_id_roundtrip() {
function day_id_to_week (line 100) | fn day_id_to_week() {
function day_id_to_month_format (line 111) | fn day_id_to_month_format() {
function resolve_empty_filter_gives_none (line 118) | fn resolve_empty_filter_gives_none() {
function resolve_day_range_with_since (line 129) | fn resolve_day_range_with_since() {
FILE: src/analytics/derive.rs
function compute_derived (line 9) | pub fn compute_derived(bucket: &UsageBucket) -> DerivedMetrics {
function safe_pct (line 57) | pub fn safe_pct(numerator: i64, denominator: i64) -> f64 {
function safe_div (line 67) | pub fn safe_div(numerator: i64, denominator: i64) -> Option<f64> {
function safe_div_f64 (line 77) | pub fn safe_div_f64(numerator: f64, denominator: i64) -> Option<f64> {
function safe_div_zero_denominator (line 94) | fn safe_div_zero_denominator() {
function safe_div_normal (line 99) | fn safe_div_normal() {
function safe_div_f64_zero_denominator (line 104) | fn safe_div_f64_zero_denominator() {
function safe_div_f64_normal (line 109) | fn safe_div_f64_normal() {
function safe_pct_zero_denominator (line 115) | fn safe_pct_zero_denominator() {
function safe_pct_normal (line 120) | fn safe_pct_normal() {
function safe_pct_rounding (line 126) | fn safe_pct_rounding() {
function compute_derived_empty_bucket (line 133) | fn compute_derived_empty_bucket() {
function compute_derived_realistic_bucket (line 147) | fn compute_derived_realistic_bucket() {
function no_nan_or_infinity (line 174) | fn no_nan_or_infinity() {
FILE: src/analytics/query.rs
function table_exists (line 20) | pub fn table_exists(conn: &Connection, name: &str) -> bool {
function table_has_column (line 35) | fn table_has_column(conn: &Connection, table: &str, column: &str) -> bool {
function table_has_plan_token_rollups (line 53) | fn table_has_plan_token_rollups(conn: &Connection, table: &str) -> bool {
function normalize_epoch_millis (line 58) | fn normalize_epoch_millis(ts: i64) -> i64 {
function normalized_epoch_millis_sql (line 66) | fn normalized_epoch_millis_sql(expr: &str) -> String {
function is_recently_updated (line 72) | fn is_recently_updated(last_updated: Option<i64>, now_ms: i64, threshold...
function normalized_analytics_source_id_value (line 76) | fn normalized_analytics_source_id_value(source_id: &str) -> String {
function normalized_analytics_source_identity_value (line 87) | fn normalized_analytics_source_identity_value(source_id: &str, origin_ho...
function breakdown_row_with_value (line 103) | fn breakdown_row_with_value(key: String, bucket: UsageBucket, value: i64...
function analytics_query_error (line 112) | fn analytics_query_error(context: &str, err: impl std::fmt::Display) -> ...
function normalized_analytics_source_id_sql_expr (line 116) | fn normalized_analytics_source_id_sql_expr(column: &str) -> String {
function normalized_analytics_source_identity_sql_expr (line 123) | fn normalized_analytics_source_identity_sql_expr(
function normalized_analytics_source_id_with_fallback_sql_expr (line 133) | fn normalized_analytics_source_id_with_fallback_sql_expr(
function normalized_analytics_source_identity_with_fallback_sql_expr (line 144) | fn normalized_analytics_source_identity_with_fallback_sql_expr(
function normalized_analytics_agent_value (line 159) | fn normalized_analytics_agent_value(agent_slug: &str) -> String {
function normalized_analytics_agent_sql_expr (line 168) | fn normalized_analytics_agent_sql_expr(column: &str) -> String {
function sql_string_literal (line 174) | fn sql_string_literal(value: &str) -> String {
function canonical_message_metrics_from_sql (line 178) | fn canonical_message_metrics_from_sql(conn: &Connection) -> Option<Strin...
function analytics_source_filter_matches_key (line 225) | fn analytics_source_filter_matches_key(filter: &SourceFilter, key: &str)...
function push_source_filter_clause (line 237) | fn push_source_filter_clause(
type RollupStats (line 269) | struct RollupStats {
function rollup_stats_from_summary_row (line 276) | fn rollup_stats_from_summary_row(row: &Row) -> RollupStats {
type AnalyticsTimeColumn (line 287) | enum AnalyticsTimeColumn<'a> {
function normalized_analytics_model_family_sql_expr (line 293) | fn normalized_analytics_model_family_sql_expr(column: &str) -> String {
function build_where_parts_for_columns (line 299) | fn build_where_parts_for_columns<'a>(
function build_filtered_where_sql (line 359) | fn build_filtered_where_sql<'a>(
function build_where_parts (line 422) | pub fn build_where_parts<'a>(
function message_metrics_time_sql (line 433) | fn message_metrics_time_sql(conn: &Connection) -> Option<String> {
function message_metrics_from_sql_and_source_sql (line 461) | fn message_metrics_from_sql_and_source_sql(conn: &Connection) -> (String...
function token_usage_from_sql_agent_and_source_sql (line 488) | fn token_usage_from_sql_agent_and_source_sql(
function token_usage_agent_sql_or_unknown (line 566) | fn token_usage_agent_sql_or_unknown(agent_sql: Option<String>) -> String {
function token_usage_time_sql (line 570) | fn token_usage_time_sql(conn: &Connection) -> Option<String> {
function query_table_stats_from_source (line 594) | fn query_table_stats_from_source<'a>(
function query_scalar_i64 (line 628) | fn query_scalar_i64(conn: &Connection, sql: &str, params: &[ParamValue])...
function query_total_messages_filtered (line 633) | fn query_total_messages_filtered(conn: &Connection, filter: &AnalyticsFi...
function query_message_metrics_filtered_count (line 678) | fn query_message_metrics_filtered_count(
function query_token_usage_filtered_count (line 711) | fn query_token_usage_filtered_count(
function track_b_requires_token_usage_fallback (line 744) | fn track_b_requires_token_usage_fallback(filter: &AnalyticsFilter) -> bo...
function token_usage_supports_track_b_metric (line 748) | fn token_usage_supports_track_b_metric(conn: &Connection, metric: Metric...
function message_metrics_supports_track_a_metric (line 767) | fn message_metrics_supports_track_a_metric(conn: &Connection, metric: Me...
function track_a_breakdown_supports_raw_metric (line 798) | fn track_a_breakdown_supports_raw_metric(conn: &Connection, metric: Metr...
function track_a_breakdown_requires_raw_fallback (line 810) | fn track_a_breakdown_requires_raw_fallback(filter: &AnalyticsFilter, dim...
function track_b_breakdown_requires_token_usage_fallback (line 817) | fn track_b_breakdown_requires_token_usage_fallback(filter: &AnalyticsFil...
function track_a_timeseries_requires_source_fallback (line 823) | fn track_a_timeseries_requires_source_fallback(filter: &AnalyticsFilter)...
function track_a_tools_supports_raw_source_fallback (line 834) | fn track_a_tools_supports_raw_source_fallback(conn: &Connection) -> bool {
function analytics_requires_exact_raw_time_filter (line 842) | fn analytics_requires_exact_raw_time_filter(filter: &AnalyticsFilter) ->...
function track_a_timeseries_requires_raw_fallback (line 846) | fn track_a_timeseries_requires_raw_fallback(filter: &AnalyticsFilter) ->...
function track_b_cost_timeseries_requires_token_usage_fallback (line 851) | fn track_b_cost_timeseries_requires_token_usage_fallback(
function query_track_a_rollup_status_with_message_metrics_fallback (line 860) | fn query_track_a_rollup_status_with_message_metrics_fallback(
function query_token_daily_stats_status (line 940) | fn query_token_daily_stats_status(conn: &Connection, filter: &AnalyticsF...
function query_status (line 1001) | pub fn query_status(conn: &Connection, filter: &AnalyticsFilter) -> Anal...
function query_tokens_timeseries (line 1226) | pub fn query_tokens_timeseries(
function query_track_a_timeseries_from_raw (line 1410) | fn query_track_a_timeseries_from_raw(
function query_cost_timeseries_from_token_usage (line 1690) | fn query_cost_timeseries_from_token_usage(
function query_cost_timeseries (line 1892) | pub fn query_cost_timeseries(
function breakdown_route (line 2056) | fn breakdown_route(dim: Dim, metric: Metric) -> (&'static str, &'static ...
function query_track_b_breakdown_from_token_usage (line 2067) | fn query_track_b_breakdown_from_token_usage(
function query_track_a_breakdown_from_raw (line 2263) | fn query_track_a_breakdown_from_raw(
function query_breakdown (line 2526) | pub fn query_breakdown(
function build_breakdown_sql_track_a (line 2666) | fn build_breakdown_sql_track_a(
function build_breakdown_sql_track_b (line 2735) | fn build_breakdown_sql_track_b(
function read_breakdown_rows_track_a (line 2792) | fn read_breakdown_rows_track_a(
function read_breakdown_rows_track_b (line 2847) | fn read_breakdown_rows_track_b(
function query_tools_from_raw (line 2922) | fn query_tools_from_raw(
function query_tools (line 3123) | pub fn query_tools(
function query_session_scatter (line 3272) | pub fn query_session_scatter(
function query_unpriced_models (line 3526) | pub fn query_unpriced_models(
function build_where_parts_empty_filter (line 3623) | fn build_where_parts_empty_filter() {
function build_where_parts_single_agent (line 3631) | fn build_where_parts_single_agent() {
function build_where_parts_single_agent_normalizes_trimmed_unknown_alias (line 3644) | fn build_where_parts_single_agent_normalizes_trimmed_unknown_alias() {
function build_where_parts_multiple_agents (line 3657) | fn build_where_parts_multiple_agents() {
function build_where_parts_source_local (line 3672) | fn build_where_parts_source_local() {
function build_where_parts_source_remote (line 3685) | fn build_where_parts_source_remote() {
function build_where_parts_source_specific (line 3698) | fn build_where_parts_source_specific() {
function build_where_parts_source_specific_normalizes_trimmed_local_alias (line 3711) | fn build_where_parts_source_specific_normalizes_trimmed_local_alias() {
function build_where_parts_combined (line 3724) | fn build_where_parts_combined() {
function build_where_parts_workspace_filter_enabled (line 3739) | fn build_where_parts_workspace_filter_enabled() {
function build_where_parts_workspace_filter_disabled (line 3751) | fn build_where_parts_workspace_filter_disabled() {
function setup_usage_daily_db (line 3766) | fn setup_usage_daily_db() -> Connection {
function setup_usage_daily_legacy_db (line 3878) | fn setup_usage_daily_legacy_db() -> Connection {
function setup_usage_hourly_db (line 3915) | fn setup_usage_hourly_db() -> Connection {
function setup_tools_remote_source_fallback_db (line 3994) | fn setup_tools_remote_source_fallback_db() -> Connection {
function setup_token_daily_stats_db (line 4124) | fn setup_token_daily_stats_db() -> Connection {
function setup_status_freshness_db (line 4173) | fn setup_status_freshness_db(
function setup_session_scatter_db (line 4204) | fn setup_session_scatter_db() -> Connection {
function setup_session_scatter_with_token_usage_fallback_db (line 4320) | fn setup_session_scatter_with_token_usage_fallback_db() -> Connection {
function setup_session_scatter_with_api_source_column_db (line 4350) | fn setup_session_scatter_with_api_source_column_db() -> Connection {
function setup_duplicate_message_metrics_raw_db (line 4365) | fn setup_duplicate_message_metrics_raw_db() -> Connection {
function setup_status_filter_db (line 4440) | fn setup_status_filter_db() -> Connection {
function normalize_epoch_millis_preserves_negative_millisecond_values (line 4650) | fn normalize_epoch_millis_preserves_negative_millisecond_values() {
function setup_legacy_status_filter_db_without_message_metrics_created_at (line 4656) | fn setup_legacy_status_filter_db_without_message_metrics_created_at() ->...
function setup_legacy_track_b_filter_db_without_token_usage_timestamp (line 4796) | fn setup_legacy_track_b_filter_db_without_token_usage_timestamp() -> Con...
function query_status_treats_millisecond_timestamps_as_fresh (line 4866) | fn query_status_treats_millisecond_timestamps_as_fresh() {
function query_status_supports_legacy_second_timestamps (line 4881) | fn query_status_supports_legacy_second_timestamps() {
function query_status_detects_millisecond_freshness_mismatch (line 4895) | fn query_status_detects_millisecond_freshness_mismatch() {
function query_status_deduplicates_duplicate_token_usage_rows_in_coverage (line 4918) | fn query_status_deduplicates_duplicate_token_usage_rows_in_coverage() {
function query_status_blank_duplicate_token_usage_data_source_does_not_override_estimated (line 4947) | fn query_status_blank_duplicate_token_usage_data_source_does_not_overrid...
function status_table_row_count (line 4976) | fn status_table_row_count(result: &StatusResult, table: &str) -> i64 {
function query_status_applies_dimensional_filters_to_tables_and_coverage (line 4986) | fn query_status_applies_dimensional_filters_to_tables_and_coverage() {
function query_status_subday_filter_excludes_same_day_rollup_rows_without_raw_matches (line 5014) | fn query_status_subday_filter_excludes_same_day_rollup_rows_without_raw_...
function query_status_uses_exact_raw_timestamps_for_subday_coverage_counts (line 5052) | fn query_status_uses_exact_raw_timestamps_for_subday_coverage_counts() {
function query_status_uses_message_metrics_timestamp_when_message_created_at_missing (line 5091) | fn query_status_uses_message_metrics_timestamp_when_message_created_at_m...
function query_status_uses_message_created_at_when_message_metrics_timestamp_column_is_missing (line 5113) | fn query_status_uses_message_created_at_when_message_metrics_timestamp_c...
function query_status_uses_conversation_started_at_when_message_metrics_timestamp_column_is_missing (line 5140) | fn query_status_uses_conversation_started_at_when_message_metrics_timest...
function query_status_uses_conversation_started_at_when_token_usage_timestamp_column_is_missing (line 5170) | fn query_status_uses_conversation_started_at_when_token_usage_timestamp_...
function query_cost_timeseries_uses_conversation_started_at_when_token_usage_timestamp_column_is_missing (line 5197) | fn query_cost_timeseries_uses_conversation_started_at_when_token_usage_t...
function query_breakdown_model_api_total_uses_conversation_started_at_when_token_usage_timestamp_column_is_missing (line 5224) | fn query_breakdown_model_api_total_uses_conversation_started_at_when_tok...
function query_status_unknown_workspace_filter_returns_empty_subset (line 5249) | fn query_status_unknown_workspace_filter_returns_empty_subset() {
function query_status_source_filter_matches_blank_remote_raw_source_ids_via_origin_host (line 5269) | fn query_status_source_filter_matches_blank_remote_raw_source_ids_via_or...
function query_breakdown_by_agent_returns_ordered_rows (line 5308) | fn query_breakdown_by_agent_returns_ordered_rows() {
function query_breakdown_by_agent_coalesces_trimmed_and_blank_agent_slugs (line 5325) | fn query_breakdown_by_agent_coalesces_trimmed_and_blank_agent_slugs() {
function query_breakdown_by_agent_coverage_pct_orders_by_coverage_before_limit (line 5349) | fn query_breakdown_by_agent_coverage_pct_orders_by_coverage_before_limit...
function query_breakdown_by_source_filters_correctly (line 5377) | fn query_breakdown_by_source_filters_correctly() {
function query_breakdown_by_source_specific_filter_applies_before_limit_on_track_a_rollup (line 5392) | fn query_breakdown_by_source_specific_filter_applies_before_limit_on_tra...
function query_breakdown_by_source_coalesces_trimmed_local_ids (line 5407) | fn query_breakdown_by_source_coalesces_trimmed_local_ids() {
function query_breakdown_by_source_with_cost_metric_coalesces_trimmed_local_ids (line 5461) | fn query_breakdown_by_source_with_cost_metric_coalesces_trimmed_local_id...
function query_breakdown_by_source_specific_filter_applies_before_limit_on_track_b_rollup (line 5488) | fn query_breakdown_by_source_specific_filter_applies_before_limit_on_tra...
function query_breakdown_by_source_message_count_recovers_blank_remote_usage_daily_source_via_origin_host (line 5514) | fn query_breakdown_by_source_message_count_recovers_blank_remote_usage_d...
function query_breakdown_by_source_api_total_matches_blank_remote_usage_daily_source_via_origin_host (line 5552) | fn query_breakdown_by_source_api_total_matches_blank_remote_usage_daily_...
function query_breakdown_source_with_cost_metric_source_filter_matches_blank_remote_token_usage_source_via_origin_host (line 5583) | fn query_breakdown_source_with_cost_metric_source_filter_matches_blank_r...
function query_breakdown_agent_with_cost_metric_source_filter_matches_blank_remote_token_usage_source_via_origin_host (line 5618) | fn query_breakdown_agent_with_cost_metric_source_filter_matches_blank_re...
function query_breakdown_source_with_cost_metric_default_uses_token_usage_to_recover_blank_remote_source_via_origin_host (line 5653) | fn query_breakdown_source_with_cost_metric_default_uses_token_usage_to_r...
function query_breakdown_workspace_filter_applies_on_track_a (line 5693) | fn query_breakdown_workspace_filter_applies_on_track_a() {
function query_breakdown_by_agent_tool_calls_matches_blank_remote_usage_daily_source_via_origin_host (line 5706) | fn query_breakdown_by_agent_tool_calls_matches_blank_remote_usage_daily_...
function query_breakdown_by_agent_plan_count_matches_blank_remote_usage_daily_source_via_origin_host (line 5725) | fn query_breakdown_by_agent_plan_count_matches_blank_remote_usage_daily_...
function query_breakdown_by_agent_message_count_uses_message_metrics_timestamp_when_message_created_at_missing (line 5748) | fn query_breakdown_by_agent_message_count_uses_message_metrics_timestamp...
function query_breakdown_by_agent_api_total_uses_message_metrics_timestamp_when_message_created_at_missing (line 5770) | fn query_breakdown_by_agent_api_total_uses_message_metrics_timestamp_whe...
function query_breakdown_by_agent_api_total_subday_filter_excludes_same_day_rollup_rows_without_raw_matches (line 5792) | fn query_breakdown_by_agent_api_total_subday_filter_excludes_same_day_ro...
function query_breakdown_model_api_total_deduplicates_duplicate_token_usage_rows (line 5820) | fn query_breakdown_model_api_total_deduplicates_duplicate_token_usage_ro...
function query_breakdown_by_agent_api_total_matches_blank_remote_usage_daily_source_via_origin_host (line 5849) | fn query_breakdown_by_agent_api_total_matches_blank_remote_usage_daily_s...
function query_breakdown_by_workspace_message_count_matches_blank_remote_usage_daily_source_via_origin_host (line 5868) | fn query_breakdown_by_workspace_message_count_matches_blank_remote_usage...
function query_breakdown_model_workspace_filter_uses_token_usage_and_normalizes_filters (line 5887) | fn query_breakdown_model_workspace_filter_uses_token_usage_and_normalize...
function query_breakdown_model_api_total_subday_filter_excludes_same_day_rollup_rows_without_raw_matches (line 5906) | fn query_breakdown_model_api_total_subday_filter_excludes_same_day_rollu...
function query_breakdown_model_unknown_workspace_filter_returns_empty (line 5930) | fn query_breakdown_model_unknown_workspace_filter_returns_empty() {
function query_breakdown_model_workspace_filter_matches_blank_remote_token_usage_source_via_origin_host (line 5943) | fn query_breakdown_model_workspace_filter_matches_blank_remote_token_usa...
function query_breakdown_model_source_filter_matches_blank_remote_token_daily_stats_source_via_origin_host (line 5976) | fn query_breakdown_model_source_filter_matches_blank_remote_token_daily_...
function query_breakdown_by_model_uses_track_b (line 6008) | fn query_breakdown_by_model_uses_track_b() {
function query_breakdown_limit_caps_rows (line 6020) | fn query_breakdown_limit_caps_rows() {
function query_breakdown_missing_table_returns_empty (line 6029) | fn query_breakdown_missing_table_returns_empty() {
function query_breakdown_result_to_json_shape (line 6037) | fn query_breakdown_result_to_json_shape() {
function query_unpriced_models_totals_include_hidden_models_beyond_limit (line 6051) | fn query_unpriced_models_totals_include_hidden_models_beyond_limit() {
function query_unpriced_models_deduplicates_duplicate_token_usage_rows (line 6077) | fn query_unpriced_models_deduplicates_duplicate_token_usage_rows() {
function query_unpriced_models_coalesces_blank_model_names_into_none_bucket (line 6109) | fn query_unpriced_models_coalesces_blank_model_names_into_none_bucket() {
function query_unpriced_models_missing_estimated_cost_column_returns_empty_report (line 6136) | fn query_unpriced_models_missing_estimated_cost_column_returns_empty_rep...
function query_unpriced_models_without_model_name_column_uses_none_bucket (line 6157) | fn query_unpriced_models_without_model_name_column_uses_none_bucket() {
function query_tools_returns_agent_breakdown (line 6182) | fn query_tools_returns_agent_breakdown() {
function query_tools_normalizes_grouped_agent_slugs (line 6198) | fn query_tools_normalizes_grouped_agent_slugs() {
function query_tools_workspace_filter_applies (line 6215) | fn query_tools_workspace_filter_applies() {
function query_tools_totals_include_hidden_rows_beyond_limit (line 6228) | fn query_tools_totals_include_hidden_rows_beyond_limit() {
function query_tools_raw_totals_include_hidden_rows_beyond_limit (line 6241) | fn query_tools_raw_totals_include_hidden_rows_beyond_limit() {
function query_tools_source_filter_matches_blank_remote_usage_daily_source_via_origin_host (line 6260) | fn query_tools_source_filter_matches_blank_remote_usage_daily_source_via...
function query_tools_subday_filter_excludes_same_day_rollup_rows_without_raw_matches (line 6281) | fn query_tools_subday_filter_excludes_same_day_rollup_rows_without_raw_m...
function query_tools_derived_metrics_correct (line 6310) | fn query_tools_derived_metrics_correct() {
function query_tools_missing_table_returns_empty (line 6324) | fn query_tools_missing_table_returns_empty() {
function query_tools_report_to_json_shape (line 6333) | fn query_tools_report_to_json_shape() {
function query_tools_hour_group_uses_usage_hourly (line 6345) | fn query_tools_hour_group_uses_usage_hourly() {
function query_total_messages_filtered_deduplicates_duplicate_message_metrics_rows (line 6359) | fn query_total_messages_filtered_deduplicates_duplicate_message_metrics_...
function query_total_messages_filtered_uses_conversation_started_at_when_message_timestamps_missing (line 6371) | fn query_total_messages_filtered_uses_conversation_started_at_when_messa...
function query_tokens_timeseries_deduplicates_duplicate_message_metrics_rows (line 6388) | fn query_tokens_timeseries_deduplicates_duplicate_message_metrics_rows() {
function query_tokens_timeseries_uses_conversation_started_at_when_message_timestamps_missing (line 6405) | fn query_tokens_timeseries_uses_conversation_started_at_when_message_tim...
function query_breakdown_by_agent_api_total_deduplicates_duplicate_message_metrics_rows (line 6425) | fn query_breakdown_by_agent_api_total_deduplicates_duplicate_message_met...
function query_breakdown_by_agent_message_count_uses_conversation_started_at_when_message_timestamps_missing (line 6442) | fn query_breakdown_by_agent_message_count_uses_conversation_started_at_w...
function query_tools_deduplicates_duplicate_message_metrics_rows (line 6463) | fn query_tools_deduplicates_duplicate_message_metrics_rows() {
function query_tools_uses_conversation_started_at_when_message_timestamps_missing (line 6481) | fn query_tools_uses_conversation_started_at_when_message_timestamps_miss...
function query_session_scatter_deduplicates_duplicate_message_metrics_rows (line 6502) | fn query_session_scatter_deduplicates_duplicate_message_metrics_rows() {
function query_session_scatter_returns_sorted_points (line 6513) | fn query_session_scatter_returns_sorted_points() {
function query_session_scatter_applies_agent_and_source_filters (line 6528) | fn query_session_scatter_applies_agent_and_source_filters() {
function query_session_scatter_without_agents_table_still_returns_points (line 6545) | fn query_session_scatter_without_agents_table_still_returns_points() {
function query_session_scatter_with_missing_agent_row_keeps_session_without_filter (line 6556) | fn query_session_scatter_with_missing_agent_row_keeps_session_without_fi...
function query_session_scatter_normalizes_trimmed_agent_filter_and_agent_slug (line 6567) | fn query_session_scatter_normalizes_trimmed_agent_filter_and_agent_slug() {
function query_session_scatter_normalizes_trimmed_local_source_ids (line 6584) | fn query_session_scatter_normalizes_trimmed_local_source_ids() {
function query_session_scatter_matches_blank_remote_source_id_via_origin_host (line 6602) | fn query_session_scatter_matches_blank_remote_source_id_via_origin_host() {
function query_session_scatter_falls_back_to_token_usage_when_mm_tokens_missing (line 6623) | fn query_session_scatter_falls_back_to_token_usage_when_mm_tokens_missin...
function query_session_scatter_aggregates_duplicate_token_usage_rows_per_message (line 6641) | fn query_session_scatter_aggregates_duplicate_token_usage_rows_per_messa...
function query_session_scatter_uses_max_token_usage_total_for_duplicate_rows_per_message (line 6672) | fn query_session_scatter_uses_max_token_usage_total_for_duplicate_rows_p...
function query_session_scatter_falls_back_to_conversation_rollup_when_detailed_tokens_are_sparse (line 6713) | fn query_session_scatter_falls_back_to_conversation_rollup_when_detailed...
function query_session_scatter_uses_message_metrics_timestamp_when_message_created_at_missing (line 6742) | fn query_session_scatter_uses_message_metrics_timestamp_when_message_cre...
function query_session_scatter_uses_token_usage_timestamp_when_message_created_at_missing (line 6775) | fn query_session_scatter_uses_token_usage_timestamp_when_message_created...
function query_cost_timeseries_deduplicates_duplicate_token_usage_rows (line 6807) | fn query_cost_timeseries_deduplicates_duplicate_token_usage_rows() {
function query_session_scatter_with_api_source_column_preserves_legacy_mm_rows (line 6851) | fn query_session_scatter_with_api_source_column_preserves_legacy_mm_rows...
function query_breakdown_with_agent_filter (line 6873) | fn query_breakdown_with_agent_filter() {
function metric_display_roundtrip (line 6888) | fn metric_display_roundtrip() {
function dim_display_roundtrip (line 6895) | fn dim_display_roundtrip() {
function metric_rollup_column_coverage_pct_is_none (line 6903) | fn metric_rollup_column_coverage_pct_is_none() {
function metric_rollup_column_api_total_is_some (line 6908) | fn metric_rollup_column_api_total_is_some() {
function query_cost_timeseries_returns_cost_data (line 6917) | fn query_cost_timeseries_returns_cost_data() {
function query_cost_timeseries_totals_match_bucket_sums (line 6934) | fn query_cost_timeseries_totals_match_bucket_sums() {
function query_tokens_timeseries_source_filter_matches_blank_remote_usage_daily_source_via_origin_host (line 6948) | fn query_tokens_timeseries_source_filter_matches_blank_remote_usage_dail...
function query_tokens_timeseries_subday_filter_excludes_same_day_rollup_rows_without_raw_matches (line 6982) | fn query_tokens_timeseries_subday_filter_excludes_same_day_rollup_rows_w...
function query_tokens_timeseries_uses_legacy_second_message_metrics_timestamps_for_exact_filters (line 7012) | fn query_tokens_timeseries_uses_legacy_second_message_metrics_timestamps...
function query_cost_timeseries_source_filter_matches_blank_remote_token_daily_stats_source_via_origin_host (line 7042) | fn query_cost_timeseries_source_filter_matches_blank_remote_token_daily_...
function query_cost_timeseries_subday_filter_excludes_same_day_rollup_rows_without_raw_matches (line 7075) | fn query_cost_timeseries_subday_filter_excludes_same_day_rollup_rows_wit...
function query_cost_timeseries_uses_legacy_second_token_usage_timestamps_for_exact_filters (line 7112) | fn query_cost_timeseries_uses_legacy_second_token_usage_timestamps_for_e...
function query_cost_timeseries_hour_group_uses_token_usage_hour_buckets (line 7151) | fn query_cost_timeseries_hour_group_uses_token_usage_hour_buckets() {
function query_cost_timeseries_missing_table_returns_empty (line 7183) | fn query_cost_timeseries_missing_table_returns_empty() {
function query_breakdown_agent_with_cost_metric_normalizes_trimmed_agent_slug (line 7194) | fn query_breakdown_agent_with_cost_metric_normalizes_trimmed_agent_slug() {
function query_breakdown_agent_with_cost_metric_uses_track_b (line 7214) | fn query_breakdown_agent_with_cost_metric_uses_track_b() {
function query_breakdown_workspace_with_cost_metric_uses_track_a_zero_values (line 7230) | fn query_breakdown_workspace_with_cost_metric_uses_track_a_zero_values() {
function query_breakdown_model_with_cost_metric_orders_by_cost (line 7248) | fn query_breakdown_model_with_cost_metric_orders_by_cost() {
function query_breakdown_model_content_est_total_uses_content_chars (line 7260) | fn query_breakdown_model_content_est_total_uses_content_chars() {
function query_breakdown_model_coverage_pct_is_derived (line 7274) | fn query_breakdown_model_coverage_pct_is_derived() {
function query_breakdown_model_plan_count_is_zero_on_track_b (line 7284) | fn query_breakdown_model_plan_count_is_zero_on_track_b() {
FILE: src/analytics/types.rs
type AnalyticsError (line 16) | pub enum AnalyticsError {
type AnalyticsResult (line 26) | pub type AnalyticsResult<T> = std::result::Result<T, AnalyticsError>;
type GroupBy (line 35) | pub enum GroupBy {
method as_str (line 45) | pub fn as_str(self) -> &'static str {
method label (line 55) | pub fn label(self) -> &'static str {
method next (line 65) | pub fn next(self) -> Self {
method prev (line 75) | pub fn prev(self) -> Self {
method fmt (line 86) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
type SourceFilter (line 97) | pub enum SourceFilter {
type AnalyticsFilter (line 114) | pub struct AnalyticsFilter {
type Dim (line 134) | pub enum Dim {
method as_str (line 143) | pub fn as_str(self) -> &'static str {
method fmt (line 154) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
type Metric (line 162) | pub enum Metric {
method as_str (line 187) | pub fn as_str(self) -> &'static str {
method rollup_column (line 207) | pub fn rollup_column(&self) -> Option<&'static str> {
method fmt (line 226) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
type UsageBucket (line 242) | pub struct UsageBucket {
method merge (line 267) | pub fn merge(&mut self, other: &UsageBucket) {
method to_json (line 291) | pub fn to_json(&self, bucket_key: &str) -> serde_json::Value {
type TimeseriesResult (line 342) | pub struct TimeseriesResult {
method to_cli_json (line 359) | pub fn to_cli_json(&self) -> serde_json::Value {
type BreakdownRow (line 387) | pub struct BreakdownRow {
method to_json (line 400) | pub fn to_json(&self) -> serde_json::Value {
type BreakdownResult (line 416) | pub struct BreakdownResult {
method to_cli_json (line 431) | pub fn to_cli_json(&self) -> serde_json::Value {
type ToolRow (line 452) | pub struct ToolRow {
method to_json (line 468) | pub fn to_json(&self) -> serde_json::Value {
type ToolReport (line 481) | pub struct ToolReport {
method to_cli_json (line 496) | pub fn to_cli_json(&self) -> serde_json::Value {
type SessionScatterPoint (line 526) | pub struct SessionScatterPoint {
type TableInfo (line 543) | pub struct TableInfo {
method to_json (line 553) | pub fn to_json(&self) -> serde_json::Value {
type CoverageInfo (line 567) | pub struct CoverageInfo {
type DriftInfo (line 577) | pub struct DriftInfo {
type DriftSignal (line 585) | pub struct DriftSignal {
method to_json (line 592) | fn to_json(&self) -> serde_json::Value {
type StatusResult (line 602) | pub struct StatusResult {
method to_json (line 611) | pub fn to_json(&self) -> serde_json::Value {
type UnpricedModel (line 645) | pub struct UnpricedModel {
type UnpricedModelsReport (line 656) | pub struct UnpricedModelsReport {
type DerivedMetrics (line 671) | pub struct DerivedMetrics {
constant GROUP_BY_CASES (line 690) | const GROUP_BY_CASES: [(GroupBy, &str, &str, GroupBy, GroupBy); 4] = [
function analytics_error_display_and_sources_are_preserved (line 716) | fn analytics_error_display_and_sources_are_preserved() {
function usage_bucket_merge_is_additive (line 730) | fn usage_bucket_merge_is_additive() {
function usage_bucket_to_json_shape (line 765) | fn usage_bucket_to_json_shape() {
function group_by_display (line 791) | fn group_by_display() {
function group_by_next_cycles_through_all (line 799) | fn group_by_next_cycles_through_all() {
function group_by_prev_cycles_through_all (line 806) | fn group_by_prev_cycles_through_all() {
function group_by_label (line 813) | fn group_by_label() {
function dim_as_str_matches_display_for_all_variants (line 820) | fn dim_as_str_matches_display_for_all_variants() {
function metric_as_str_matches_display_for_all_variants (line 835) | fn metric_as_str_matches_display_for_all_variants() {
function drift_signal_to_json_shape (line 858) | fn drift_signal_to_json_shape() {
function default_filter_is_unfiltered (line 873) | fn default_filter_is_unfiltered() {
FILE: src/analytics/validate.rs
type Severity (line 27) | pub enum Severity {
type Check (line 35) | pub struct Check {
type DriftEntry (line 46) | pub struct DriftEntry {
type SamplingMeta (line 59) | pub struct SamplingMeta {
type ReportMeta (line 67) | pub struct ReportMeta {
type ValidationReport (line 75) | pub struct ValidationReport {
method all_ok (line 83) | pub fn all_ok(&self) -> bool {
method count_failures (line 88) | pub fn count_failures(&self, sev: Severity) -> usize {
method to_json (line 96) | pub fn to_json(&self) -> serde_json::Value {
type RepairKind (line 104) | pub enum RepairKind {
type RepairDecision (line 123) | pub struct RepairDecision {
type RepairPlan (line 132) | pub struct RepairPlan {
function build_repair_plan (line 142) | pub fn build_repair_plan(report: &ValidationReport) -> RepairPlan {
function classify_repair_kind (line 177) | fn classify_repair_kind(check: &Check, report: &ValidationReport) -> Rep...
function repair_reason (line 221) | fn repair_reason(kind: RepairKind) -> &'static str {
type ValidateConfig (line 244) | pub struct ValidateConfig {
method deep (line 266) | pub fn deep() -> Self {
method default (line 255) | fn default() -> Self {
function run_validation (line 279) | pub fn run_validation(conn: &Connection, config: &ValidateConfig) -> Val...
function query_executes (line 327) | fn query_executes(conn: &Connection, sql: &str) -> Result<(), String> {
function query_exec_error_check (line 333) | fn query_exec_error_check(id: &str, details: String, suggested_action: &...
function validate_track_a (line 350) | fn validate_track_a(conn: &Connection, config: &ValidateConfig) -> (Vec<...
function validate_track_b (line 578) | fn validate_track_b(conn: &Connection, config: &ValidateConfig) -> (Vec<...
function validate_cross_track_drift (line 752) | fn validate_cross_track_drift(
function validate_non_negative_counters (line 930) | fn validate_non_negative_counters(conn: &Connection) -> Vec<Check> {
type PerfMeasurement (line 1084) | pub struct PerfMeasurement {
function perf_query_guardrail (line 1095) | pub fn perf_query_guardrail(conn: &Connection) -> PerfMeasurement {
function perf_breakdown_guardrail (line 1139) | pub fn perf_breakdown_guardrail(conn: &Connection) -> PerfMeasurement {
function setup_track_a_fixture (line 1193) | fn setup_track_a_fixture() -> Connection {
function setup_both_tracks_fixture (line 1263) | fn setup_both_tracks_fixture() -> Connection {
function consistent_track_a_passes (line 1346) | fn consistent_track_a_passes() {
function drifted_track_a_detects_mismatch (line 1364) | fn drifted_track_a_detects_mismatch() {
function drifted_track_a_message_count_detected (line 1384) | fn drifted_track_a_message_count_detected() {
function consistent_both_tracks_passes (line 1403) | fn consistent_both_tracks_passes() {
function cross_track_drift_detected (line 1417) | fn cross_track_drift_detected() {
function negative_counters_detected (line 1443) | fn negative_counters_detected() {
function coverage_exceeding_message_count_detected (line 1462) | fn coverage_exceeding_message_count_detected() {
function empty_database_reports_missing_tables (line 1483) | fn empty_database_reports_missing_tables() {
function sample_mode_limits_buckets (line 1498) | fn sample_mode_limits_buckets() {
function deep_mode_scans_all (line 1512) | fn deep_mode_scans_all() {
function report_json_shape (line 1521) | fn report_json_shape() {
function perf_query_guardrail_completes (line 1534) | fn perf_query_guardrail_completes() {
function perf_breakdown_guardrail_completes (line 1545) | fn perf_breakdown_guardrail_completes() {
function perf_query_guardrail_reports_query_failure (line 1556) | fn perf_query_guardrail_reports_query_failure() {
function perf_breakdown_guardrail_reports_query_failure (line 1568) | fn perf_breakdown_guardrail_reports_query_failure() {
function malformed_track_a_schema_reports_query_failure (line 1580) | fn malformed_track_a_schema_reports_query_failure() {
function malformed_track_b_schema_reports_query_failure (line 1601) | fn malformed_track_b_schema_reports_query_failure() {
function malformed_cross_track_schema_reports_query_failure (line 1623) | fn malformed_cross_track_schema_reports_query_failure() {
function repair_plan_marks_track_a_failures_fixable (line 1643) | fn repair_plan_marks_track_a_failures_fixable() {
function repair_plan_marks_track_b_data_drift_as_rebuild_track_b (line 1666) | fn repair_plan_marks_track_b_data_drift_as_rebuild_track_b() {
function repair_plan_marks_track_b_tables_missing_as_unavailable (line 1694) | fn repair_plan_marks_track_b_tables_missing_as_unavailable() {
function repair_plan_marks_track_a_only_drift_as_fixable (line 1721) | fn repair_plan_marks_track_a_only_drift_as_fixable() {
FILE: src/bakeoff.rs
constant ELIGIBILITY_CUTOFF (line 7) | pub const ELIGIBILITY_CUTOFF: &str = "2025-11-01";
constant COLD_START_MAX_MS (line 12) | pub const COLD_START_MAX_MS: u64 = 2000;
constant WARM_P99_MAX_MS (line 14) | pub const WARM_P99_MAX_MS: u64 = 250;
constant MEMORY_MAX_MB (line 16) | pub const MEMORY_MAX_MB: u64 = 300;
constant QUALITY_MIN_RATIO (line 18) | pub const QUALITY_MIN_RATIO: f64 = 0.80;
type ModelMetadata (line 23) | pub struct ModelMetadata {
method is_eligible (line 42) | pub fn is_eligible(&self) -> bool {
type ValidationReport (line 52) | pub struct ValidationReport {
method check_criteria (line 68) | pub fn check_criteria(&self) -> bool {
method meets_quality_threshold (line 75) | pub fn meets_quality_threshold(&self, baseline: &ValidationReport) -> ...
type LatencyStats (line 85) | pub struct LatencyStats {
method from_durations (line 97) | pub fn from_durations(durations: &[Duration]) -> Self {
function percentile (line 129) | fn percentile(sorted: &[u64], p: usize) -> u64 {
type LatencyTimer (line 138) | pub struct LatencyTimer {
method new (line 143) | pub fn new() -> Self {
method time (line 150) | pub fn time<F, T>(&mut self, f: F) -> T
method stats (line 161) | pub fn stats(&self) -> LatencyStats {
method clear (line 166) | pub fn clear(&mut self) {
method default (line 172) | fn default() -> Self {
type BakeoffComparison (line 179) | pub struct BakeoffComparison {
method find_winner (line 194) | pub fn find_winner(&self) -> Option<&ValidationReport> {
function ndcg_at_k (line 215) | pub fn ndcg_at_k(relevances: &[f64], k: usize, all_ground_truth: &[f64])...
function dcg_at_k (line 232) | fn dcg_at_k(relevances: &[f64], k: usize) -> f64 {
type Document (line 250) | pub struct Document {
type RelevanceJudgment (line 259) | pub struct RelevanceJudgment {
type QueryWithJudgments (line 268) | pub struct QueryWithJudgments {
type EvaluationCorpus (line 277) | pub struct EvaluationCorpus {
method new (line 288) | pub fn new(name: &str) -> Self {
method add_document (line 297) | pub fn add_document(&mut self, id: &str, content: &str) {
method add_query (line 305) | pub fn add_query(&mut self, query: &str, judgments: Vec<(&str, f64)>) {
method compute_hash (line 319) | pub fn compute_hash(&self) -> String {
method code_search_sample (line 341) | pub fn code_search_sample() -> Self {
type QueryEvalResult (line 433) | pub struct QueryEvalResult {
type EvaluationConfig (line 446) | pub struct EvaluationConfig {
method default (line 456) | fn default() -> Self {
function cosine_similarity (line 466) | pub fn cosine_similarity(a: &[f32], b: &[f32]) -> f32 {
type EvaluationHarness (line 480) | pub struct EvaluationHarness {
method new (line 486) | pub fn new() -> Self {
method with_config (line 493) | pub fn with_config(config: EvaluationConfig) -> Self {
method evaluate (line 500) | pub fn evaluate<E: crate::search::embedder::Embedder>(
method run_comparison (line 651) | pub fn run_comparison<E: crate::search::embedder::Embedder>(
method default (line 709) | fn default() -> Self {
function format_comparison_table (line 715) | pub fn format_comparison_table(comparison: &BakeoffComparison) -> String {
function ndcg_perfect_is_one (line 775) | fn ndcg_perfect_is_one() {
function ndcg_zero_when_no_relevance (line 782) | fn ndcg_zero_when_no_relevance() {
function ndcg_handles_partial_relevance (line 789) | fn ndcg_handles_partial_relevance() {
function report_roundtrip (line 797) | fn report_roundtrip() {
function model_eligibility_by_date (line 817) | fn model_eligibility_by_date() {
function latency_stats_from_durations (line 853) | fn latency_stats_from_durations() {
function latency_stats_empty (line 871) | fn latency_stats_empty() {
function latency_timer_records_samples (line 878) | fn latency_timer_records_samples() {
function report_meets_criteria (line 890) | fn report_meets_criteria() {
function report_quality_threshold (line 926) | fn report_quality_threshold() {
function bakeoff_comparison_finds_winner (line 957) | fn bakeoff_comparison_finds_winner() {
function corpus_creation_and_hash (line 1012) | fn corpus_creation_and_hash() {
function evaluation_rejects_empty_query_set (line 1036) | fn evaluation_rejects_empty_query_set() {
function sample_corpus_is_valid (line 1058) | fn sample_corpus_is_valid() {
function cosine_similarity_identical_vectors (line 1074) | fn cosine_similarity_identical_vectors() {
function cosine_similarity_orthogonal_vectors (line 1081) | fn cosine_similarity_orthogonal_vectors() {
function cosine_similarity_opposite_vectors (line 1089) | fn cosine_similarity_opposite_vectors() {
function cosine_similarity_different_lengths (line 1097) | fn cosine_similarity_different_lengths() {
function evaluation_config_defaults (line 1105) | fn evaluation_config_defaults() {
function harness_creation (line 1113) | fn harness_creation() {
function corpus_roundtrip (line 1127) | fn corpus_roundtrip() {
function query_eval_result_roundtrip (line 1135) | fn query_eval_result_roundtrip() {
function format_comparison_table_output (line 1149) | fn format_comparison_table_output() {
FILE: src/bin/cass-pages-perf-bundle.rs
type Preset (line 15) | enum Preset {
method message_target (line 23) | fn message_target(self) -> usize {
type Args (line 38) | struct Args {
function main (line 88) | fn main() -> Result<()> {
function generate_db (line 190) | fn generate_db(
function build_filler (line 264) | fn build_filler(target_len: usize) -> String {
function empty_json (line 276) | fn empty_json() -> Value {
FILE: src/bookmarks.rs
type Bookmark (line 16) | pub struct Bookmark {
method new (line 43) | pub fn new(
method with_note (line 67) | pub fn with_note(mut self, note: impl Into<String>) -> Self {
method with_tags (line 73) | pub fn with_tags(mut self, tags: impl Into<String>) -> Self {
method with_line (line 79) | pub fn with_line(mut self, line: usize) -> Self {
method with_snippet (line 85) | pub fn with_snippet(mut self, snippet: impl Into<String>) -> Self {
method tag_list (line 91) | pub fn tag_list(&self) -> Vec<&str> {
method has_tag (line 100) | pub fn has_tag(&self, tag: &str) -> bool {
type BookmarkStore (line 106) | pub struct BookmarkStore {
method open (line 112) | pub fn open(path: &Path) -> Result<Self> {
method open_default (line 135) | pub fn open_default() -> Result<Self> {
method add (line 141) | pub fn add(&self, bookmark: &Bookmark) -> Result<i64> {
method update (line 166) | pub fn update(&self, bookmark: &Bookmark) -> Result<bool> {
method remove (line 184) | pub fn remove(&self, id: i64) -> Result<bool> {
method get (line 192) | pub fn get(&self, id: i64) -> Result<Option<Bookmark>> {
method list (line 205) | pub fn list(&self, tag_filter: Option<&str>) -> Result<Vec<Bookmark>> {
method search (line 223) | pub fn search(&self, query: &str) -> Result<Vec<Bookmark>> {
method all_tags (line 244) | pub fn all_tags(&self) -> Result<Vec<String>> {
method count (line 258) | pub fn count(&self) -> Result<usize> {
method is_bookmarked (line 268) | pub fn is_bookmarked(&self, source_path: &str, line_number: Option<usi...
method export_json (line 279) | pub fn export_json(&self) -> Result<String> {
method import_json (line 285) | pub fn import_json(&self, json: &str) -> Result<usize> {
function row_to_bookmark (line 336) | fn row_to_bookmark(row: &frankensqlite::Row) -> Result<Bookmark, franken...
function default_bookmarks_path (line 353) | pub fn default_bookmarks_path() -> PathBuf {
constant SCHEMA (line 358) | const SCHEMA: &str = r"
function line_number_to_db (line 378) | fn line_number_to_db(line_number: Option<usize>) -> Result<Option<i64>> {
function line_number_from_db (line 384) | fn line_number_from_db(line_number: Option<i64>) -> Option<usize> {
function current_timestamp (line 388) | fn current_timestamp() -> i64 {
function test_store (line 403) | fn test_store() -> (BookmarkStore, tempfile::TempDir) {
function assert_single_search_path (line 410) | fn assert_single_search_path(store: &BookmarkStore, query: &str, expecte...
function test_create_bookmark (line 425) | fn test_create_bookmark() {
function test_add_and_get (line 439) | fn test_add_and_get() {
function test_list_and_count (line 453) | fn test_list_and_count() {
function test_remove (line 471) | fn test_remove() {
function test_tag_filter (line 483) | fn test_tag_filter() {
function test_search (line 501) | fn test_search() {
function test_search_treats_like_metacharacters_literally (line 522) | fn test_search_treats_like_metacharacters_literally() {
function test_is_bookmarked (line 559) | fn test_is_bookmarked() {
function test_negative_line_number_from_db_is_sanitized (line 572) | fn test_negative_line_number_from_db_is_sanitized() {
function test_add_rejects_line_number_above_i64_max (line 601) | fn test_add_rejects_line_number_above_i64_max() {
function test_export_import (line 617) | fn test_export_import() {
function test_import_deduplicates_null_and_specific_line_numbers_separately (line 635) | fn test_import_deduplicates_null_and_specific_line_numbers_separately() {
FILE: src/connectors/mod.rs
type CodexScanPreflight (line 51) | pub struct CodexScanPreflight {
function preflight_codex_explicit_file_roots (line 68) | pub fn preflight_codex_explicit_file_roots(
function codex_explicit_file_roots_for_root (line 105) | fn codex_explicit_file_roots_for_root(
function is_under_codex_dir (line 140) | fn is_under_codex_dir(path: &Path) -> bool {
function codex_sessions_dir (line 149) | fn codex_sessions_dir(home: &Path) -> PathBuf {
function collect_codex_rollout_files (line 158) | fn collect_codex_rollout_files(sessions: &Path, since_ts: Option<i64>) -...
function is_codex_rollout_file (line 187) | fn is_codex_rollout_file(path: &Path) -> bool {
FILE: src/crash_replay.rs
constant CRASH_REPLAY_SCHEMA_VERSION (line 16) | pub const CRASH_REPLAY_SCHEMA_VERSION: &str = "1";
type CrashReplayCheckpoint (line 19) | pub struct CrashReplayCheckpoint {
method new (line 26) | pub fn new(ordinal: u32, id: impl Into<String>, description: impl Into...
type CrashReplayPhase (line 37) | pub enum CrashReplayPhase {
type CrashReplayEvent (line 45) | pub struct CrashReplayEvent {
method ok (line 53) | fn ok(
method failed (line 66) | fn failed(
type CrashReplayInvariant (line 81) | pub struct CrashReplayInvariant {
method passed (line 89) | pub fn passed(
method failed (line 102) | pub fn failed(
type CrashReplayVerdict (line 118) | pub enum CrashReplayVerdict {
type CrashReplayReport (line 124) | pub struct CrashReplayReport {
method validate (line 135) | pub fn validate(&self) -> Result<(), CrashReplayValidationError> {
method save_json (line 253) | pub fn save_json(&self, path: &Path) -> Result<(), CrashReplayIoError> {
method load_json (line 266) | pub fn load_json(path: &Path) -> Result<Self, CrashReplayIoError> {
type CrashReplayError (line 275) | pub struct CrashReplayError {
method new (line 281) | pub fn new(action: impl Into<String>, detail: impl Into<String>) -> Se...
method from_error (line 288) | pub fn from_error(action: impl Into<String>, error: impl fmt::Display)...
method fmt (line 294) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type CrashReplayValidationError (line 302) | pub enum CrashReplayValidationError {
method fmt (line 360) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
type CrashReplayIoError (line 450) | pub enum CrashReplayIoError {
method fmt (line 457) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
method from (line 477) | fn from(err: io::Error) -> Self {
method from (line 483) | fn from(err: serde_json::Error) -> Self {
method from (line 489) | fn from(err: CrashReplayValidationError) -> Self {
method source (line 467) | fn source(&self) -> Option<&(dyn Error + 'static)> {
function replay_named_checkpoints (line 494) | pub fn replay_named_checkpoints<S, MakeState, Advance, Restart, Check>(
type SemanticReplayState (line 623) | struct SemanticReplayState {
method data_dir (line 629) | fn data_dir(&self) -> &Path {
function semantic_checkpoint (line 634) | fn semantic_checkpoint() -> BuildCheckpoint {
function semantic_artifact (line 649) | fn semantic_artifact() -> ArtifactRecord {
function semantic_manifest_state_machine_replays_checkpoint_and_publish_crashes (line 669) | fn semantic_manifest_state_machine_replays_checkpoint_and_publish_crashe...
type PolicyReplayState (line 788) | struct PolicyReplayState {
function policy_pipeline_fixture (line 795) | fn policy_pipeline_fixture(mode: &str, reason: &str) -> Value {
function policy_registry_state_machine_replays_deterministic_controller_snapshots (line 815) | fn policy_registry_state_machine_replays_deterministic_controller_snapsh...
type LexicalPublishFixtureState (line 939) | struct LexicalPublishFixtureState {
method new (line 947) | fn new() -> Result<Self, CrashReplayError> {
method write_staged (line 963) | fn write_staged(&self) -> Result<(), CrashReplayError> {
method park_live (line 968) | fn park_live(&self) -> Result<(), CrashReplayError> {
method publish_staged (line 973) | fn publish_staged(&self) -> Result<(), CrashReplayError> {
function lexical_publish_fixture_replays_park_and_swap_crash_windows (line 980) | fn lexical_publish_fixture_replays_park_and_swap_crash_windows() {
type BackupRecoveryFixtureState (line 1078) | struct BackupRecoveryFixtureState {
method new (line 1086) | fn new() -> Result<Self, CrashReplayError> {
method copy_main (line 1105) | fn copy_main(&self) -> Result<(), CrashReplayError> {
method copy_wal_and_manifest (line 1111) | fn copy_wal_and_manifest(&self) -> Result<(), CrashReplayError> {
function backup_recovery_fixture_replays_incomplete_and_complete_bundle_crashes (line 1130) | fn backup_recovery_fixture_replays_incomplete_and_complete_bundle_crashe...
function crash_replay_report_round_trips_as_artifact_manifest (line 1265) | fn crash_replay_report_round_trips_as_artifact_manifest()
function crash_replay_validation_rejects_untrustworthy_clean_reports (line 1300) | fn crash_replay_validation_rejects_untrustworthy_clean_reports() {
FILE: src/daemon/client.rs
function connection_not_established (line 27) | fn connection_not_established() -> DaemonError {
function unexpected_response (line 31) | fn unexpected_response(response: Response) -> DaemonError {
type DaemonClientConfig (line 37) | pub struct DaemonClientConfig {
method from_env (line 64) | pub fn from_env() -> Self {
method default (line 51) | fn default() -> Self {
type UdsDaemonClient (line 96) | pub struct UdsDaemonClient {
method new (line 106) | pub fn new(config: DaemonClientConfig) -> Self {
method with_defaults (line 117) | pub fn with_defaults() -> Self {
method connect (line 122) | pub fn connect(&self) -> Result<(), DaemonError> {
method try_connect (line 163) | fn try_connect(&self) -> std::io::Result<UnixStream> {
method spawn_daemon (line 171) | fn spawn_daemon(&self) -> Result<(), DaemonError> {
method wait_for_spawned_daemon_ready (line 241) | fn wait_for_spawned_daemon_ready(&self, child: &mut Child) -> Result<(...
method get_connection_locked (line 271) | fn get_connection_locked(
method send_request (line 298) | fn send_request(&self, request: Request) -> Result<Response, DaemonErr...
method health (line 403) | pub fn health(&self) -> Result<HealthStatus, DaemonError> {
method shutdown (line 414) | pub fn shutdown(&self) -> Result<(), DaemonError> {
method submit_embedding_job (line 426) | pub fn submit_embedding_job(&self, config: EmbeddingJobConfig) -> Resu...
method embedding_job_status (line 441) | pub fn embedding_job_status(&self, db_path: &str) -> Result<EmbeddingJ...
method cancel_embedding_job (line 452) | pub fn cancel_embedding_job(
method id (line 469) | fn id(&self) -> &str {
method is_available (line 473) | fn is_available(&self) -> bool {
method embed (line 496) | fn embed(&self, text: &str, request_id: &str) -> Result<Vec<f32>, Daemon...
method embed_batch (line 531) | fn embed_batch(&self, texts: &[&str], request_id: &str) -> Result<Vec<Ve...
method rerank (line 565) | fn rerank(
function remove_stale_daemon_socket (line 606) | fn remove_stale_daemon_socket(socket_path: &std::path::Path) -> Result<(...
function connect_or_spawn (line 634) | pub fn connect_or_spawn() -> Result<Arc<UdsDaemonClient>, DaemonError> {
function try_connect (line 641) | pub fn try_connect() -> Option<Arc<UdsDaemonClient>> {
function test_config_defaults (line 656) | fn test_config_defaults() {
function test_default_socket_path (line 664) | fn test_default_socket_path() {
function test_client_not_available_initially (line 672) | fn test_client_not_available_initially() {
function test_request_counter_increments (line 684) | fn test_request_counter_increments() {
function connection_not_established_error_text_is_stable (line 692) | fn connection_not_established_error_text_is_stable() {
function unexpected_response_error_text_is_stable (line 700) | fn unexpected_response_error_text_is_stable() {
function test_spawn_guard_lock_path_is_distinct_from_run_lock (line 711) | fn test_spawn_guard_lock_path_is_distinct_from_run_lock() {
function stale_socket_cleanup_refuses_to_remove_regular_file (line 724) | fn stale_socket_cleanup_refuses_to_remove_regular_file() {
function stale_socket_cleanup_removes_public_socket_symlink (line 744) | fn stale_socket_cleanup_removes_public_socket_symlink() {
FILE: src/daemon/core.rs
type BoundDaemonSocket (line 30) | struct BoundDaemonSocket {
function create_owner_only_dir_all (line 36) | fn create_owner_only_dir_all(path: &Path) -> std::io::Result<()> {
function parent_dir_is_owner_only (line 45) | fn parent_dir_is_owner_only(path: &Path) -> std::io::Result<bool> {
function private_runtime_dir_for_socket (line 61) | fn private_runtime_dir_for_socket(socket_path: &Path) -> std::io::Result...
function remove_stale_socket_path (line 76) | fn remove_stale_socket_path(path: &Path) -> std::io::Result<()> {
function bind_owner_only_unix_listener (line 97) | fn bind_owner_only_unix_listener(socket_path: &Path) -> std::io::Result<...
function cleanup_bound_socket (line 131) | fn cleanup_bound_socket(public_path: &Path, bind_path: &Path) {
type DaemonConfig (line 140) | pub struct DaemonConfig {
method from_env (line 173) | pub fn from_env() -> Self {
method default (line 158) | fn default() -> Self {
type ModelDaemon (line 221) | pub struct ModelDaemon {
method new (line 235) | pub fn new(config: DaemonConfig, models: ModelManager) -> Self {
method with_defaults (line 250) | pub fn with_defaults(data_dir: &Path) -> Self {
method uptime_secs (line 257) | pub fn uptime_secs(&self) -> u64 {
method should_shutdown_idle (line 262) | fn should_shutdown_idle(&self) -> bool {
method touch_activity (line 271) | fn touch_activity(&self) {
method memory_limit_exceeded (line 276) | fn memory_limit_exceeded(&self) -> bool {
method init_worker (line 285) | fn init_worker(&self) {
method run (line 306) | pub fn run(&self) -> std::io::Result<()> {
method read_frame_bytes_with_shutdown (line 445) | fn read_frame_bytes_with_shutdown(
method handle_connection (line 503) | fn handle_connection(&self, mut stream: UnixStream) -> std::io::Result...
method handle_request (line 586) | fn handle_request(&self, request_id: String, request: Request) -> Resp...
method request_shutdown (line 791) | pub fn request_shutdown(&self) {
function test_data_dir (line 802) | fn test_data_dir() -> PathBuf {
function test_config_defaults (line 807) | fn test_config_defaults() {
function test_daemon_uptime (line 815) | fn test_daemon_uptime() {
function test_activity_tracking (line 829) | fn test_activity_tracking() {
function test_shutdown_flag (line 843) | fn test_shutdown_flag() {
function test_idle_timeout_disabled_by_default (line 854) | fn test_idle_timeout_disabled_by_default() {
function test_daemon_run_lock_path_is_stable (line 864) | fn test_daemon_run_lock_path_is_stable() {
function test_owner_only_bind_uses_private_runtime_dir_for_public_parent (line 873) | fn test_owner_only_bind_uses_private_runtime_dir_for_public_parent() {
function handle_connection_returns_promptly_when_shutdown_set_during_idle_read (line 935) | fn handle_connection_returns_promptly_when_shutdown_set_during_idle_read...
function handle_connection_returns_promptly_when_shutdown_set_during_partial_payload_read (line 1002) | fn handle_connection_returns_promptly_when_shutdown_set_during_partial_p...
FILE: src/daemon/mod.rs
function daemon_run_lock_path (line 56) | pub(crate) fn daemon_run_lock_path(socket_path: &Path) -> PathBuf {
function daemon_spawn_guard_lock_path (line 60) | pub(crate) fn daemon_spawn_guard_lock_path(socket_path: &Path) -> PathBuf {
FILE: src/daemon/models.rs
type ModelManager (line 19) | pub struct ModelManager {
method new (line 30) | pub fn new(data_dir: &Path) -> Self {
method is_ready (line 42) | pub fn is_ready(&self) -> bool {
method embedder_id (line 47) | pub fn embedder_id(&self) -> String {
method embedder_name (line 56) | pub fn embedder_name(&self) -> String {
method embedder_dimension (line 61) | pub fn embedder_dimension(&self) -> usize {
method embedder_loaded (line 70) | pub fn embedder_loaded(&self) -> bool {
method reranker_id (line 75) | pub fn reranker_id(&self) -> String {
method reranker_name (line 84) | pub fn reranker_name(&self) -> String {
method reranker_loaded (line 89) | pub fn reranker_loaded(&self) -> bool {
method warm_embedder (line 94) | pub fn warm_embedder(&self) -> EmbedderResult<()> {
method warm_reranker (line 129) | pub fn warm_reranker(&self) -> RerankerResult<()> {
method embed_batch (line 160) | pub fn embed_batch(&self, texts: &[String]) -> EmbedderResult<Vec<Vec<...
method embed (line 180) | pub fn embed(&self, text: &str) -> EmbedderResult<Vec<f32>> {
method rerank (line 198) | pub fn rerank(&self, query: &str, documents: &[String]) -> RerankerRes...
method unload_all (line 217) | pub fn unload_all(&self) {
function test_data_dir (line 230) | fn test_data_dir() -> PathBuf {
function model_fixture_dir (line 235) | fn model_fixture_dir() -> PathBuf {
function test_model_manager_creation (line 241) | fn test_model_manager_creation() {
function test_embedder_fallback_on_missing_model (line 249) | fn test_embedder_fallback_on_missing_model() {
function test_embedder_dimension (line 263) | fn test_embedder_dimension() {
function test_unload_all (line 270) | fn test_unload_all() {
function test_embed_with_fallback (line 283) | fn test_embed_with_fallback() {
FILE: src/daemon/protocol.rs
constant PROTOCOL_VERSION (line 12) | pub const PROTOCOL_VERSION: u32 = 1;
function default_socket_path (line 15) | pub fn default_socket_path() -> std::path::PathBuf {
type Request (line 33) | pub enum Request {
type Response (line 78) | pub enum Response {
type HealthStatus (line 109) | pub struct HealthStatus {
type EmbedResponse (line 122) | pub struct EmbedResponse {
type RerankResponse (line 133) | pub struct RerankResponse {
type StatusResponse (line 144) | pub struct StatusResponse {
type ModelInfo (line 161) | pub struct ModelInfo {
type ErrorResponse (line 176) | pub struct ErrorResponse {
type ErrorCode (line 189) | pub enum ErrorCode {
type EmbeddingJobInfo (line 208) | pub struct EmbeddingJobInfo {
type EmbeddingJobDetail (line 214) | pub struct EmbeddingJobDetail {
type FramedMessage (line 225) | pub struct FramedMessage<T> {
function new (line 235) | pub fn new(request_id: impl Into<String>, payload: T) -> Self {
function encode_message (line 245) | pub fn encode_message<T: Serialize>(msg: &FramedMessage<T>) -> Result<Ve...
function decode_message (line 256) | pub fn decode_message<T: for<'de> Deserialize<'de>>(
type EncodeError (line 264) | pub struct EncodeError(pub String);
type DecodeError (line 268) | pub struct DecodeError(pub String);
function test_encode_decode_health_request (line 275) | fn test_encode_decode_health_request() {
function test_protocol_error_display_strings_are_preserved (line 287) | fn test_protocol_error_display_strings_are_preserved() {
function test_encode_decode_embed_request (line 302) | fn test_encode_decode_embed_request() {
function test_encode_decode_rerank_request (line 323) | fn test_encode_decode_rerank_request() {
function test_encode_decode_health_response (line 349) | fn test_encode_decode_health_response() {
function test_encode_decode_error_response (line 370) | fn test_encode_decode_error_response() {
function test_default_socket_path (line 392) | fn test_default_socket_path() {
function test_wire_compatibility_embed_response (line 400) | fn test_wire_compatibility_embed_response() {
function test_wire_compatibility_rerank_response (line 422) | fn test_wire_compatibility_rerank_response() {
FILE: src/daemon/resource.rs
constant _SC_PAGESIZE (line 17) | pub const _SC_PAGESIZE: c_int = 30;
constant PRIO_PROCESS (line 18) | pub const PRIO_PROCESS: c_int = 0;
function sysconf (line 20) | pub fn sysconf(name: c_int) -> c_long;
function setpriority (line 21) | pub fn setpriority(which: c_int, who: c_uint, prio: c_int) -> c_int;
type ResourceMonitor (line 27) | pub struct ResourceMonitor {
method new (line 34) | pub fn new() -> Self {
method memory_usage (line 43) | pub fn memory_usage(&self) -> u64 {
method linux_memory_usage (line 56) | fn linux_memory_usage(&self) -> u64 {
method page_size (line 81) | fn page_size() -> u64 {
method apply_nice (line 91) | pub fn apply_nice(&self, nice_value: i32) -> bool {
method apply_ionice (line 142) | pub fn apply_ionice(&self, class: u32) -> bool {
method memory_usage_human (line 189) | pub fn memory_usage_human(&self) -> String {
function test_resource_monitor_creation (line 216) | fn test_resource_monitor_creation() {
function test_memory_usage (line 222) | fn test_memory_usage() {
function test_memory_usage_human (line 236) | fn test_memory_usage_human() {
function test_apply_nice_range (line 255) | fn test_apply_nice_range() {
function test_apply_ionice (line 275) | fn test_apply_ionice() {
function test_page_size (line 297) | fn test_page_size() {
function test_apply_nice_rejects_out_of_range (line 307) | fn test_apply_nice_rejects_out_of_range() {
function test_apply_ionice_rejects_invalid_class (line 314) | fn test_apply_ionice_rejects_invalid_class() {
FILE: src/daemon/worker.rs
constant HASH_EMBEDDER_MODEL (line 24) | const HASH_EMBEDDER_MODEL: &str = "hash";
constant DEFAULT_SEMANTIC_MODEL (line 25) | const DEFAULT_SEMANTIC_MODEL: &str = "minilm";
type EmbeddingJobConfig (line 29) | pub struct EmbeddingJobConfig {
method fast_pass_model (line 38) | fn fast_pass_model(&self) -> String {
method quality_pass_model (line 44) | fn quality_pass_model(&self) -> String {
method single_pass_model (line 50) | fn single_pass_model(&self) -> String {
type WorkerMessage (line 60) | pub enum WorkerMessage {
type EmbeddingWorkerHandle (line 74) | pub struct EmbeddingWorkerHandle {
method submit (line 83) | pub fn submit(&self, config: EmbeddingJobConfig) -> Result<(), String> {
method cancel (line 93) | pub fn cancel(&self, db_path: String, model_id: Option<String>) -> Res...
method shutdown (line 101) | pub fn shutdown(&self) -> Result<(), String> {
type EmbeddingWorker (line 109) | pub struct EmbeddingWorker {
method new (line 162) | pub fn new() -> (Self, EmbeddingWorkerHandle) {
method run (line 177) | pub fn run(self) {
method cancel_in_db (line 207) | fn cancel_in_db(db_path: &str, model_id: Option<&str>) -> anyhow::Resu...
method process_job (line 214) | fn process_job(&self, config: &EmbeddingJobConfig) -> anyhow::Result<(...
method build_passes (line 271) | fn build_passes(&self, config: &EmbeddingJobConfig) -> Vec<(String, bo...
method generate_embeddings_and_save (line 293) | fn generate_embeddings_and_save(
method load_existing_hashes (line 422) | fn load_existing_hashes(
type WorkerEmbedderKind (line 115) | enum WorkerEmbedderKind {
function resolve_embedder_kind (line 123) | fn resolve_embedder_kind(
function saturating_i64_from_usize (line 156) | fn saturating_i64_from_usize(raw: usize) -> i64 {
function build_pass_config (line 476) | fn build_pass_config(
function fast_embed_kind (line 490) | fn fast_embed_kind(model_name: &str, embedder_id: &str) -> WorkerEmbedde...
function test_worker_handle_clone (line 498) | fn test_worker_handle_clone() {
function test_job_config (line 509) | fn test_job_config() {
function test_build_passes_single (line 523) | fn test_build_passes_single() {
function test_build_passes_two_tier (line 533) | fn test_build_passes_two_tier() {
function test_build_passes_defaults (line 545) | fn test_build_passes_defaults() {
function test_message_id_from_db_rejects_negative_ids (line 555) | fn test_message_id_from_db_rejects_negative_ids() {
function test_saturating_u32_from_i64_clamps_bounds (line 562) | fn test_saturating_u32_from_i64_clamps_bounds() {
function test_saturating_i64_from_usize_clamps_overflow (line 570) | fn test_saturating_i64_from_usize_clamps_overflow() {
function test_resolve_embedder_kind_hash_aliases (line 580) | fn test_resolve_embedder_kind_hash_aliases() {
function test_resolve_embedder_kind_use_semantic_false_short_circuits_regardless_of_name (line 603) | fn test_resolve_embedder_kind_use_semantic_false_short_circuits_regardle...
function test_resolve_embedder_kind_semantic_aliases (line 626) | fn test_resolve_embedder_kind_semantic_aliases() {
function test_resolve_embedder_kind_registered_fastembed_models (line 642) | fn test_resolve_embedder_kind_registered_fastembed_models() {
function test_resolve_embedder_kind_rejects_unknown_semantic_model (line 654) | fn test_resolve_embedder_kind_rejects_unknown_semantic_model() {
FILE: src/doctor.rs
type DoctorCommandSurface (line 12) | pub(crate) enum DoctorCommandSurface {
method stable_name (line 62) | pub(crate) fn stable_name(self) -> &'static str {
method mutates_by_default (line 75) | pub(crate) fn mutates_by_default(self) -> bool {
constant DOCTOR_COMMAND_SURFACES (line 23) | const DOCTOR_COMMAND_SURFACES: &[DoctorCommandSurface] = &[
type DoctorExecutionMode (line 35) | pub(crate) enum DoctorExecutionMode {
method stable_name (line 84) | pub(crate) fn stable_name(self) -> &'static str {
method permits_mutation (line 95) | pub(crate) fn permits_mutation(self) -> bool {
method requires_plan_fingerprint (line 102) | pub(crate) fn requires_plan_fingerprint(self) -> bool {
type DoctorCommandRequest (line 45) | pub(crate) struct DoctorCommandRequest {
method from_cli_flags (line 109) | pub(crate) fn from_cli_flags(
method from_legacy_flags (line 166) | pub(crate) fn from_legacy_flags(
method validate (line 192) | pub(crate) fn validate(&self) -> CliResult<()> {
function execute_doctor_command (line 411) | pub(crate) fn execute_doctor_command(request: DoctorCommandRequest) -> C...
function legacy_read_only_flags_map_to_typed_check_mode (line 432) | fn legacy_read_only_flags_map_to_typed_check_mode() {
function legacy_fix_flags_map_to_safe_auto_fix_mode (line 452) | fn legacy_fix_flags_map_to_safe_auto_fix_mode() {
function check_subcommand_maps_to_explicit_read_only_surface (line 472) | fn check_subcommand_maps_to_explicit_read_only_surface() {
function allow_repeated_repair_without_fix_fails_closed (line 497) | fn allow_repeated_repair_without_fix_fails_closed() {
function check_subcommand_rejects_force_rebuild (line 515) | fn check_subcommand_rejects_force_rebuild() {
function check_subcommand_rejects_mutating_execution_mode_inside_typed_boundary (line 539) | fn check_subcommand_rejects_mutating_execution_mode_inside_typed_boundar...
function mutating_surfaces_require_mutating_mode (line 563) | fn mutating_surfaces_require_mutating_mode() {
function repair_dry_run_maps_to_non_mutating_plan_mode (line 588) | fn repair_dry_run_maps_to_non_mutating_plan_mode() {
function repair_apply_requires_yes_and_plan_fingerprint (line 614) | fn repair_apply_requires_yes_and_plan_fingerprint() {
function cleanup_subcommand_maps_to_non_mutating_dry_run_by_default (line 640) | fn cleanup_subcommand_maps_to_non_mutating_dry_run_by_default() {
function cleanup_apply_requires_yes_and_plan_fingerprint (line 666) | fn cleanup_apply_requires_yes_and_plan_fingerprint() {
function repair_rejects_missing_mode_or_mismatched_approval_flags (line 692) | fn repair_rejects_missing_mode_or_mismatched_approval_flags() {
function cleanup_rejects_missing_or_mismatched_approval_flags (line 749) | fn cleanup_rejects_missing_or_mismatched_approval_flags() {
function doctor_execution_mode_names_are_stable_for_robot_contracts (line 806) | fn doctor_execution_mode_names_are_stable_for_robot_contracts() {
function doctor_surface_names_are_stable_for_robot_contracts (line 830) | fn doctor_surface_names_are_stable_for_robot_contracts() {
function legacy_cli_dispatch_routes_through_typed_doctor_module (line 858) | fn legacy_cli_dispatch_routes_through_typed_doctor_module() {
FILE: src/encryption.rs
constant AES_GCM_KEY_LEN (line 10) | const AES_GCM_KEY_LEN: usize = 32;
constant AES_GCM_NONCE_LEN (line 11) | const AES_GCM_NONCE_LEN: usize = 12;
constant AES_GCM_TAG_LEN (line 12) | const AES_GCM_TAG_LEN: usize = 16;
type HkdfOutputLen (line 14) | struct HkdfOutputLen(usize);
method len (line 17) | fn len(&self) -> usize {
function validate_length (line 22) | fn validate_length(label: &str, actual: usize, expected: usize) -> Resul...
function aes_gcm_encrypt (line 33) | pub fn aes_gcm_encrypt(
function aes_gcm_decrypt (line 66) | pub fn aes_gcm_decrypt(
function argon2id_hash (line 97) | pub fn argon2id_hash(
function hkdf_extract_expand (line 115) | pub fn hkdf_extract_expand(
function hkdf_extract (line 133) | pub fn hkdf_extract(salt: &[u8], ikm: &[u8]) -> Vec<u8> {
function assert_err_contains (line 146) | fn assert_err_contains<T>(result: Result<T, String>, expected: &str) {
function aes_gcm_encrypt_decrypt_round_trip (line 159) | fn aes_gcm_encrypt_decrypt_round_trip() {
function aes_gcm_round_trip_empty_plaintext (line 173) | fn aes_gcm_round_trip_empty_plaintext() {
function aes_gcm_round_trip_large_data (line 189) | fn aes_gcm_round_trip_large_data() {
function aes_gcm_round_trip_unicode_data (line 204) | fn aes_gcm_round_trip_unicode_data() {
function aes_gcm_encrypt_invalid_key_length (line 217) | fn aes_gcm_encrypt_invalid_key_length() {
function aes_gcm_encrypt_invalid_nonce_length (line 228) | fn aes_gcm_encrypt_invalid_nonce_length() {
function aes_gcm_decrypt_invalid_key_length (line 239) | fn aes_gcm_decrypt_invalid_key_length() {
function aes_gcm_decrypt_invalid_nonce_length (line 251) | fn aes_gcm_decrypt_invalid_nonce_length() {
function aes_gcm_decrypt_invalid_tag_length (line 263) | fn aes_gcm_decrypt_invalid_tag_length() {
function aes_gcm_decrypt_wrong_key_fails (line 275) | fn aes_gcm_decrypt_wrong_key_fails() {
function aes_gcm_decrypt_wrong_aad_fails (line 290) | fn aes_gcm_decrypt_wrong_aad_fails() {
function aes_gcm_decrypt_tampered_ciphertext_fails (line 305) | fn aes_gcm_decrypt_tampered_ciphertext_fails() {
function aes_gcm_decrypt_tampered_tag_fails (line 320) | fn aes_gcm_decrypt_tampered_tag_fails() {
function aes_gcm_tag_is_correct_size (line 335) | fn aes_gcm_tag_is_correct_size() {
function aes_gcm_different_nonces_produce_different_ciphertext (line 346) | fn aes_gcm_different_nonces_produce_different_ciphertext() {
function argon2id_hash_produces_deterministic_output (line 365) | fn argon2id_hash_produces_deterministic_output() {
function argon2id_hash_different_passwords_produce_different_hashes (line 378) | fn argon2id_hash_different_passwords_produce_different_hashes() {
function argon2id_hash_different_salts_produce_different_hashes (line 389) | fn argon2id_hash_different_salts_produce_different_hashes() {
function argon2id_hash_respects_output_length (line 400) | fn argon2id_hash_respects_output_length() {
function argon2id_hash_empty_password (line 415) | fn argon2id_hash_empty_password() {
function argon2id_hash_unicode_password (line 426) | fn argon2id_hash_unicode_password() {
function hkdf_extract_expand_produces_deterministic_output (line 441) | fn hkdf_extract_expand_produces_deterministic_output() {
function hkdf_extract_expand_respects_output_length (line 454) | fn hkdf_extract_expand_respects_output_length() {
function hkdf_extract_expand_different_info_produces_different_output (line 467) | fn hkdf_extract_expand_different_info_produces_different_output() {
function hkdf_extract_expand_different_salt_produces_different_output (line 478) | fn hkdf_extract_expand_different_salt_produces_different_output() {
function hkdf_extract_expand_empty_inputs (line 489) | fn hkdf_extract_expand_empty_inputs() {
function hkdf_extract_expand_too_long_output_fails (line 502) | fn hkdf_extract_expand_too_long_output_fails() {
function hkdf_extract_produces_deterministic_output (line 513) | fn hkdf_extract_produces_deterministic_output() {
function hkdf_extract_different_ikm_produces_different_output (line 526) | fn hkdf_extract_different_ikm_produces_different_output() {
function hkdf_extract_different_salt_produces_different_output (line 536) | fn hkdf_extract_different_salt_produces_different_output() {
function hkdf_extract_empty_salt (line 546) | fn hkdf_extract_empty_salt() {
function hkdf_extract_empty_ikm (line 554) | fn hkdf_extract_empty_ikm() {
function integration_argon2_derived_key_for_aes_gcm (line 566) | fn integration_argon2_derived_key_for_aes_gcm() {
function integration_hkdf_derived_key_for_aes_gcm (line 587) | fn integration_hkdf_derived_key_for_aes_gcm() {
function integration_extract_then_expand (line 608) | fn integration_extract_then_expand() {
FILE: src/evidence_bundle.rs
constant EVIDENCE_BUNDLE_MANIFEST_VERSION (line 15) | pub const EVIDENCE_BUNDLE_MANIFEST_VERSION: u32 = 1;
constant EVIDENCE_BUNDLE_MANIFEST_FILE (line 16) | pub const EVIDENCE_BUNDLE_MANIFEST_FILE: &str = "evidence-bundle-manifes...
type EvidenceBundleKind (line 20) | pub enum EvidenceBundleKind {
type EvidenceBundleChunkRole (line 28) | pub enum EvidenceBundleChunkRole {
type EvidenceBundleVerificationStatus (line 41) | pub enum EvidenceBundleVerificationStatus {
type EvidenceBundleIssueKind (line 49) | pub enum EvidenceBundleIssueKind {
type EvidenceBundleChunk (line 62) | pub struct EvidenceBundleChunk {
method from_file (line 74) | pub fn from_file(
type EvidenceBundleParityGroup (line 97) | pub struct EvidenceBundleParityGroup {
type DatabaseWalStateEvidence (line 105) | pub struct DatabaseWalStateEvidence {
type EvidenceBundleManifest (line 115) | pub struct EvidenceBundleManifest {
method new (line 133) | pub fn new(bundle_id: impl Into<String>, kind: EvidenceBundleKind, cre...
method path (line 147) | pub fn path(bundle_root: &Path) -> PathBuf {
method load (line 151) | pub fn load(path: &Path) -> Result<Self> {
method save (line 158) | pub fn save(&self, bundle_root: &Path) -> Result<PathBuf> {
method verify (line 177) | pub fn verify(&self, bundle_root: &Path) -> EvidenceBundleVerification...
type EvidenceBundleIssue (line 183) | pub struct EvidenceBundleIssue {
type EvidenceBundleGcDryRun (line 191) | pub struct EvidenceBundleGcDryRun {
type EvidenceBundleVerificationReport (line 201) | pub struct EvidenceBundleVerificationReport {
method is_complete (line 217) | pub fn is_complete(&self) -> bool {
method is_partially_repairable (line 221) | pub fn is_partially_repairable(&self) -> bool {
method is_unsafe (line 225) | pub fn is_unsafe(&self) -> bool {
function verify_evidence_bundle_manifest_file (line 230) | pub fn verify_evidence_bundle_manifest_file(
function verify_manifest (line 244) | fn verify_manifest(
type RawChunkFailure (line 428) | struct RawChunkFailure {
function raw_chunk_failure (line 434) | fn raw_chunk_failure(
function parity_index (line 446) | fn parity_index(manifest: &EvidenceBundleManifest) -> BTreeMap<String, &...
function chunk_failure_counts_by_parity_group (line 456) | fn chunk_failure_counts_by_parity_group(
function chunk_failure_is_repairable (line 469) | fn chunk_failure_is_repairable(
function issue (line 497) | fn issue(
function unsafe_report (line 511) | fn unsafe_report(
function digest_file (line 540) | fn digest_file(path: &Path) -> Result<(u64, String)> {
function resolve_bundle_path (line 558) | fn resolve_bundle_path(bundle_root: &Path, relative_path: &str) -> Resul...
function resolve_existing_bundle_path (line 580) | fn resolve_existing_bundle_path(bundle_root: &Path, relative_path: &str)...
function default_required_chunk (line 592) | fn default_required_chunk() -> bool {
function default_explicit_delete_required (line 596) | fn default_explicit_delete_required() -> bool {
function write_chunk (line 605) | fn write_chunk(root: &Path, path: &str, bytes: &[u8]) {
function chunk (line 613) | fn chunk(root: &Path, path: &str, role: EvidenceBundleChunkRole) -> Evid...
function verifier_proves_complete_lexical_generation_bundle (line 618) | fn verifier_proves_complete_lexical_generation_bundle() {
function corrupt_manifest_sidecar_is_unsafe_to_use (line 653) | fn corrupt_manifest_sidecar_is_unsafe_to_use() {
function missing_semantic_shard_with_parity_is_partially_repairable (line 669) | fn missing_semantic_shard_with_parity_is_partially_repairable() {
function declared_parity_without_verified_parity_artifact_is_unsafe (line 716) | fn declared_parity_without_verified_parity_artifact_is_unsafe() {
function parity_does_not_repair_manifest_structure_errors (line 759) | fn parity_does_not_repair_manifest_structure_errors() {
function mismatched_database_wal_state_is_unsafe_even_when_files_hash (line 792) | fn mismatched_database_wal_state_is_unsafe_even_when_files_hash() {
function verifier_gc_surface_is_dry_run_and_does_not_delete_files (line 833) | fn verifier_gc_surface_is_dry_run_and_does_not_delete_files() {
function missing_optional_chunk_does_not_make_bundle_unsafe (line 857) | fn missing_optional_chunk_does_not_make_bundle_unsafe() {
function unsafe_relative_paths_are_rejected (line 889) | fn unsafe_relative_paths_are_rejected() {
function symlinked_chunk_that_escapes_bundle_root_is_rejected (line 915) | fn symlinked_chunk_that_escapes_bundle_root_is_rejected() {
FILE: src/explainability.rs
constant EXPLANATION_CARD_SCHEMA_VERSION (line 12) | pub const EXPLANATION_CARD_SCHEMA_VERSION: u32 = 1;
type ExplanationSurface (line 16) | pub enum ExplanationSurface {
type ExplanationDecision (line 25) | pub enum ExplanationDecision {
type ExplanationFallbackContract (line 34) | pub struct ExplanationFallbackContract {
type ExplanationCard (line 45) | pub struct ExplanationCard {
method new (line 61) | fn new(
method input (line 81) | fn input(mut self, key: impl Into<String>, value: Value) -> Self {
method evidence (line 86) | fn evidence(mut self, key: impl Into<String>, value: Value) -> Self {
method fallback_contract (line 91) | fn fallback_contract(mut self, contract: ExplanationFallbackContract) ...
type SearchRobotExplanationInput (line 98) | pub struct SearchRobotExplanationInput {
function search_robot_explanation_cards (line 116) | pub fn search_robot_explanation_cards(input: SearchRobotExplanationInput...
function search_fallback_card (line 177) | pub fn search_fallback_card(
function cache_admission_card (line 204) | pub fn cache_admission_card(
function rebuild_throttle_card (line 239) | pub fn rebuild_throttle_card(pending_sessions: Option<u64>, reason: &str...
function semantic_unavailable_card (line 261) | pub fn semantic_unavailable_card(
function source_sync_deferral_card (line 285) | pub fn source_sync_deferral_card(
function pins_search_fallback_card_shape (line 315) | fn pins_search_fallback_card_shape() {
function pins_cache_admission_card_shape (line 332) | fn pins_cache_admission_card_shape() {
function pins_rebuild_throttle_card_shape (line 342) | fn pins_rebuild_throttle_card_shape() {
function pins_semantic_unavailable_card_shape (line 351) | fn pins_semantic_unavailable_card_shape() {
function pins_source_sync_deferral_card_shape (line 366) | fn pins_source_sync_deferral_card_shape() {
function search_robot_cards_stay_concise_when_no_decision_needs_explaining (line 376) | fn search_robot_cards_stay_concise_when_no_decision_needs_explaining() {
function semantic_fallback_detection_is_case_insensitive (line 398) | fn semantic_fallback_detection_is_case_insensitive() {
FILE: src/export.rs
type ExportFormat (line 13) | pub enum ExportFormat {
method metadata (line 24) | fn metadata(self) -> (&'static str, &'static str, Self) {
method name (line 33) | pub fn name(self) -> &'static str {
method extension (line 38) | pub fn extension(self) -> &'static str {
method next (line 43) | pub fn next(self) -> Self {
method all (line 48) | pub fn all() -> &'static [Self] {
type ExportOptions (line 55) | pub struct ExportOptions {
method default (line 69) | fn default() -> Self {
function export_results (line 81) | pub fn export_results(hits: &[SearchHit], format: ExportFormat, options:...
function escape_markdown (line 90) | fn escape_markdown(text: &str) -> String {
function get_code_block_delimiter (line 105) | fn get_code_block_delimiter(content: &str) -> String {
function export_markdown (line 123) | fn export_markdown(hits: &[SearchHit], options: &ExportOptions) -> String {
function export_json (line 218) | fn export_json(hits: &[SearchHit], options: &ExportOptions) -> String {
function export_json_value (line 225) | fn export_json_value(
function export_hit_json (line 241) | fn export_hit_json(hit: &SearchHit, options: &ExportOptions) -> serde_js...
function export_hit_base_json (line 274) | fn export_hit_base_json(hit: &SearchHit, options: &ExportOptions) -> ser...
function export_plain_text (line 284) | fn export_plain_text(hits: &[SearchHit], options: &ExportOptions) -> Str...
function truncate_text (line 354) | fn truncate_text(text: &str, max_len: usize) -> String {
function sample_hit (line 381) | fn sample_hit() -> SearchHit {
function assert_json_field (line 402) | fn assert_json_field(value: &serde_json::Value, key: &str, expected: ser...
function test_export_format_cycle (line 411) | fn test_export_format_cycle() {
function test_export_format_extension (line 419) | fn test_export_format_extension() {
function test_truncate_text (line 426) | fn test_truncate_text() {
function test_export_markdown (line 439) | fn test_export_markdown() {
function test_export_json (line 452) | fn test_export_json() {
function test_export_json_value_shape (line 462) | fn test_export_json_value_shape() {
function test_export_hit_json_shape (line 493) | fn test_export_hit_json_shape() {
function test_export_plain_text (line 527) | fn test_export_plain_text() {
function test_export_markdown_escapes_special_chars (line 538) | fn test_export_markdown_escapes_special_chars() {
FILE: src/ftui_harness.rs
type MatchMode (line 14) | pub enum MatchMode {
function buffer_to_text (line 24) | pub fn buffer_to_text(buf: &Buffer) -> String {
function buffer_to_ansi (line 52) | fn buffer_to_ansi(buf: &Buffer) -> String {
function normalize (line 153) | fn normalize(text: &str, mode: MatchMode) -> String {
function diff_text (line 170) | pub fn diff_text(expected: &str, actual: &str) -> String {
function snapshot_name_with_profile (line 204) | fn snapshot_name_with_profile(name: &str) -> String {
function snapshot_path (line 219) | fn snapshot_path(base_dir: &Path, name: &str) -> PathBuf {
function is_bless (line 227) | fn is_bless() -> bool {
function assert_buffer_snapshot (line 234) | pub fn assert_buffer_snapshot(name: &str, buf: &Buffer, base_dir: &str, ...
function assert_buffer_snapshot_ansi (line 274) | pub fn assert_buffer_snapshot_ansi(name: &str, buf: &Buffer, base_dir: &...
FILE: src/html_export/encryption.rs
type EncryptionError (line 18) | pub enum EncryptionError {
type EncryptedContent (line 32) | pub struct EncryptedContent {
method to_json (line 47) | pub fn to_json(&self) -> String {
type EncryptionParams (line 54) | pub struct EncryptionParams {
method default (line 64) | fn default() -> Self {
function encrypt_content (line 84) | pub fn encrypt_content(
function fill_encryption_random (line 185) | fn fill_encryption_random(label: &str, output: &mut [u8]) {
function deterministic_test_bytes (line 197) | fn deterministic_test_bytes(entropy_label: &str, len: usize) -> Option<V...
function encrypt_content (line 229) | pub fn encrypt_content(
function base64_encode (line 246) | fn base64_encode(data: &[u8]) -> String {
function render_encrypted_placeholder (line 255) | pub fn render_encrypted_placeholder(encrypted: &EncryptedContent) -> Str...
function html_escape_for_content (line 276) | fn html_escape_for_content(s: &str) -> String {
function test_encryption_error_display_strings (line 294) | fn test_encryption_error_display_strings() {
function test_base64_encode (line 311) | fn test_base64_encode() {
function test_encrypted_content_to_json (line 322) | fn test_encrypted_content_to_json() {
function test_encryption_params_default (line 338) | fn test_encryption_params_default() {
function test_encrypt_content_roundtrip (line 347) | fn test_encrypt_content_roundtrip() {
function test_encrypt_content_produces_authenticated_ciphertext (line 395) | fn test_encrypt_content_produces_authenticated_ciphertext() {
function test_encrypt_rejects_empty_password (line 423) | fn test_encrypt_rejects_empty_password() {
function test_encrypt_rejects_invalid_params (line 435) | fn test_encrypt_rejects_invalid_params() {
function test_encrypt_without_feature_returns_error (line 459) | fn test_encrypt_without_feature_returns_error() {
FILE: src/html_export/filename.rs
type FilenameOptions (line 20) | pub struct FilenameOptions {
type FilenameMetadata (line 45) | pub struct FilenameMetadata {
function normalize_topic (line 78) | pub fn normalize_topic(topic: &str) -> String {
function generate_filename (line 85) | pub fn generate_filename(metadata: &FilenameMetadata, options: &Filename...
function generate_filepath (line 154) | pub fn generate_filepath(
function sanitize (line 183) | fn sanitize(s: &str) -> String {
function push_part (line 206) | fn push_part(parts: &mut Vec<String>, raw: &str) {
constant MAX_FILENAME_LEN (line 213) | const MAX_FILENAME_LEN: usize = 255;
function finalize_filename (line 216) | fn finalize_filename(mut name: String, max_len: Option<usize>) -> String {
function enforce_max_len (line 238) | fn enforce_max_len(mut name: String, max_len: Option<usize>) -> String {
function truncate_to_char_boundary (line 252) | fn truncate_to_char_boundary(s: &str, max_bytes: usize) -> usize {
function trim_separators (line 264) | fn trim_separators(name: &str) -> String {
function avoid_reserved_name (line 268) | fn avoid_reserved_name(name: String) -> String {
function is_reserved_basename (line 276) | fn is_reserved_basename(name: &str) -> bool {
constant INVALID_CHARS (line 283) | const INVALID_CHARS: &[char] = &[
constant RESERVED_NAMES (line 288) | const RESERVED_NAMES: &[&str] = &[
function is_valid_filename (line 294) | pub fn is_valid_filename(name: &str) -> bool {
function get_downloads_dir (line 334) | pub fn get_downloads_dir() -> PathBuf {
function unique_filename (line 343) | pub fn unique_filename(dir: &Path, base_filename: &str) -> PathBuf {
function agent_slug (line 394) | pub fn agent_slug(agent: &str) -> String {
function workspace_slug (line 428) | pub fn workspace_slug(workspace: Option<&Path>) -> String {
function datetime_slug (line 454) | pub fn datetime_slug(timestamp_ms: Option<i64>) -> String {
function extract_topic (line 470) | pub fn extract_topic(title: Option<&str>, first_user_message: Option<&st...
function truncate_topic (line 504) | fn truncate_topic(topic: &str, max_len: usize) -> String {
function generate_full_filename (line 526) | pub fn generate_full_filename(
function test_sanitize_basic (line 561) | fn test_sanitize_basic() {
function test_sanitize_special_chars (line 568) | fn test_sanitize_special_chars() {
function test_sanitize_multiple_separators (line 574) | fn test_sanitize_multiple_separators() {
function test_generate_filename_basic (line 580) | fn test_generate_filename_basic() {
function test_generate_filename_with_date (line 591) | fn test_generate_filename_with_date() {
function test_generate_filename_max_length (line 608) | fn test_generate_filename_max_length() {
function test_generate_filename_zero_max_length (line 623) | fn test_generate_filename_zero_max_length() {
function test_generate_filename_caps_at_platform_limit (line 639) | fn test_generate_filename_caps_at_platform_limit() {
function test_generate_filename_empty (line 654) | fn test_generate_filename_empty() {
function test_generate_filename_skips_empty_parts (line 662) | fn test_generate_filename_skips_empty_parts() {
function test_generate_filename_all_invalid (line 676) | fn test_generate_filename_all_invalid() {
function test_generate_filename_reserved_name (line 687) | fn test_generate_filename_reserved_name() {
function test_is_valid_filename (line 698) | fn test_is_valid_filename() {
function test_generate_filepath (line 709) | fn test_generate_filepath() {
function test_generate_filepath_respects_extension_limit (line 721) | fn test_generate_filepath_respects_extension_limit() {
function test_normalize_topic_basic (line 734) | fn test_normalize_topic_basic() {
function test_normalize_topic_special_chars (line 747) | fn test_normalize_topic_special_chars() {
function test_normalize_topic_already_normalized (line 755) | fn test_normalize_topic_already_normalized() {
function test_normalize_topic_multiple_spaces (line 762) | fn test_normalize_topic_multiple_spaces() {
function test_generate_filename_with_topic (line 768) | fn test_generate_filename_with_topic() {
function test_generate_filename_topic_without_flag (line 789) | fn test_generate_filename_topic_without_flag() {
function test_generate_filename_full_robot_mode (line 807) | fn test_generate_filename_full_robot_mode() {
function test_agent_slug_canonical (line 837) | fn test_agent_slug_canonical() {
function test_agent_slug_unknown (line 847) | fn test_agent_slug_unknown() {
function test_workspace_slug_with_path (line 856) | fn test_workspace_slug_with_path() {
function test_workspace_slug_without_path (line 862) | fn test_workspace_slug_without_path() {
function test_workspace_slug_long_name (line 867) | fn test_workspace_slug_long_name() {
function test_datetime_slug_format (line 874) | fn test_datetime_slug_format() {
function test_datetime_slug_none (line 884) | fn test_datetime_slug_none() {
function test_extract_topic_from_title (line 892) | fn test_extract_topic_from_title() {
function test_extract_topic_from_message (line 898) | fn test_extract_topic_from_message() {
function test_extract_topic_skips_urls (line 905) | fn test_extract_topic_skips_urls() {
function test_extract_topic_fallback (line 912) | fn test_extract_topic_fallback() {
function test_generate_full_filename (line 918) | fn test_generate_full_filename() {
function test_get_downloads_dir_returns_path (line 933) | fn test_get_downloads_dir_returns_path() {
function test_unique_filename_no_collision (line 940) | fn test_unique_filename_no_collision() {
function test_truncate_topic (line 952) | fn test_truncate_topic() {
function test_truncate_to_char_boundary (line 968) | fn test_truncate_to_char_boundary() {
function test_enforce_max_len_utf8_safe (line 990) | fn test_enforce_max_len_utf8_safe() {
function test_agent_slug_utf8_safe (line 1001) | fn test_agent_slug_utf8_safe() {
function test_workspace_slug_utf8_safe (line 1010) | fn test_workspace_slug_utf8_safe() {
function test_truncate_topic_utf8_safe (line 1020) | fn test_truncate_topic_utf8_safe() {
FILE: src/html_export/mod.rs
constant BG_DEEP (line 62) | pub const BG_DEEP: &str = "#1a1b26";
constant BG_SURFACE (line 65) | pub const BG_SURFACE: &str = "#24283b";
constant BG_HIGHLIGHT (line 68) | pub const BG_HIGHLIGHT: &str = "#292e42";
constant BORDER (line 71) | pub const BORDER: &str = "#3b4261";
constant BORDER_FOCUS (line 74) | pub const BORDER_FOCUS: &str = "#7d91c8";
constant TEXT_PRIMARY (line 77) | pub const TEXT_PRIMARY: &str = "#c0caf5";
constant TEXT_SECONDARY (line 80) | pub const TEXT_SECONDARY: &str = "#a9b1d6";
constant TEXT_MUTED (line 83) | pub const TEXT_MUTED: &str = "#696e9e";
constant TEXT_DISABLED (line 86) | pub const TEXT_DISABLED: &str = "#444b6a";
constant ACCENT_PRIMARY (line 89) | pub const ACCENT_PRIMARY: &str = "#7aa2f7";
constant ACCENT_SECONDARY (line 92) | pub const ACCENT_SECONDARY: &str = "#bb9af7";
constant ACCENT_TERTIARY (line 95) | pub const ACCENT_TERTIARY: &str = "#7dcfff";
constant ROLE_USER (line 98) | pub const ROLE_USER: &str = "#9ece6a";
constant ROLE_AGENT (line 101) | pub const ROLE_AGENT: &str = "#7aa2f7";
constant ROLE_TOOL (line 104) | pub const ROLE_TOOL: &str = "#ff9e64";
constant ROLE_SYSTEM (line 107) | pub const ROLE_SYSTEM: &str = "#e0af68";
constant STATUS_SUCCESS (line 110) | pub const STATUS_SUCCESS: &str = "#73daca";
constant STATUS_WARNING (line 113) | pub const STATUS_WARNING: &str = "#e0af68";
constant STATUS_ERROR (line 116) | pub const STATUS_ERROR: &str = "#f7768e";
constant STATUS_INFO (line 119) | pub const STATUS_INFO: &str = "#7dcfff";
constant ROLE_USER_BG (line 122) | pub const ROLE_USER_BG: &str = "#1a201e";
constant ROLE_AGENT_BG (line 125) | pub const ROLE_AGENT_BG: &str = "#1a1c24";
constant ROLE_TOOL_BG (line 128) | pub const ROLE_TOOL_BG: &str = "#201c1a";
constant ROLE_SYSTEM_BG (line 131) | pub const ROLE_SYSTEM_BG: &str = "#201e1a";
function test_colors_are_valid_hex (line 139) | fn test_colors_are_valid_hex() {
FILE: src/html_export/renderer.rs
type RenderError (line 25) | pub enum RenderError {
type RenderOptions (line 36) | pub struct RenderOptions {
method default (line 61) | fn default() -> Self {
type Message (line 76) | pub struct Message {
type ToolCall (line 98) | pub struct ToolCall {
type ToolStatus (line 114) | pub enum ToolStatus {
method css_class (line 121) | fn css_class(&self) -> &'static str {
method icon_svg (line 129) | fn icon_svg(&self) -> &'static str {
method label (line 137) | fn label(&self) -> &'static str {
type MessageGroupType (line 153) | pub enum MessageGroupType {
method role_icon (line 166) | pub fn role_icon(&self) -> &'static str {
type ToolResult (line 181) | pub struct ToolResult {
method new (line 194) | pub fn new(
method with_correlation_id (line 208) | pub fn with_correlation_id(mut self, id: impl Into<String>) -> Self {
method is_error (line 214) | pub fn is_error(&self) -> bool {
type ToolCallWithResult (line 224) | pub struct ToolCallWithResult {
method new (line 235) | pub fn new(call: ToolCall) -> Self {
method with_correlation_id (line 244) | pub fn with_correlation_id(mut self, id: impl Into<String>) -> Self {
method with_result (line 250) | pub fn with_result(mut self, result: ToolResult) -> Self {
method has_result (line 256) | pub fn has_result(&self) -> bool {
method is_error (line 261) | pub fn is_error(&self) -> bool {
method effective_status (line 266) | pub fn effective_status(&self) -> ToolStatus {
type MessageGroup (line 282) | pub struct MessageGroup {
method new (line 297) | pub fn new(primary: Message, group_type: MessageGroupType) -> Self {
method user (line 310) | pub fn user(primary: Message) -> Self {
method assistant (line 315) | pub fn assistant(primary: Message) -> Self {
method system (line 320) | pub fn system(primary: Message) -> Self {
method tool_only (line 325) | pub fn tool_only(primary: Message) -> Self {
method add_tool_call (line 330) | pub fn add_tool_call(&mut self, call: ToolCall, correlation_id: Option...
method add_tool_result (line 347) | pub fn add_tool_result(&mut self, result: ToolResult) {
method update_end_timestamp (line 383) | pub fn update_end_timestamp(&mut self, timestamp: Option<String>) {
method tool_count (line 398) | pub fn tool_count(&self) -> usize {
method has_errors (line 403) | pub fn has_errors(&self) -> bool {
method all_tools_complete (line 408) | pub fn all_tools_complete(&self) -> bool {
method tool_summary (line 413) | pub fn tool_summary(&self) -> (usize, usize, usize) {
constant ICON_USER (line 433) | const ICON_USER: &str = r#"<svg class="lucide-icon" xmlns="http://www.w3...
constant ICON_BOT (line 436) | const ICON_BOT: &str = r#"<svg class="lucide-icon" xmlns="http://www.w3....
constant ICON_WRENCH (line 439) | const ICON_WRENCH: &str = r#"<svg class="lucide-icon" xmlns="http://www....
constant ICON_SETTINGS (line 442) | const ICON_SETTINGS: &str = r#"<svg class="lucide-icon" xmlns="http://ww...
constant ICON_MESSAGE (line 445) | const ICON_MESSAGE: &str = r#"<svg class="lucide-icon" xmlns="http://www...
constant ICON_TERMINAL (line 448) | const ICON_TERMINAL: &str = r#"<svg class="lucide-icon" xmlns="http://ww...
constant ICON_FILE_TEXT (line 451) | const ICON_FILE_TEXT: &str = r#"<svg class="lucide-icon" xmlns="http://w...
constant ICON_PENCIL (line 454) | const ICON_PENCIL: &str = r#"<svg class="lucide-icon" xmlns="http://www....
constant ICON_SEARCH (line 457) | const ICON_SEARCH: &str = r#"<svg class="lucide-icon" xmlns="http://www....
constant ICON_GLOBE (line 460) | const ICON_GLOBE: &str = r#"<svg class="lucide-icon" xmlns="http://www.w...
constant ICON_CHECK (line 463) | const ICON_CHECK: &str = r#"<svg class="lucide-icon" xmlns="http://www.w...
constant ICON_X (line 466) | const ICON_X: &str = r#"<svg class="lucide-icon" xmlns="http://www.w3.or...
constant ICON_LOADER (line 469) | const ICON_LOADER: &str = r#"<svg class="lucide-icon lucide-spin" xmlns=...
constant ICON_MAIL (line 472) | const ICON_MAIL: &str = r#"<svg class="lucide-icon" xmlns="http://www.w3...
constant ICON_DATABASE (line 475) | const ICON_DATABASE: &str = r#"<svg class="lucide-icon" xmlns="http://ww...
constant ICON_SPARKLES (line 478) | const ICON_SPARKLES: &str = r#"<svg class="lucide-icon" xmlns="http://ww...
function agent_css_class (line 483) | pub fn agent_css_class(slug: &str) -> &'static str {
function agent_display_name (line 501) | pub fn agent_display_name(slug: &str) -> &'static str {
constant MAX_VISIBLE_BADGES (line 523) | const MAX_VISIBLE_BADGES: usize = 6;
function render_message_groups (line 530) | pub fn render_message_groups(
function render_message_group (line 588) | fn render_message_group(
function render_tool_badges_with_overflow (line 787) | fn render_tool_badges_with_overflow(
function render_single_tool_badge (line 831) | fn render_single_tool_badge(tool: &ToolCallWithResult) -> String {
function get_tool_lucide_icon (line 897) | fn get_tool_lucide_icon(tool_name: &str) -> &'static str {
function render_message (line 912) | pub fn render_message(message: &Message, options: &RenderOptions) -> Res...
function format_role_display (line 1082) | fn format_role_display(role: &str) -> String {
function render_content (line 1094) | fn render_content(content: &str, _options: &RenderOptions) -> String {
function sanitize_markdown_dest_url (line 1143) | fn sanitize_markdown_dest_url(dest_url: CowStr<'_>) -> CowStr<'_> {
function render_tool_badge (line 1174) | fn render_tool_badge(tool_call: &ToolCall, options: &RenderOptions) -> S...
function format_json_or_raw (line 1277) | fn format_json_or_raw(s: &str) -> String {
function format_timestamp (line 1288) | fn format_timestamp(ts: &str) -> String {
function truncate_to_char_boundary (line 1305) | fn truncate_to_char_boundary(s: &str, max_bytes: usize) -> usize {
function byte_index_for_char_count (line 1318) | fn byte_index_for_char_count(s: &str, max_chars: usize) -> usize {
function test_render_error_display_strings (line 1333) | fn test_render_error_display_strings() {
function test_message (line 1344) | fn test_message(role: &str, content: &str) -> Message {
function test_render_message_user (line 1356) | fn test_render_message_user() {
function test_render_message_with_code (line 1368) | fn test_render_message_with_code() {
function test_url_with_query_params_not_double_escaped (line 1383) | fn test_url_with_query_params_not_double_escaped() {
function test_html_escape_in_content (line 1404) | fn test_html_escape_in_content() {
function test_javascript_url_sanitized_in_markdown_links (line 1412) | fn test_javascript_url_sanitized_in_markdown_links() {
function test_vbscript_and_data_urls_sanitized (line 1424) | fn test_vbscript_and_data_urls_sanitized() {
function test_unsafe_markdown_image_urls_sanitized (line 1440) | fn test_unsafe_markdown_image_urls_sanitized() {
function test_normal_markdown_image_urls_not_affected (line 1469) | fn test_normal_markdown_image_urls_not_affected() {
function test_javascript_url_case_insensitive (line 1480) | fn test_javascript_url_case_insensitive() {
function test_sanitize_markdown_dest_url_blocks_control_character_variants (line 1496) | fn test_sanitize_markdown_dest_url_blocks_control_character_variants() {
function test_normal_urls_not_affected (line 1509) | fn test_normal_urls_not_affected() {
function test_format_role_display_escapes_unknown_roles (line 1520) | fn test_format_role_display_escapes_unknown_roles() {
function test_agent_css_class (line 1531) | fn test_agent_css_class() {
function test_agent_display_name (line 1540) | fn test_agent_display_name() {
function test_tool_status_rendering (line 1548) | fn test_tool_status_rendering() {
function test_message_with_index (line 1571) | fn test_message_with_index() {
function test_message_with_author (line 1586) | fn test_message_with_author() {
function test_format_json_or_raw (line 1601) | fn test_format_json_or_raw() {
function test_long_message_collapse (line 1614) | fn test_long_message_collapse() {
function test_tool_icons_for_different_tools (line 1628) | fn test_tool_icons_for_different_tools() {
function test_truncate_to_char_boundary (line 1666) | fn test_truncate_to_char_boundary() {
function test_long_message_collapse_utf8_safe (line 1682) | fn test_long_message_collapse_utf8_safe() {
function test_collapse_threshold_uses_character_count (line 1699) | fn test_collapse_threshold_uses_character_count() {
function test_tool_output_with_unicode_renders_safely (line 1716) | fn test_tool_output_with_unicode_renders_safely() {
function test_format_timestamp_utf8_safe (line 1744) | fn test_format_timestamp_utf8_safe() {
function test_tool_call (line 1756) | fn test_tool_call(name: &str) -> ToolCall {
function test_tool_call_with_result (line 1765) | fn test_tool_call_with_result(name: &str, status: ToolStatus) -> ToolCal...
function test_render_message_group_user (line 1772) | fn test_render_message_group_user() {
function test_render_message_group_assistant_with_tools (line 1785) | fn test_render_message_group_assistant_with_tools() {
function test_render_message_group_multiple_tools (line 1808) | fn test_render_message_group_multiple_tools() {
function test_render_tool_badges_overflow (line 1833) | fn test_render_tool_badges_overflow() {
function test_render_tool_badges_no_overflow (line 1856) | fn test_render_tool_badges_no_overflow() {
function test_render_single_tool_badge_success (line 1873) | fn test_render_single_tool_badge_success() {
function test_render_single_tool_badge_error (line 1885) | fn test_render_single_tool_badge_error() {
function test_render_single_tool_badge_with_inline_popover (line 1894) | fn test_render_single_tool_badge_with_inline_popover() {
function test_get_tool_lucide_icon (line 1904) | fn test_get_tool_lucide_icon() {
function test_render_message_groups_empty (line 1916) | fn test_render_message_groups_empty() {
function test_render_message_groups_with_agent_class (line 1926) | fn test_render_message_groups_with_agent_class() {
function test_render_message_group_system (line 1944) | fn test_render_message_group_system() {
function test_render_message_group_tool_only (line 1956) | fn test_render_message_group_tool_only() {
function test_render_message_group_with_timestamp (line 1966) | fn test_render_message_group_with_timestamp() {
function test_render_message_group_without_timestamps (line 1983) | fn test_render_message_group_without_timestamps() {
function test_render_message_group_tool_badges_hidden_when_disabled (line 1998) | fn test_render_message_group_tool_badges_hidden_when_disabled() {
function test_render_message_group_with_collapse (line 2013) | fn test_render_message_group_with_collapse() {
function test_render_message_group_anchors (line 2030) | fn test_render_message_group_anchors() {
function test_render_message_group_uses_fallback_index (line 2041) | fn test_render_message_group_uses_fallback_index() {
function test_tool_badge_preserves_full_input_in_popover (line 2052) | fn test_tool_badge_preserves_full_input_in_popover() {
function test_tool_badge_accessibility (line 2065) | fn test_tool_badge_accessibility() {
function test_render_message_groups_all_roles (line 2079) | fn test_render_message_groups_all_roles() {
FILE: src/html_export/scripts.rs
type ScriptBundle (line 13) | pub struct ScriptBundle {
function generate_scripts (line 19) | pub fn generate_scripts(options: &ExportOptions) -> ScriptBundle {
function generate_core_utils (line 66) | fn generate_core_utils() -> String {
function generate_search_js (line 150) | fn generate_search_js() -> String {
function generate_theme_js (line 319) | fn generate_theme_js() -> String {
function generate_tool_toggle_js (line 354) | fn generate_tool_toggle_js() -> String {
function generate_world_class_js (line 592) | fn generate_world_class_js() -> String {
function generate_decryption_js (line 856) | fn generate_decryption_js() -> String {
function generate_init_js (line 971) | fn generate_init_js(options: &ExportOptions) -> String {
function test_generate_scripts_includes_search (line 1065) | fn test_generate_scripts_includes_search() {
function test_search_init_is_idempotent_for_decryption_reinit (line 1077) | fn test_search_init_is_idempotent_for_decryption_reinit() {
function test_generate_scripts_excludes_search_when_disabled (line 1095) | fn test_generate_scripts_excludes_search_when_disabled() {
function test_generate_scripts_includes_theme_toggle (line 1106) | fn test_generate_scripts_includes_theme_toggle() {
function test_generate_scripts_includes_encryption (line 1118) | fn test_generate_scripts_includes_encryption() {
function test_generate_scripts_includes_toast_and_copy (line 1130) | fn test_generate_scripts_includes_toast_and_copy() {
function test_generate_scripts_includes_print_handler (line 1147) | fn test_generate_scripts_includes_print_handler() {
function test_generate_scripts_includes_keyboard_shortcuts (line 1156) | fn test_generate_scripts_includes_keyboard_shortcuts() {
function test_generate_scripts_includes_copy_code_buttons (line 1172) | fn test_generate_scripts_includes_copy_code_buttons() {
function test_generate_scripts_includes_world_class_enhancements (line 1181) | fn test_generate_scripts_includes_world_class_enhancements() {
function test_world_class_keyboard_shortcuts (line 1218) | fn test_world_class_keyboard_shortcuts() {
function test_tool_popovers_functionality (line 1238) | fn test_tool_popovers_functionality() {
function test_tool_popovers_reinit_after_decryption (line 1290) | fn test_tool_popovers_reinit_after_decryption() {
FILE: src/html_export/styles.rs
type StyleBundle (line 9) | pub struct StyleBundle {
function generate_styles (line 18) | pub fn generate_styles(options: &ExportOptions) -> StyleBundle {
function generate_critical_css (line 34) | fn generate_critical_css(options: &ExportOptions) -> String {
constant CORE_STYLES (line 54) | const CORE_STYLES: &str = r#"
constant COMPONENT_STYLES (line 435) | const COMPONENT_STYLES: &str = r#"
constant SEARCH_STYLES (line 1577) | const SEARCH_STYLES: &str = r#"
constant ENCRYPTION_STYLES (line 1592) | const ENCRYPTION_STYLES: &str = r#"
function generate_print_css (line 1662) | fn generate_print_css() -> String {
function test_generate_styles_includes_colors (line 1691) | fn test_generate_styles_includes_colors() {
function test_generate_styles_includes_search_when_enabled (line 1699) | fn test_generate_styles_includes_search_when_enabled() {
function test_generate_styles_excludes_search_when_disabled (line 1709) | fn test_generate_styles_excludes_search_when_disabled() {
function test_styles_include_theme_toggle_when_enabled (line 1719) | fn test_styles_include_theme_toggle_when_enabled() {
function test_styles_include_responsive_breakpoints (line 1729) | fn test_styles_include_responsive_breakpoints() {
function test_print_css_hides_interactive_elements (line 1736) | fn test_print_css_hides_interactive_elements() {
function test_styles_include_accessibility (line 1743) | fn test_styles_include_accessibility() {
function test_styles_include_animations (line 1750) | fn test_styles_include_animations() {
function test_styles_include_glass_morphism (line 1757) | fn test_styles_include_glass_morphism() {
function test_styles_include_oklch_colors (line 1765) | fn test_styles_include_oklch_colors() {
function test_styles_include_tool_badge_styling (line 1773) | fn test_styles_include_tool_badge_styling() {
function test_styles_include_glassmorphism_popover (line 1791) | fn test_styles_include_glassmorphism_popover() {
function test_styles_include_mobile_bottom_sheet (line 1812) | fn test_styles_include_mobile_bottom_sheet() {
function test_styles_include_high_contrast (line 1826) | fn test_styles_include_high_contrast() {
function test_styles_include_glow_effects (line 1836) | fn test_styles_include_glow_effects() {
function test_print_styles_hide_popovers (line 1853) | fn test_print_styles_hide_popovers() {
FILE: src/html_export/template.rs
type TemplateError (line 19) | pub enum TemplateError {
type ExportOptions (line 33) | pub struct ExportOptions {
constant SCREEN_ONLY_CSS (line 65) | const SCREEN_ONLY_CSS: &str = r#"
constant CDN_FALLBACK_CSS (line 71) | const CDN_FALLBACK_CSS: &str = r#"
constant PRISM_THEME_URL (line 93) | const PRISM_THEME_URL: &str =
constant PRISM_THEME_SRI (line 95) | const PRISM_THEME_SRI: &str =
constant PRISM_CORE_URL (line 97) | const PRISM_CORE_URL: &str = "https://cdn.jsdelivr.net/npm/prismjs@1.29....
constant PRISM_CORE_SRI (line 98) | const PRISM_CORE_SRI: &str =
constant PRISM_RUST_URL (line 100) | const PRISM_RUST_URL: &str =
constant PRISM_RUST_SRI (line 102) | const PRISM_RUST_SRI: &str =
constant PRISM_PYTHON_URL (line 104) | const PRISM_PYTHON_URL: &str =
constant PRISM_PYTHON_SRI (line 106) | const PRISM_PYTHON_SRI: &str =
constant PRISM_JS_URL (line 108) | const PRISM_JS_URL: &str =
constant PRISM_JS_SRI (line 110) | const PRISM_JS_SRI: &str =
constant PRISM_TS_URL (line 112) | const PRISM_TS_URL: &str =
constant PRISM_TS_SRI (line 114) | const PRISM_TS_SRI: &str =
constant PRISM_BASH_URL (line 116) | const PRISM_BASH_URL: &str =
constant PRISM_BASH_SRI (line 118) | const PRISM_BASH_SRI: &str =
constant PRINT_EXTRA_CSS (line 121) | const PRINT_EXTRA_CSS: &str = r#"
method default (line 195) | fn default() -> Self {
type HtmlTemplate (line 214) | pub struct HtmlTemplate {
method render (line 267) | pub fn render(&self, options: &ExportOptions) -> String {
method render_header (line 441) | fn render_header(&self) -> String {
method render_toolbar (line 532) | fn render_toolbar(&self, options: &ExportOptions) -> String {
method render_print_footer (line 574) | fn render_print_footer(&self) -> String {
type TemplateMetadata (line 239) | pub struct TemplateMetadata {
type HtmlExporter (line 586) | pub struct HtmlExporter {
method new (line 592) | pub fn new() -> Self {
method with_options (line 599) | pub fn with_options(options: ExportOptions) -> Self {
method options (line 604) | pub fn options(&self) -> &ExportOptions {
method create_template (line 609) | pub fn create_template(&self, title: &str) -> HtmlTemplate {
method export_messages (line 628) | pub fn export_messages(
method default (line 746) | fn default() -> Self {
function html_escape (line 752) | pub fn html_escape(s: &str) -> String {
type LogBuffer (line 768) | struct LogBuffer(Arc<Mutex<Vec<u8>>>);
method write (line 771) | fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
method flush (line 777) | fn flush(&mut self) -> std::io::Result<()> {
function capture_logs (line 782) | fn capture_logs<F: FnOnce()>(f: F) -> String {
function test_template_error_display_strings (line 799) | fn test_template_error_display_strings() {
function test_html_escape (line 815) | fn test_html_escape() {
function test_export_options_default (line 822) | fn test_export_options_default() {
function test_cdn_resources_include_integrity (line 830) | fn test_cdn_resources_include_integrity() {
function test_no_cdn_removes_external_tags (line 852) | fn test_no_cdn_removes_external_tags() {
function test_template_renders_valid_html (line 872) | fn test_template_renders_valid_html() {
function test_encrypted_template_shows_modal (line 893) | fn test_encrypted_template_shows_modal() {
function test_export_messages_plain (line 910) | fn test_export_messages_plain() {
function test_export_logs_include_milestones (line 931) | fn test_export_logs_include_milestones() {
function test_export_messages_requires_password_when_encrypted (line 983) | fn test_export_messages_requires_password_when_encrypted() {
function test_export_messages_encrypted_payload (line 1009) | fn test_export_messages_encrypted_payload() {
FILE: src/indexer/lexical_generation.rs
constant LEXICAL_GENERATION_MANIFEST_VERSION (line 49) | pub(crate) const LEXICAL_GENERATION_MANIFEST_VERSION: u32 = 3;
constant LEXICAL_GENERATION_MANIFEST_FILE (line 52) | pub(crate) const LEXICAL_GENERATION_MANIFEST_FILE: &str = "lexical-gener...
type LexicalGenerationBuildState (line 58) | pub(crate) enum LexicalGenerationBuildState {
type LexicalGenerationPublishState (line 81) | pub(crate) enum LexicalGenerationPublishState {
type LexicalShardLifecycleState (line 98) | pub(crate) enum LexicalShardLifecycleState {
type LexicalGenerationShardPlan (line 120) | pub(crate) struct LexicalGenerationShardPlan {
type LexicalGenerationBuildBudget (line 132) | pub(crate) struct LexicalGenerationBuildBudget {
type LexicalGenerationMergeDebtState (line 151) | pub(crate) enum LexicalGenerationMergeDebtState {
type LexicalGenerationMergeDebt (line 171) | pub(crate) struct LexicalGenerationMergeDebt {
method has_pending_work (line 194) | pub(crate) fn has_pending_work(&self) -> bool {
method is_fully_settled (line 205) | pub(crate) fn is_fully_settled(&self) -> bool {
method default (line 181) | fn default() -> Self {
type LexicalShardManifest (line 215) | pub(crate) struct LexicalShardManifest {
method planned (line 231) | pub(crate) fn planned(shard_id: impl Into<String>, shard_ordinal: u32,...
method transition (line 248) | pub(crate) fn transition(&mut self, state: LexicalShardLifecycleState,...
type LexicalGenerationRecoveryAction (line 257) | pub(crate) enum LexicalGenerationRecoveryAction {
type LexicalGenerationRecoveryDecision (line 267) | pub(crate) struct LexicalGenerationRecoveryDecision {
function is_protected_retention_disposition (line 286) | pub(crate) fn is_protected_retention_disposition(disposition: LexicalCle...
type LexicalCleanupDisposition (line 301) | pub(crate) enum LexicalCleanupDisposition {
method as_str (line 321) | fn as_str(self) -> &'static str {
method all_variants (line 342) | pub(crate) fn all_variants() -> &'static [Self] {
type LexicalShardCleanupInventory (line 357) | pub(crate) struct LexicalShardCleanupInventory {
type LexicalGenerationCleanupInventory (line 368) | pub(crate) struct LexicalGenerationCleanupInventory {
type LexicalCleanupDryRunPlan (line 383) | pub(crate) struct LexicalCleanupDryRunPlan {
method from_manifests (line 528) | pub(crate) fn from_manifests<'a>(
method has_reclaimable_artifacts (line 563) | pub(crate) fn has_reclaimable_artifacts(&self) -> bool {
method reclaim_candidates (line 567) | pub(crate) fn reclaim_candidates(&self) -> Vec<LexicalCleanupReclaimCa...
method apply_gate (line 571) | pub(crate) fn apply_gate(&self, explicit_operator_approval: bool) -> L...
method apply_gate_with_fingerprint (line 575) | pub(crate) fn apply_gate_with_fingerprint(
method inspection_required_generation_ids (line 661) | pub(crate) fn inspection_required_generation_ids(&self) -> Vec<String> {
method inspection_required_retained_bytes (line 665) | pub(crate) fn inspection_required_retained_bytes(&self) -> u64 {
method record_inspection_item (line 669) | fn record_inspection_item(&mut self, item: LexicalCleanupInspectionIte...
method record_inventory (line 684) | fn record_inventory(&mut self, inventory: LexicalGenerationCleanupInve...
method requires_inspection (line 887) | fn requires_inspection(disposition: LexicalCleanupDisposition) -> bool {
method is_protected_retention (line 895) | fn is_protected_retention(disposition: LexicalCleanupDisposition) -> b...
method compute_approval_fingerprint (line 899) | fn compute_approval_fingerprint(&self) -> String {
type LexicalCleanupReclaimCandidate (line 418) | pub(crate) struct LexicalCleanupReclaimCandidate {
type LexicalCleanupInspectionItem (line 427) | pub(crate) struct LexicalCleanupInspectionItem {
type LexicalCleanupDispositionSummary (line 436) | pub(crate) struct LexicalCleanupDispositionSummary {
type LexicalCleanupGenerationDispositionSummary (line 444) | pub(crate) struct LexicalCleanupGenerationDispositionSummary {
type LexicalCleanupApprovalFingerprintStatus (line 453) | pub(crate) enum LexicalCleanupApprovalFingerprintStatus {
type LexicalCleanupApplyBlocker (line 463) | pub(crate) enum LexicalCleanupApplyBlocker {
type LexicalCleanupApplyGate (line 472) | pub(crate) struct LexicalCleanupApplyGate {
function hash_str (line 1000) | fn hash_str(hasher: &mut blake3::Hasher, value: &str) {
function hash_u64 (line 1005) | fn hash_u64(hasher: &mut blake3::Hasher, value: u64) {
function hash_usize (line 1009) | fn hash_usize(hasher: &mut blake3::Hasher, value: usize) {
type LexicalGenerationFailure (line 1015) | pub(crate) struct LexicalGenerationFailure {
type LexicalGenerationManifest (line 1034) | pub(crate) struct LexicalGenerationManifest {
method new_scratch (line 1087) | pub(crate) fn new_scratch(
method set_shard_plan_and_budget (line 1117) | pub(crate) fn set_shard_plan_and_budget(
method set_shards (line 1130) | pub(crate) fn set_shards(&mut self, shards: Vec<LexicalShardManifest>,...
method transition_shard (line 1136) | pub(crate) fn transition_shard(
method transition_build (line 1174) | pub(crate) fn transition_build(&mut self, state: LexicalGenerationBuil...
method transition_publish (line 1180) | pub(crate) fn transition_publish(&mut self, state: LexicalGenerationPu...
method record_merge_debt (line 1186) | pub(crate) fn record_merge_debt(
method transition_merge_debt (line 1209) | pub(crate) fn transition_merge_debt(
method record_failure (line 1230) | pub(crate) fn record_failure(
method is_serveable (line 1247) | pub(crate) fn is_serveable(&self) -> bool {
method is_fully_consolidated (line 1253) | pub(crate) fn is_fully_consolidated(&self) -> bool {
method cleanup_inventory (line 1258) | pub(crate) fn cleanup_inventory(&self) -> LexicalGenerationCleanupInve...
method recovery_decision (line 1304) | pub(crate) fn recovery_decision(&self) -> LexicalGenerationRecoveryDec...
method shards_with_state (line 1400) | fn shards_with_state(&self, states: &[LexicalShardLifecycleState]) -> ...
method all_shards_publish_ready (line 1408) | fn all_shards_publish_ready(&self) -> bool {
method classify_shard_for_cleanup (line 1422) | fn classify_shard_for_cleanup(
method classify_generation_for_cleanup (line 1527) | fn classify_generation_for_cleanup(
method classify_generation_retention_window (line 1596) | fn classify_generation_retention_window(
method generation_cleanup_allows_reclaim (line 1640) | fn generation_cleanup_allows_reclaim(&self) -> bool {
method generation_has_active_work (line 1662) | fn generation_has_active_work(&self) -> bool {
function manifest_path (line 1680) | pub(crate) fn manifest_path(generation_dir: &Path) -> PathBuf {
function now_ms (line 1685) | pub(crate) fn now_ms() -> i64 {
function store_manifest (line 1696) | pub(crate) fn store_manifest(
function sync_parent_directory (line 1751) | fn sync_parent_directory(path: &Path) -> Result<()> {
function sync_parent_directory (line 1763) | fn sync_parent_directory(_path: &Path) -> Result<()> {
function load_manifest (line 1770) | pub(crate) fn load_manifest(generation_dir: &Path) -> Result<Option<Lexi...
function manifest_round_trips_through_json (line 1800) | fn manifest_round_trips_through_json() {
function build_and_publish_states_serialize_as_snake_case_strings (line 1879) | fn build_and_publish_states_serialize_as_snake_case_strings() {
function failure_history_is_append_only_and_bumps_updated_at (line 1932) | fn failure_history_is_append_only_and_bumps_updated_at() {
function store_and_load_round_trip_through_disk (line 1947) | fn store_and_load_round_trip_through_disk() {
function load_refuses_future_manifest_version (line 1965) | fn load_refuses_future_manifest_version() {
function store_is_atomic_rename_and_overwrites_existing_manifest (line 1997) | fn store_is_atomic_rename_and_overwrites_existing_manifest() {
function is_serveable_requires_validated_and_published (line 2022) | fn is_serveable_requires_validated_and_published() {
function published_generation_can_serve_before_deferred_merge_debt_settles (line 2035) | fn published_generation_can_serve_before_deferred_merge_debt_settles() {
function merge_debt_tracks_background_pause_block_and_completion_reasons (line 2065) | fn merge_debt_tracks_background_pause_block_and_completion_reasons() {
function recovery_decision_attaches_published_generation (line 2121) | fn recovery_decision_attaches_published_generation() {
function recovery_decision_publishes_complete_validated_shard_set (line 2147) | fn recovery_decision_publishes_complete_validated_shard_set() {
function recovery_decision_resumes_resumable_staged_shards (line 2171) | fn recovery_decision_resumes_resumable_staged_shards() {
function recovery_decision_keeps_quarantined_shards_out_of_search (line 2204) | fn recovery_decision_keeps_quarantined_shards_out_of_search() {
function recovery_decision_discards_abandoned_or_failed_generation (line 2237) | fn recovery_decision_discards_abandoned_or_failed_generation() {
function shard_transition_records_retention_and_recovery_reasons (line 2264) | fn shard_transition_records_retention_and_recovery_reasons() {
function cleanup_inventory_retains_current_published_generation (line 2295) | fn cleanup_inventory_retains_current_published_generation() {
function cleanup_inventory_marks_superseded_unpinned_shards_reclaimable (line 2320) | fn cleanup_inventory_marks_superseded_unpinned_shards_reclaimable() {
function cleanup_inventory_keeps_quarantined_artifacts_for_inspection (line 2370) | fn cleanup_inventory_keeps_quarantined_artifacts_for_inspection() {
function cleanup_inventory_preserves_active_merge_debt (line 2410) | fn cleanup_inventory_preserves_active_merge_debt() {
function cleanup_dry_run_plan_summarizes_reclaim_retain_and_quarantine_buckets (line 2450) | fn cleanup_dry_run_plan_summarizes_reclaim_retain_and_quarantine_buckets...
function cleanup_dry_run_plan_lists_only_reclaimable_shard_candidates (line 2645) | fn cleanup_dry_run_plan_lists_only_reclaimable_shard_candidates() {
function cleanup_apply_gate_requires_approval_and_blocks_active_work (line 2771) | fn cleanup_apply_gate_requires_approval_and_blocks_active_work() {
function cleanup_apply_gate_deserializes_legacy_payload_without_lifecycle_summaries (line 3112) | fn cleanup_apply_gate_deserializes_legacy_payload_without_lifecycle_summ...
function cleanup_dry_run_plan_fingerprints_approval_surface (line 3139) | fn cleanup_dry_run_plan_fingerprints_approval_surface() -> Result<(), se...
function cleanup_dry_run_plan_lists_inspection_items_for_retained_risky_artifacts (line 3303) | fn cleanup_dry_run_plan_lists_inspection_items_for_retained_risky_artifa...
function test_shard_plan (line 3388) | fn test_shard_plan(
function test_budget (line 3401) | fn test_budget() -> LexicalGenerationBuildBudget {
function test_shard (line 3414) | fn test_shard(
function cleanup_disposition_as_str_matches_serde_serialization_byte_for_byte (line 3444) | fn cleanup_disposition_as_str_matches_serde_serialization_byte_for_byte() {
function cleanup_disposition_protected_retention_classification_is_exhaustive (line 3488) | fn cleanup_disposition_protected_retention_classification_is_exhaustive() {
function cleanup_disposition_serde_round_trips_for_every_variant (line 3559) | fn cleanup_disposition_serde_round_trips_for_every_variant() {
function record_inventory_emits_structured_classification_event_for_quarantined_generation (line 3593) | fn record_inventory_emits_structured_classification_event_for_quarantine...
function record_inventory_emits_correct_severity_for_every_disposition_variant (line 3785) | fn record_inventory_emits_correct_severity_for_every_disposition_variant...
FILE: src/indexer/memoization.rs
type MemoContentHash (line 44) | pub(crate) struct MemoContentHash(pub Vec<u8>);
method from_bytes (line 47) | pub(crate) fn from_bytes(bytes: impl Into<Vec<u8>>) -> Self {
method as_bytes (line 51) | pub(crate) fn as_bytes(&self) -> &[u8] {
type MemoKey (line 62) | pub(crate) struct MemoKey {
method new (line 69) | pub(crate) fn new(
type MemoLookup (line 87) | pub(crate) enum MemoLookup<V> {
type MemoCacheEvent (line 98) | pub(crate) enum MemoCacheEvent {
type MemoCacheOperation (line 112) | pub(crate) enum MemoCacheOperation {
type MemoEvictReason (line 121) | pub(crate) enum MemoEvictReason {
type MemoCacheStats (line 132) | pub(crate) struct MemoCacheStats {
type MemoCacheAuditRecord (line 146) | pub(crate) struct MemoCacheAuditRecord {
type MemoQuarantineInspectionItem (line 158) | pub(crate) struct MemoQuarantineInspectionItem {
type MemoQuarantineSummary (line 166) | pub(crate) struct MemoQuarantineSummary {
type ContentAddressedMemoCache (line 177) | pub(crate) struct ContentAddressedMemoCache<V: Clone> {
function with_capacity (line 186) | pub(crate) fn with_capacity(max_entries: usize) -> Self {
function get (line 197) | pub(crate) fn get(&mut self, key: &MemoKey) -> MemoLookup<V> {
function get_with_audit (line 201) | pub(crate) fn get_with_audit(
function insert (line 246) | pub(crate) fn insert(&mut self, key: MemoKey, value: V) -> MemoCacheEvent {
function insert_with_audit (line 250) | pub(crate) fn insert_with_audit(&mut self, key: MemoKey, value: V) -> Me...
function invalidate (line 293) | pub(crate) fn invalidate(&mut self, key: &MemoKey) -> bool {
function invalidate_with_audit (line 297) | pub(crate) fn invalidate_with_audit(&mut self, key: &MemoKey) -> MemoCac...
function quarantine (line 312) | pub(crate) fn quarantine(&mut self, key: MemoKey, reason: impl Into<Stri...
function quarantine_with_audit (line 316) | pub(crate) fn quarantine_with_audit(
function stats (line 341) | pub(crate) fn stats(&self) -> &MemoCacheStats {
function quarantine_inspection_items (line 345) | pub(crate) fn quarantine_inspection_items(&self) -> Vec<MemoQuarantineIn...
function quarantine_summary (line 358) | pub(crate) fn quarantine_summary(&self) -> MemoQuarantineSummary {
function garbage_collect_quarantined (line 373) | pub(crate) fn garbage_collect_quarantined(
function preview_garbage_collect_quarantined_algorithm (line 387) | pub(crate) fn preview_garbage_collect_quarantined_algorithm(
function preview_garbage_collect_quarantined_reason (line 406) | pub(crate) fn preview_garbage_collect_quarantined_reason(
function garbage_collect_quarantined_algorithm (line 425) | pub(crate) fn garbage_collect_quarantined_algorithm(
function garbage_collect_quarantined_reason (line 445) | pub(crate) fn garbage_collect_quarantined_reason(
function touch (line 456) | fn touch(&mut self, key: &MemoKey) {
function audit_record (line 463) | fn audit_record(
function sort_quarantine_inspection_items (line 482) | fn sort_quarantine_inspection_items(items: &mut [MemoQuarantineInspectio...
function key (line 503) | fn key(content: &[u8], algo: &str, version: &str) -> MemoKey {
function memo_key_strategy (line 507) | fn memo_key_strategy() -> impl Strategy<Value = MemoKey> {
function memo_event_strategy (line 522) | fn memo_event_strategy() -> impl Strategy<Value = MemoCacheEvent> {
function memo_operation_strategy (line 538) | fn memo_operation_strategy() -> impl Strategy<Value = MemoCacheOperation> {
function memo_lookup_strategy (line 547) | fn memo_lookup_strategy() -> impl Strategy<Value = MemoLookup<String>> {
function memo_stats_strategy (line 555) | fn memo_stats_strategy() -> impl Strategy<Value = MemoCacheStats> {
function quarantine_item_strategy (line 586) | fn quarantine_item_strategy() -> impl Strategy<Value = MemoQuarantineIns...
function quarantine_summary_strategy (line 591) | fn quarantine_summary_strategy() -> impl Strategy<Value = MemoQuarantine...
function memo_audit_record_strategy (line 606) | fn memo_audit_record_strategy() -> impl Strategy<Value = MemoCacheAuditR...
function memo_key_distinguishes_by_content_algorithm_and_version (line 680) | fn memo_key_distinguishes_by_content_algorithm_and_version() {
function memo_key_round_trips_through_json (line 689) | fn memo_key_round_trips_through_json() {
function empty_cache_returns_miss_and_records_stat (line 697) | fn empty_cache_returns_miss_and_records_stat() -> Result<(), String> {
function insert_then_get_returns_hit_and_bumps_counters (line 711) | fn insert_then_get_returns_hit_and_bumps_counters() -> Result<(), String> {
function version_bump_does_not_hit_prior_entry (line 729) | fn version_bump_does_not_hit_prior_entry() -> Result<(), String> {
function capacity_lru_evicts_oldest_and_reports_event (line 742) | fn capacity_lru_evicts_oldest_and_reports_event() {
function invalidate_removes_entry_and_bumps_counter (line 773) | fn invalidate_removes_entry_and_bumps_counter() {
function quarantined_entry_stays_resident_but_never_hits (line 788) | fn quarantined_entry_stays_resident_but_never_hits() -> Result<(), Strin...
function quarantine_inspection_items_are_stable_and_reasoned (line 810) | fn quarantine_inspection_items_are_stable_and_reasoned() {
function quarantine_summary_groups_by_reason_and_algorithm (line 840) | fn quarantine_summary_groups_by_reason_and_algorithm() -> Result<(), ser...
function garbage_collect_quarantined_entry_after_inspection (line 869) | fn garbage_collect_quarantined_entry_after_inspection() -> Result<(), St...
function preview_garbage_collect_quarantined_algorithm_is_deterministic_and_non_mutating (line 903) | fn preview_garbage_collect_quarantined_algorithm_is_deterministic_and_no...
function garbage_collect_quarantined_algorithm_returns_stable_audit_items (line 939) | fn garbage_collect_quarantined_algorithm_returns_stable_audit_items() {
function garbage_collect_quarantined_reason_is_previewable_and_exact (line 975) | fn garbage_collect_quarantined_reason_is_previewable_and_exact() {
function stats_serialize_as_snake_case_and_count_live_entries (line 1018) | fn stats_serialize_as_snake_case_and_count_live_entries() {
function get_with_audit_reports_lookup_event_and_capacity (line 1031) | fn get_with_audit_reports_lookup_event_and_capacity() -> Result<(), Stri...
function insert_with_audit_reports_quarantine_noop_and_json_shape (line 1054) | fn insert_with_audit_reports_quarantine_noop_and_json_shape() -> Result<...
function invalidate_with_audit_reports_removed_state (line 1080) | fn invalidate_with_audit_reports_removed_state() {
function quarantine_with_audit_reports_current_quarantine_state (line 1105) | fn quarantine_with_audit_reports_current_quarantine_state() -> Result<()...
FILE: src/indexer/mod.rs
type BatchClassificationMap (line 84) | type BatchClassificationMap =
constant LEXICAL_REBUILD_PACKET_VERSION (line 87) | const LEXICAL_REBUILD_PACKET_VERSION: u32 = CONVERSATION_PACKET_VERSION;
constant CODEX_INDEXER_EXTRA_COMPACT_THRESHOLD_BYTES (line 88) | const CODEX_INDEXER_EXTRA_COMPACT_THRESHOLD_BYTES: u64 = 16 * 1024 * 1024;
constant AT_FDCWD (line 94) | pub const AT_FDCWD: c_int = -100;
constant RENAME_EXCHANGE (line 95) | pub const RENAME_EXCHANGE: c_uint = 0x2;
function renameat2 (line 98) | pub fn renameat2(
type LexicalRebuildPacketSource (line 110) | enum LexicalRebuildPacketSource {
type LexicalRebuildPacketProvenanceMode (line 117) | enum LexicalRebuildPacketProvenanceMode {
type LexicalRebuildPacketDiagnostics (line 126) | struct LexicalRebuildPacketDiagnostics {
type LexicalRebuildPacketIdentity (line 134) | struct LexicalRebuildPacketIdentity {
type LexicalRebuildPacketProvenance (line 146) | struct LexicalRebuildPacketProvenance {
type LexicalRebuildConversationPacket (line 153) | struct LexicalRebuildConversationPacket {
method from_canonical_replay (line 2022) | fn from_canonical_replay(
method from_canonical_replay_messages (line 2042) | fn from_canonical_replay_messages(
method from_canonical_replay_parts (line 2082) | fn from_canonical_replay_parts(
method fingerprint_input (line 2125) | fn fingerprint_input(&self) -> LexicalRebuildPacketFingerprintInput<'_> {
method prebuilt_docs (line 2145) | fn prebuilt_docs(&self) -> Vec<frankensearch::lexical::CassDocumentRef...
method from_normalized_conversation (line 2180) | fn from_normalized_conversation(conv: &NormalizedConversation) -> Self {
method semantic_view (line 2227) | fn semantic_view(&self) -> LexicalRebuildPacketSemanticView {
type LexicalRebuildPacketFingerprintInput (line 167) | pub(crate) struct LexicalRebuildPacketFingerprintInput<'a> {
function message_id_from_db (line 186) | fn message_id_from_db(raw: i64) -> Option<u64> {
function saturating_u32_from_i64 (line 191) | fn saturating_u32_from_i64(raw: i64) -> u32 {
type ReindexCommand (line 200) | pub enum ReindexCommand {
type IndexerEvent (line 205) | pub enum IndexerEvent {
type StaleAction (line 216) | pub enum StaleAction {
method from_env_str (line 228) | fn from_env_str(s: &str) -> Self {
type StaleConfig (line 239) | pub struct StaleConfig {
method from_env (line 263) | pub fn from_env() -> Self {
method is_enabled (line 286) | pub fn is_enabled(&self) -> bool {
method default (line 251) | fn default() -> Self {
function env_u64 (line 291) | fn env_u64(key: &str) -> Option<u64> {
type StaleDetector (line 301) | pub struct StaleDetector {
method new (line 319) | pub fn new(config: StaleConfig) -> Self {
method from_env (line 332) | pub fn from_env() -> Self {
method record_scan (line 339) | pub fn record_scan(&self, conversations_indexed: usize) {
method check_stale (line 369) | pub fn check_stale(&self) -> Option<StaleAction> {
method stats (line 415) | pub fn stats(&self) -> StaleStats {
method reset (line 431) | pub fn reset(&self) {
type StaleStats (line 446) | pub struct StaleStats {
type ConnectorStats (line 457) | pub struct ConnectorStats {
type LexicalRepairStats (line 468) | pub struct LexicalRepairStats {
type IndexingStats (line 479) | pub struct IndexingStats {
type CanonicalMutationCounts (line 506) | struct CanonicalMutationCounts {
method accumulate (line 512) | fn accumulate(self, other: Self) -> Self {
method changed (line 523) | fn changed(self) -> bool {
type IndexingProgress (line 529) | pub struct IndexingProgress {
method phase_label_for (line 598) | fn phase_label_for(phase: usize) -> &'static str {
method phase_label (line 608) | pub fn phase_label(&self) -> &'static str {
method snapshot_json (line 615) | pub fn snapshot_json(&self, elapsed_ms: u128) -> serde_json::Value {
function staged_field_or_null (line 794) | fn staged_field_or_null(is_rebuilding: bool, value: usize) -> serde_json...
function non_empty_json_string (line 802) | fn non_empty_json_string(value: String) -> Option<String> {
function active_rebuild_json_string (line 806) | fn active_rebuild_json_string(is_rebuilding: bool, value: String) -> Opt...
type IndexOptions (line 811) | pub struct IndexOptions {
type LexicalPopulationStrategy (line 832) | pub(crate) enum LexicalPopulationStrategy {
method as_str (line 839) | fn as_str(self) -> &'static str {
function select_lexical_population_strategy (line 848) | fn select_lexical_population_strategy(
function resolve_lexical_population_strategy (line 861) | fn resolve_lexical_population_strategy(
function lexical_population_strategy_requires_inline_tantivy (line 881) | fn lexical_population_strategy_requires_inline_tantivy(
function record_lexical_population_strategy (line 890) | fn record_lexical_population_strategy(
function record_lexical_population_strategy_if_unset (line 904) | fn record_lexical_population_strategy_if_unset(
function record_incremental_canonical_lexical_repair (line 920) | fn record_incremental_canonical_lexical_repair(
function reset_progress_to_idle (line 939) | fn reset_progress_to_idle(progress: Option<&Arc<IndexingProgress>>) {
type LexicalRebuildPipelineSinkRuntimeSnapshot (line 1033) | struct LexicalRebuildPipelineSinkRuntimeSnapshot {
method new (line 1040) | fn new(
function capture_lexical_rebuild_pipeline_runtime (line 1053) | fn capture_lexical_rebuild_pipeline_runtime(
function refresh_lexical_rebuild_pipeline_runtime (line 1103) | fn refresh_lexical_rebuild_pipeline_runtime(
function refresh_and_maybe_apply_lexical_rebuild_pipeline_runtime (line 1227) | fn refresh_and_maybe_apply_lexical_rebuild_pipeline_runtime(
function exact_total_counts_from_progress (line 1268) | fn exact_total_counts_from_progress(
function record_exact_total_counts_in_progress (line 1279) | fn record_exact_total_counts_in_progress(
type MatchingLexicalRebuildStateStatus (line 1294) | struct MatchingLexicalRebuildStateStatus {
function matching_lexical_rebuild_state_status (line 1303) | fn matching_lexical_rebuild_state_status(
function matching_lexical_rebuild_state_status_if_present (line 1315) | fn matching_lexical_rebuild_state_status_if_present(
function matching_completed_lexical_rebuild_state_status_without_fingerprint (line 1328) | fn matching_completed_lexical_rebuild_state_status_without_fingerprint(
function matching_lexical_rebuild_state_status_for_loaded_state (line 1367) | fn matching_lexical_rebuild_state_status_for_loaded_state(
function nonresumable_pending_lexical_rebuild_status_without_fingerprint (line 1391) | fn nonresumable_pending_lexical_rebuild_status_without_fingerprint(
function nonresumable_pending_lexical_rebuild_status_from_readonly_db (line 1422) | fn nonresumable_pending_lexical_rebuild_status_from_readonly_db(
function should_try_readonly_nonresumable_lexical_resume (line 1443) | fn should_try_readonly_nonresumable_lexical_resume(opts: &IndexOptions) ...
function should_preserve_matching_completed_lexical_checkpoint_during_full_scan (line 1454) | fn should_preserve_matching_completed_lexical_checkpoint_during_full_scan(
function should_preflight_existing_tantivy_reader (line 1466) | fn should_preflight_existing_tantivy_reader(
function should_probe_live_tantivy_docs_for_post_full_scan_skip (line 1473) | fn should_probe_live_tantivy_docs_for_post_full_scan_skip(
function observed_tantivy_docs_for_post_full_scan_skip (line 1489) | fn observed_tantivy_docs_for_post_full_scan_skip(
function should_force_authoritative_rebuild (line 1512) | fn should_force_authoritative_rebuild(
function should_skip_noop_final_lexical_checkpoint_refresh (line 1519) | fn should_skip_noop_final_lexical_checkpoint_refresh(
function should_skip_post_full_scan_authoritative_rebuild (line 1533) | fn should_skip_post_full_scan_authoritative_rebuild(
type RunIndexProgressReset (line 1549) | struct RunIndexProgressReset {
method new (line 1554) | fn new(progress: Option<Arc<IndexingProgress>>) -> Self {
method drop (line 1560) | fn drop(&mut self) {
constant LEXICAL_REBUILD_STATE_VERSION (line 1565) | const LEXICAL_REBUILD_STATE_VERSION: u8 = 2;
constant LEXICAL_REBUILD_PAGE_SIZE (line 1584) | const LEXICAL_REBUILD_PAGE_SIZE: i64 = 1024;
constant LEXICAL_REBUILD_LEGACY_COMPAT_PAGE_SIZE (line 1585) | const LEXICAL_REBUILD_LEGACY_COMPAT_PAGE_SIZE: i64 = 200;
constant LEXICAL_REBUILD_PAGE_SIZE_PUBLIC (line 1586) | pub(crate) const LEXICAL_REBUILD_PAGE_SIZE_PUBLIC: i64 = LEXICAL_REBUILD...
function lexical_rebuild_page_size_is_compatible (line 1588) | pub(crate) fn lexical_rebuild_page_size_is_compatible(page_size: i64) ->...
function lexical_rebuild_db_paths_match (line 1592) | fn lexical_rebuild_db_paths_match(saved: &str, current: &str) -> bool {
function lexical_rebuild_db_state_matches (line 1596) | fn lexical_rebuild_db_state_matches(
function lexical_rebuild_db_state_matches_legacy (line 1605) | fn lexical_rebuild_db_state_matches_legacy(
type IndexRunLockGuard (line 1618) | struct IndexRunLockGuard {
method write_metadata (line 1640) | fn write_metadata(&mut self, mode: SearchMaintenanceMode) -> Result<()> {
method set_mode (line 1680) | fn set_mode(&mut self, mode: SearchMaintenanceMode) -> Result<()> {
method drop (line 1631) | fn drop(&mut self) {
type IndexRunLockHeartbeat (line 1685) | struct IndexRunLockHeartbeat {
method start (line 1691) | fn start(data_dir: PathBuf, interval: Duration, metadata_write_lock: A...
method drop (line 1729) | fn drop(&mut self) {
function heartbeat_index_run_lock_with_lock (line 1741) | fn heartbeat_index_run_lock_with_lock(
function write_index_run_lock_heartbeat_in_place (line 1787) | fn write_index_run_lock_heartbeat_in_place(lock_path: &Path, refreshed: ...
function heartbeat_index_run_lock (line 1814) | fn heartbeat_index_run_lock(data_dir: &Path) -> Result<()> {
function index_run_lock_heartbeat_interval (line 1818) | fn index_run_lock_heartbeat_interval() -> Duration {
function lexical_rebuild_noise_role (line 1828) | fn lexical_rebuild_noise_role(is_tool_role: bool) -> Option<&'static str> {
function lexical_rebuild_packet_provenance_from_canonical (line 1832) | fn lexical_rebuild_packet_provenance_from_canonical(
function lexical_rebuild_packet_provenance_from_metadata (line 1893) | fn lexical_rebuild_packet_provenance_from_metadata(
function lexical_rebuild_grouped_message_from_normalized (line 1949) | fn lexical_rebuild_grouped_message_from_normalized(
function lexical_rebuild_contract_provenance (line 1960) | fn lexical_rebuild_contract_provenance(
function lexical_rebuild_contract_from_grouped_messages (line 1970) | fn lexical_rebuild_contract_from_grouped_messages(
function lexical_rebuild_contract_from_canonical_messages (line 1995) | fn lexical_rebuild_contract_from_canonical_messages(
type LexicalRebuildEquivalenceEvidence (line 2261) | pub(crate) struct LexicalRebuildEquivalenceEvidence {
type LexicalRebuildEquivalenceGoldenHit (line 2269) | pub(crate) struct LexicalRebuildEquivalenceGoldenHit {
constant LEXICAL_REBUILD_EQUIVALENCE_DEFAULT_PROBES (line 2274) | const LEXICAL_REBUILD_EQUIVALENCE_DEFAULT_PROBES: &[&str] =
type LexicalRebuildEquivalenceAccumulator (line 2277) | struct LexicalRebuildEquivalenceAccumulator {
method new (line 2286) | fn new() -> Self {
method with_probes (line 2294) | fn with_probes<I>(probes: I) -> Self
method absorb_packet (line 2310) | fn absorb_packet(&mut self, packet: &LexicalRebuildConversationPacket) {
method finalize (line 2414) | fn finalize(self) -> LexicalRebuildEquivalenceEvidence {
function lexical_rebuild_equivalence_update_opt_str (line 2443) | fn lexical_rebuild_equivalence_update_opt_str(hasher: &mut blake3::Hashe...
type LexicalRebuildPacketPrepInput (line 2457) | struct LexicalRebuildPacketPrepInput {
function prepare_lexical_rebuild_packet_from_canonical (line 2462) | fn prepare_lexical_rebuild_packet_from_canonical(
function prepare_lexical_rebuild_packet_batch (line 2482) | fn prepare_lexical_rebuild_packet_batch(
function assign_lexical_rebuild_flow_reservation_bytes (line 2515) | fn assign_lexical_rebuild_flow_reservation_bytes(
type LexicalRebuildPacketSemanticView (line 2551) | struct LexicalRebuildPacketSemanticView {
function flush_streamed_lexical_rebuild_batch (line 2570) | fn flush_streamed_lexical_rebuild_batch(
function lexical_rebuild_prepare_prebuilt_doc_refs (line 2653) | fn lexical_rebuild_prepare_prebuilt_doc_refs<'a>(
function build_lexical_rebuild_shard_index (line 2677) | fn build_lexical_rebuild_shard_index(
function build_lexical_rebuild_shard_index_summary_with_writer_parallelism (line 2693) | fn build_lexical_rebuild_shard_index_summary_with_writer_parallelism(
type LexicalRebuildShardBuildWork (line 2734) | struct LexicalRebuildShardBuildWork {
type LexicalRebuildShardBuildResult (line 2742) | struct LexicalRebuildShardBuildResult {
type LexicalRebuildShardMergeWork (line 2751) | struct LexicalRebuildShardMergeWork {
type LexicalRebuildShardMergeArtifact (line 2757) | struct LexicalRebuildShardMergeArtifact {
type LexicalRebuildShardMergeResult (line 2766) | struct LexicalRebuildShardMergeResult {
type LexicalRebuildShardMergeJob (line 2772) | struct LexicalRebuildShardMergeJob {
type LexicalRebuildShardMergeMessage (line 2779) | enum LexicalRebuildShardMergeMessage {
type LexicalRebuildShardBuildMessage (line 2790) | enum LexicalRebuildShardBuildMessage {
function spawn_lexical_rebuild_shard_builder_workers (line 2795) | fn spawn_lexical_rebuild_shard_builder_workers(
function spawn_lexical_rebuild_shard_merge_workers (line 2865) | fn spawn_lexical_rebuild_shard_merge_workers(
type LexicalRebuildShardMergeCoordinator (line 2952) | struct LexicalRebuildShardMergeCoordinator {
constant EAGER_MERGE_FAN_IN (line 2961) | const EAGER_MERGE_FAN_IN: usize = 8;
method new (line 2963) | fn new(stage_root: PathBuf) -> Self {
method pending_merge_jobs (line 2973) | fn pending_merge_jobs(&self) -> usize {
method ready_artifact_count (line 2977) | fn ready_artifact_count(&self) -> usize {
method ready_merge_groups (line 2981) | fn ready_merge_groups(&self) -> usize {
method set_allowed_pending_merge_jobs (line 2988) | fn set_allowed_pending_merge_jobs(
method queue_base_artifact (line 2997) | fn queue_base_artifact(
method complete_merge (line 3005) | fn complete_merge(
method final_merge_input_artifacts (line 3014) | fn final_merge_input_artifacts(&self) -> Vec<LexicalRebuildShardMergeA...
method queue_artifact_at_level (line 3024) | fn queue_artifact_at_level(
method schedule_ready_merges (line 3035) | fn schedule_ready_merges(
method ensure_level (line 3097) | fn ensure_level(&mut self, level: usize) {
constant LEXICAL_REBUILD_FINAL_FRONTIER_FEDERATED_SHARD_LIMIT (line 3112) | const LEXICAL_REBUILD_FINAL_FRONTIER_FEDERATED_SHARD_LIMIT: usize = 32;
function should_reduce_staged_lexical_final_frontier (line 3114) | fn should_reduce_staged_lexical_final_frontier(frontier_artifacts: usize...
function reduce_staged_lexical_final_merge_frontier_via_workers (line 3118) | fn reduce_staged_lexical_final_merge_frontier_via_workers(
type LexicalRebuildStagedMergeRuntimeSnapshot (line 3212) | struct LexicalRebuildStagedMergeRuntimeSnapshot {
type LexicalRebuildStagedShardBuildRuntimeSnapshot (line 3222) | struct LexicalRebuildStagedShardBuildRuntimeSnapshot {
type LexicalRebuildStagedMergeController (line 3231) | struct LexicalRebuildStagedMergeController {
method new (line 3237) | fn new(max_workers: usize, loadavg_high_watermark_1m_milli: Option<u32...
method decide (line 3244) | fn decide(
type LexicalRebuildStagedShardBuildController (line 3378) | struct LexicalRebuildStagedShardBuildController {
method new (line 3384) | fn new(max_workers: usize, loadavg_high_watermark_1m_milli: Option<u32...
method decide (line 3391) | fn decide(
function apply_staged_merge_runtime_snapshot (line 3452) | fn apply_staged_merge_runtime_snapshot(
function apply_staged_shard_build_runtime_snapshot (line 3489) | fn apply_staged_shard_build_runtime_snapshot(
function flush_streamed_lexical_rebuild_batch_for_planned_shard_boundary (line 3524) | fn flush_streamed_lexical_rebuild_batch_for_planned_shard_boundary(
function commit_lexical_rebuild_progress (line 3572) | fn commit_lexical_rebuild_progress(
function maintenance_job_kind_for_mode (line 3618) | fn maintenance_job_kind_for_mode(_mode: SearchMaintenanceMode) -> Search...
type LexicalRebuildPerfProfile (line 3623) | struct LexicalRebuildPerfProfile {
method from_env (line 3644) | fn from_env() -> Option<Self> {
method millis (line 3648) | fn millis(duration: Duration) -> f64 {
method log_summary (line 3652) | fn log_summary(&self) {
function log_lexical_rebuild_prep_profile_step (line 3707) | fn log_lexical_rebuild_prep_profile_step(
type LexicalRebuildDbState (line 3731) | struct LexicalRebuildDbState {
type PendingLexicalCommit (line 3741) | struct PendingLexicalCommit {
type LexicalRebuildPipelineRuntimeSnapshot (line 3752) | pub(crate) struct LexicalRebuildPipelineRuntimeSnapshot {
method is_observed (line 3784) | fn is_observed(&self) -> bool {
type LexicalRebuildExecutionMode (line 3817) | enum LexicalRebuildExecutionMode {
method requires_restart_from_zero_on_resume (line 3824) | fn requires_restart_from_zero_on_resume(self) -> bool {
method as_str (line 3828) | fn as_str(self) -> &'static str {
function lexical_rebuild_execution_mode_is_default (line 3836) | fn lexical_rebuild_execution_mode_is_default(mode: &LexicalRebuildExecut...
type LexicalRebuildState (line 3842) | struct LexicalRebuildState {
method new (line 3866) | fn new(db: LexicalRebuildDbState, page_size: i64) -> Self {
method matches_run (line 3885) | fn matches_run(&self, db: &LexicalRebuildDbState, _page_size: i64) -> ...
method record_pending_commit (line 3899) | fn record_pending_commit(
method finalize_commit (line 3917) | fn finalize_commit(&mut self, committed_meta_fingerprint: Option<Strin...
method clear_pending (line 3930) | fn clear_pending(&mut self) {
method set_runtime (line 3935) | fn set_runtime(&mut self, runtime: &LexicalRebuildPipelineRuntimeSnaps...
method clear_runtime (line 3939) | fn clear_runtime(&mut self) {
method set_execution_mode (line 3943) | fn set_execution_mode(&mut self, execution_mode: LexicalRebuildExecuti...
method mark_completed (line 3948) | fn mark_completed(&mut self, committed_meta_fingerprint: Option<String...
method is_incomplete (line 3957) | fn is_incomplete(&self) -> bool {
method reported_processed_conversations (line 3961) | fn reported_processed_conversations(&self) -> usize {
method reported_committed_conversation_id (line 3968) | fn reported_committed_conversation_id(&self) -> Option<i64> {
method reported_indexed_docs (line 3975) | fn reported_indexed_docs(&self) -> usize {
function acquire_index_run_lock (line 3983) | fn acquire_index_run_lock(
function lexical_rebuild_state_path (line 4030) | fn lexical_rebuild_state_path(index_path: &Path) -> PathBuf {
function lexical_rebuild_equivalence_evidence_path (line 4034) | fn lexical_rebuild_equivalence_evidence_path(index_path: &Path) -> PathB...
function lexical_refresh_ledger_path (line 4038) | fn lexical_refresh_ledger_path(index_path: &Path) -> PathBuf {
function lexical_refresh_evidence_path (line 4050) | fn lexical_refresh_evidence_path(index_path: &Path) -> PathBuf {
function persist_lexical_rebuild_equivalence_evidence (line 4054) | fn persist_lexical_rebuild_equivalence_evidence(
function persist_lexical_refresh_ledger (line 4075) | fn persist_lexical_refresh_ledger(index_path: &Path, ledger: &RefreshLed...
function load_prior_refresh_evidence_for_comparison (line 4139) | fn load_prior_refresh_evidence_for_comparison(index_path: &Path) -> Opti...
function persist_lexical_refresh_evidence (line 4169) | fn persist_lexical_refresh_evidence(
type AuthoritativeLexicalRefreshLedgerInput (line 4186) | struct AuthoritativeLexicalRefreshLedgerInput<'a> {
function build_authoritative_lexical_refresh_ledger (line 4197) | fn build_authoritative_lexical_refresh_ledger(
function log_lexical_refresh_ledger_published (line 4283) | fn log_lexical_refresh_ledger_published(ledger: &RefreshLedger) {
function build_lexical_rebuild_generation_manifest (line 4297) | fn build_lexical_rebuild_generation_manifest(
function log_lexical_generation_manifest_published (line 4336) | fn log_lexical_generation_manifest_published(
function persist_lexical_rebuild_generation_artifacts (line 4352) | fn persist_lexical_rebuild_generation_artifacts(
function lexical_rebuild_commit_interval_conversations (line 4406) | fn lexical_rebuild_commit_interval_conversations() -> usize {
function lexical_rebuild_initial_commit_interval_conversations (line 4414) | fn lexical_rebuild_initial_commit_interval_conversations() -> usize {
function lexical_rebuild_commit_interval_messages (line 4422) | fn lexical_rebuild_commit_interval_messages() -> usize {
function lexical_rebuild_initial_commit_interval_messages (line 4430) | fn lexical_rebuild_initial_commit_interval_messages() -> usize {
function lexical_rebuild_commit_interval_message_bytes (line 4442) | fn lexical_rebuild_commit_interval_message_bytes() -> usize {
function lexical_rebuild_initial_commit_interval_message_bytes (line 4450) | fn lexical_rebuild_initial_commit_interval_message_bytes() -> usize {
function lexical_rebuild_commit_intervals_for_state (line 4458) | fn lexical_rebuild_commit_intervals_for_state(
function lexical_rebuild_progress_heartbeat_interval_conversations (line 4475) | fn lexical_rebuild_progress_heartbeat_interval_conversations() -> usize {
function lexical_rebuild_progress_heartbeat_interval (line 4483) | fn lexical_rebuild_progress_heartbeat_interval() -> Duration {
function lexical_rebuild_batch_fetch_conversation_limit (line 4493) | fn lexical_rebuild_batch_fetch_conversation_limit(page_size: i64) -> usi...
function lexical_rebuild_default_batch_fetch_conversation_limit (line 4513) | fn lexical_rebuild_default_batch_fetch_conversation_limit(
function lexical_rebuild_initial_batch_fetch_conversation_limit (line 4523) | fn lexical_rebuild_initial_batch_fetch_conversation_limit(default_limit:...
function lexical_rebuild_available_parallelism (line 4537) | fn lexical_rebuild_available_parallelism() -> usize {
function lexical_rebuild_default_reserved_cores_for_available (line 4544) | fn lexical_rebuild_default_reserved_cores_for_available(available_parall...
function lexical_rebuild_reserved_cores_for_available (line 4553) | fn lexical_rebuild_reserved_cores_for_available(available_parallelism: u...
function lexical_rebuild_worker_parallelism_for_available_and_reserved (line 4563) | fn lexical_rebuild_worker_parallelism_for_available_and_reserved(
function lexical_rebuild_default_worker_parallelism_for_available (line 4574) | fn lexical_rebuild_default_worker_parallelism_for_available(available_pa...
function lexical_rebuild_configured_worker_parallelism_for_available (line 4581) | fn lexical_rebuild_configured_worker_parallelism_for_available(
function lexical_rebuild_worker_parallelism (line 4590) | fn lexical_rebuild_worker_parallelism() -> usize {
function build_lexical_rebuild_worker_pool (line 4602) | fn build_lexical_rebuild_worker_pool() -> Result<Option<ThreadPool>> {
type LexicalRebuildPipelineSettingsSnapshot (line 4624) | pub(crate) struct LexicalRebuildPipelineSettingsSnapshot {
type LexicalRebuildResponsivenessPolicy (line 4652) | enum LexicalRebuildResponsivenessPolicy {
method as_str (line 4659) | fn as_str(self) -> &'static str {
function lexical_rebuild_responsiveness_policy (line 4668) | fn lexical_rebuild_responsiveness_policy() -> LexicalRebuildResponsivene...
function lexical_rebuild_controller_restore_clear_samples (line 4693) | fn lexical_rebuild_controller_restore_clear_samples() -> usize {
function lexical_rebuild_controller_restore_hold (line 4701) | fn lexical_rebuild_controller_restore_hold() -> Duration {
function parse_lexical_rebuild_loadavg_1m_milli (line 4711) | fn parse_lexical_rebuild_loadavg_1m_milli(contents: &str) -> Option<u32> {
function lexical_rebuild_host_loadavg_1m_milli (line 4725) | fn lexical_rebuild_host_loadavg_1m_milli() -> Option<u32> {
function lexical_rebuild_host_loadavg_1m_milli (line 4732) | fn lexical_rebuild_host_loadavg_1m_milli
Copy disabled (too large)
Download .json
Condensed preview — 3062 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (36,343K chars).
[
{
"path": ".beads/.gitignore",
"chars": 637,
"preview": "# SQLite databases\n*.db\n*.db?*\n*.db-journal\n*.db-wal\n*.db-shm\n\n# Daemon runtime files\ndaemon.lock\ndaemon.log\ndaemon.pid\n"
},
{
"path": ".beads/README.md",
"chars": 3220,
"preview": "# Beads - AI-Native Issue Tracking\n\nWelcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-n"
},
{
"path": ".beads/cli-robot-enhancements.md",
"chars": 24328,
"preview": "# CLI & Robot Mode Enhancements\n\n## Overview\n\nThis bead collection focuses on making `cass` more powerful and useful for"
},
{
"path": ".beads/config.yaml",
"chars": 112,
"preview": "sync-branch: beads-sync\nallow_legacy_ids: true\nissue_prefix: coding_agent_session_search\nno-auto-import: 'true'\n"
},
{
"path": ".beads/interactions.jsonl",
"chars": 0,
"preview": ""
},
{
"path": ".beads/issues.jsonl",
"chars": 5227172,
"preview": "{\"id\":\"coding_agent_session_search-001\",\"title\":\"TUI style system spec\",\"description\":\"Create docs/tui_style_spec.md: pa"
},
{
"path": ".beads/last-touched",
"chars": 34,
"preview": "coding_agent_session_search-w95hn\n"
},
{
"path": ".beads/metadata.json",
"chars": 93,
"preview": "{\n \"database\": \"beads.db\",\n \"jsonl_export\": \"issues.jsonl\",\n \"last_bd_version\": \"0.26.1\"\n}"
},
{
"path": ".cargo/config.toml",
"chars": 1177,
"preview": "# Cargo configuration for cass\n# https://doc.rust-lang.org/cargo/reference/config.html\n\n[build]\n# Use all available CPU "
},
{
"path": ".config/nextest.toml",
"chars": 3454,
"preview": "# cargo-nextest configuration for cass\n# https://nexte.st/book/configuration.html\n\n# No custom store directory - use wor"
},
{
"path": ".gitattributes",
"chars": 69,
"preview": "\n# Use bd merge for beads JSONL files\n.beads/beads.jsonl merge=beads\n"
},
{
"path": ".github/workflows/acfs-checksums-dispatch.yml",
"chars": 1115,
"preview": "name: Notify ACFS checksum monitor\n\non:\n push:\n branches: [main, master]\n paths:\n - 'install.sh'\n - 'sc"
},
{
"path": ".github/workflows/bench.yml",
"chars": 9104,
"preview": "# .github/workflows/bench.yml\n# Performance benchmarks using Criterion with regression detection\n#\n# Features (T5.3):\n# "
},
{
"path": ".github/workflows/browser-tests.yml",
"chars": 17726,
"preview": "name: Browser Tests\n\non:\n push:\n branches: [main]\n paths:\n - 'tests/**'\n - 'src/pages/**'\n - 'src/"
},
{
"path": ".github/workflows/ci.yml",
"chars": 27949,
"preview": "# .github/workflows/ci.yml\n# Continuous Integration: lint, test, audit, and build verification\nname: CI\n\non:\n push:\n "
},
{
"path": ".github/workflows/coverage.yml",
"chars": 7948,
"preview": "# Coverage Policy: See docs/COVERAGE_POLICY.md for full details\n#\n# Phased Threshold Schedule (br-2r76):\n# Phase 1 (Cu"
},
{
"path": ".github/workflows/fresh-clone-build.yml",
"chars": 3496,
"preview": "# .github/workflows/fresh-clone-build.yml\n# Fresh-clone build regression guard: ensures a clone with NO sibling repos\n# "
},
{
"path": ".github/workflows/fuzz.yml",
"chars": 3311,
"preview": "name: Fuzzing\n\non:\n schedule:\n # Run daily at midnight UTC\n - cron: '0 0 * * *'\n workflow_dispatch:\n inputs:\n"
},
{
"path": ".github/workflows/install-test.yml",
"chars": 11870,
"preview": "name: Install Test\n\non:\n push:\n branches: [main]\n paths:\n - 'install.sh'\n - 'install.ps1'\n - '.git"
},
{
"path": ".github/workflows/lighthouse.yml",
"chars": 8475,
"preview": "# P6.7: Lighthouse CI Workflow for Accessibility Testing\n#\n# Runs Lighthouse audits against the cass Archive web viewer\n"
},
{
"path": ".github/workflows/notify-acfs.yml",
"chars": 2869,
"preview": "# installer-notify.yml\n# Copy this to .github/workflows/ in your project\n# Notifies ACFS when install.sh changes\n#\n# Set"
},
{
"path": ".github/workflows/perf.yml",
"chars": 2066,
"preview": "name: Performance Regression (Pages)\n\non:\n workflow_dispatch:\n inputs:\n preset:\n description: \"Bundle pr"
},
{
"path": ".github/workflows/release.yml",
"chars": 26473,
"preview": "# .github/workflows/release.yml\n# Release workflow: build cross-platform binaries with SHA256 checksums\n# and notify pac"
},
{
"path": ".gitignore",
"chars": 4048,
"preview": "target/\n**/*.rs.bk\n.DS_Store\n.env\n.idea/\n.vscode/\n*.swp\n*.swo\n/dist/\n/node_modules/\ntests/fixtures/search_demo_data/watc"
},
{
"path": ".ubsignore",
"chars": 519,
"preview": "# UBS ignore patterns\n# Files and directories that should not be scanned for bugs\n\n# Build artifacts\ntarget/\n\n# AI codin"
},
{
"path": "AGENTS.md",
"chars": 50267,
"preview": "# AGENTS.md — coding_agent_session_search (cass)\n\n> Guidelines for AI coding agents working in this Rust codebase.\n\n---\n"
},
{
"path": "CHANGELOG.md",
"chars": 57704,
"preview": "# Changelog\n\nAll notable changes to **cass** (coding-agent-session-search) are documented here.\n\nFormat: [Keep a Changel"
},
{
"path": "Cargo.toml",
"chars": 10298,
"preview": "[package]\nname = \"coding-agent-search\"\nversion = \"0.4.1\"\nedition = \"2024\"\nauthors = [\"Jeffrey Emanuel\"]\ndescription = \"U"
},
{
"path": "LICENSE",
"chars": 3939,
"preview": "MIT License (with OpenAI/Anthropic Rider)\n\nCopyright (c) 2026 Jeffrey Emanuel\n\nPermission is hereby granted, free of cha"
},
{
"path": "README.md",
"chars": 120044,
"preview": "# 🔎 coding-agent-search (cass)\n\n<div align=\"center\">\n <img src=\"cass_illustration.webp\" alt=\"coding-agent-search (cass)"
},
{
"path": "SKILL.md",
"chars": 26132,
"preview": "---\nname: cass\ndescription: \"Coding Agent Session Search - unified CLI/TUI to index and search local coding agent histor"
},
{
"path": "UPGRADE_LOG.md",
"chars": 1606,
"preview": "# Dependency Upgrade Log\n\n**Date:** 2026-05-05 | **Project:** coding_agent_session_search | **Language:** Rust\n\n## Summa"
},
{
"path": "audit.toml",
"chars": 1516,
"preview": "# cargo-audit configuration\n# Documents accepted transitive dependency advisories that cannot be resolved\n# without upst"
},
{
"path": "benches/bench_utils.rs",
"chars": 7527,
"preview": "#![allow(dead_code, unused_imports)]\n//! Shared benchmark utilities for criterion benchmarks.\n//!\n//! This module provid"
},
{
"path": "benches/cache_micro.rs",
"chars": 6038,
"preview": "use coding_agent_search::connectors::{\n NormalizedConversation, NormalizedMessage, NormalizedSnippet,\n};\nuse coding_a"
},
{
"path": "benches/crypto_perf.rs",
"chars": 9765,
"preview": "//! Cryptographic performance benchmarks for cass.\n//!\n//! Benchmarks for:\n//! - Argon2id key derivation\n//! - AES-256-G"
},
{
"path": "benches/db_perf.rs",
"chars": 15265,
"preview": "//! Database performance benchmarks for cass.\n//!\n//! Benchmarks for:\n//! - SQLite open/close operations\n//! - FTS5 quer"
},
{
"path": "benches/export_perf.rs",
"chars": 15304,
"preview": "//! Export and compression performance benchmarks for cass.\n//!\n//! Benchmarks for:\n//! - DEFLATE compression at various"
},
{
"path": "benches/index_perf.rs",
"chars": 30527,
"preview": "//! Indexing Performance Benchmarks\n//!\n//! This module benchmarks indexing performance, including streaming vs batch mo"
},
{
"path": "benches/integration_regression.rs",
"chars": 30211,
"preview": "//! Integration regression benchmarks for cass ingestion/storage paths.\n//!\n//! `SqliteStorage` is now a compatibility a"
},
{
"path": "benches/regex_cache.rs",
"chars": 4062,
"preview": "use coding_agent_search::search::tantivy::{build_schema, fields_from_schema};\nuse criterion::{Criterion, criterion_group"
},
{
"path": "benches/runtime_perf.rs",
"chars": 18788,
"preview": "use coding_agent_search::connectors::{NormalizedConversation, NormalizedMessage};\nuse coding_agent_search::indexer::pers"
},
{
"path": "benches/search_latency_e2e.rs",
"chars": 24333,
"preview": "//! End-to-end search latency benchmark for the README sub-60ms claim.\n//!\n//! This benchmarks the real `SearchClient` e"
},
{
"path": "benches/search_perf.rs",
"chars": 17026,
"preview": "use coding_agent_search::default_data_dir;\nuse coding_agent_search::search::canonicalize::{MAX_EMBED_CHARS, canonicalize"
},
{
"path": "build.rs",
"chars": 24304,
"preview": "use std::collections::BTreeSet;\nuse std::env;\nuse std::fs;\nuse std::path::{Path, PathBuf};\nuse std::process::Command;\n\nu"
},
{
"path": "docs/ACCESSIBILITY.md",
"chars": 5446,
"preview": "# Accessibility Guide\n\nThis document describes the accessibility features and standards for the CASS (Coding Agent Sessi"
},
{
"path": "docs/COVERAGE_POLICY.md",
"chars": 7120,
"preview": "# Coverage Policy: coding_agent_session_search (cass)\n\n**Bead**: coding_agent_session_search-2r76\n**Last Updated**: 2026"
},
{
"path": "docs/DOCUMENTATION_STYLE.md",
"chars": 6063,
"preview": "# Documentation Style Guide\n\nThis guide defines standards for documentation in the cass project.\n\n## General Principles\n"
},
{
"path": "docs/ERROR_CODES.md",
"chars": 8480,
"preview": "# Error Codes Reference\n\nThis document lists all error codes that may appear when using CASS (Coding Agent Session Searc"
},
{
"path": "docs/FRANKENTUI_UX_ARCHITECTURE.md",
"chars": 12233,
"preview": "# FrankenTUI UX Architecture\n\nStatus: active\nScope: TUI runtime behavior introduced by the FrankenTUI (ftui) migration\n\n"
},
{
"path": "docs/INSTALLER_SPEC.md",
"chars": 2610,
"preview": "# Installer Spec (UBS-style) for coding-agent-search\n\n## Goals\n- One-line curl|bash / pwsh that installs coding-agent-se"
},
{
"path": "docs/LIMITS.md",
"chars": 5434,
"preview": "# CASS Performance Limits and Constraints\n\nThis document describes the tested performance limits and resource constraint"
},
{
"path": "docs/PERFORMANCE.md",
"chars": 8126,
"preview": "# CASS Performance Guide\n\nThis document describes performance characteristics, benchmarks, and optimization recommendati"
},
{
"path": "docs/RECOVERY.md",
"chars": 8553,
"preview": "# Recovery Guide for Encrypted Pages Archives\n\nThis document covers recovery procedures for encrypted cass Pages archive"
},
{
"path": "docs/ROBOT_MODE.md",
"chars": 6948,
"preview": "# Robot Mode Guide (cass)\n\nUpdated: 2026-04-22\n\n## TL;DR (copy/paste)\n- First index: `cass index --full`\n- Search JSON: "
},
{
"path": "docs/SECURITY_AUDIT_CHECKLIST.md",
"chars": 8413,
"preview": "# CASS Security Audit Checklist\n\nThis checklist is used for systematic security review of all cryptographic and security"
},
{
"path": "docs/SECURITY_AUDIT_REPORT.md",
"chars": 7434,
"preview": "# CASS Security Audit Report\n\n## Executive Summary\n\n**Project**: cass (Coding Agent Session Search)\n**Version**: 0.1.55\n"
},
{
"path": "docs/VERSION_HISTORY.md",
"chars": 3374,
"preview": "# Version History\n\nThis document tracks schema versions and breaking changes for cass archives and databases.\n\n## Schema"
},
{
"path": "docs/cass_bakeoff_validation.md",
"chars": 5239,
"preview": "# Cass Bake-off Validation\n\n## Purpose\nValidate bake-off winners against the cass benchmark corpus with a focused end-to"
},
{
"path": "docs/ftui_feature_audit.md",
"chars": 7269,
"preview": "# ftui/ftui-extras Feature Audit for cass\n\nBead: `coding_agent_session_search-3nwtd.2.1` \nDate: 2026-02-13 \nOwner: `Gr"
},
{
"path": "docs/ftui_parity_baseline_bundle.md",
"chars": 5347,
"preview": "# FTUI Parity Baseline Bundle (Track A / Bead `2dccg.1.2`)\n\nStatus: in progress \nOwner: `BronzeCove` \nPrimary manifest"
},
{
"path": "docs/ftui_visual_parity_manifest.json",
"chars": 16129,
"preview": "{\n \"schema_version\": \"1.0.0\",\n \"bundle_id\": \"ftui-parity-baseline-2026-02-08\",\n \"generated_at_utc\": \"2026-02-08T21:41"
},
{
"path": "docs/ftui_visual_parity_rubric.md",
"chars": 20829,
"preview": "# FTUI Visual Parity Rubric (Ratatui v0.1.64 vs Current FTUI)\n\nStatus: active \nOwner: cass UI maintainers \nRelated bea"
},
{
"path": "docs/perf-evidence-ledgers.md",
"chars": 1481,
"preview": "# Performance Evidence Ledgers\n\nUse this harness before changing any search, index, rebuild, cache, or controller policy"
},
{
"path": "docs/planning/AGENT_FRIENDLINESS_REPORT.md",
"chars": 5033,
"preview": "# Agent-Friendliness Report: cass (coding_agent_session_search)\r\n\r\n**Bead ID**: bd-273 (re-underwriting)\r\n**Date**: 2026"
},
{
"path": "docs/planning/AGENT_INTRODUCTION.md",
"chars": 3173,
"preview": "# Agent Introduction: Gemini CLI\n\n**Date:** Monday, January 26, 2026\n**Agent:** Gemini CLI\n**Model:** Gemini 2.0 Flash\n\n"
},
{
"path": "docs/planning/CASS_INDEXING_HISTORICAL_BENCHMARK_RESULTS.md",
"chars": 135938,
"preview": "# CASS Indexing Historical Benchmark Results\n\n## Corpus\n- Date: 2026-04-17\n- Canonical DB: `/home/ubuntu/.local/share/co"
},
{
"path": "docs/planning/MODES_OF_REASONING_REPORT_AND_ANALYSIS_OF_PROJECT.md",
"chars": 31243,
"preview": "# Modes of Reasoning: Comprehensive Analysis of `cass`\n\n> **Project:** coding-agent-search (cass) — Unified TUI/CLI to i"
},
{
"path": "docs/planning/PLAN_FOR_ADVANCED_OPTIMIZATIONS_ROUND_1__GPT.md",
"chars": 37037,
"preview": "# PLAN_FOR_ADVANCED_OPTIMIZATIONS_ROUND_1__GPT.md\n\nDate: 2026-01-10\n\nProject: `coding-agent-search` (`cass`)\n\nGoal: iden"
},
{
"path": "docs/planning/PLAN_FOR_ADVANCED_OPTIMIZATIONS_ROUND_1__OPUS.md",
"chars": 23563,
"preview": "# CASS Performance Optimization Analysis\n\n## 0) Hard Constraints (from AGENTS.md)\n\nNon-negotiables in this repo/workflow"
},
{
"path": "docs/planning/PLAN_TO_ADD_LIGHTWEIGHT_SEMANTIC_AND_HYBRID_SEARCH_TO_CASS.md",
"chars": 62630,
"preview": "# Plan: Lightweight Semantic & Hybrid Search for CASS\n\n## Executive Summary\n\nThis plan adds **true semantic search** and"
},
{
"path": "docs/planning/PLAN_TO_COMPUTE_ANALYTICS_STATS_IN_CASS__CODEX.md",
"chars": 22141,
"preview": "# Plan: Compute Comprehensive Analytics Stats (Tokens, Tools, Roles, Time) in CASS\n\n> Prompt that kicked this off:\n>\n> `"
},
{
"path": "docs/planning/PLAN_TO_COMPUTE_ANALYTICS_STATS_IN_CASS__OPUS.md",
"chars": 28102,
"preview": "# Plan: Comprehensive Token Analytics for CASS\n\n> **Author:** WhiteSnow (Claude Opus 4.6)\n> **Date:** 2026-02-05\n> **Sta"
},
{
"path": "docs/planning/PLAN_TO_CREATE_GH_PAGES_WEB_EXPORT_APP.md",
"chars": 130434,
"preview": "# Proposal: Encrypted GitHub Pages Web Export for cass (Chunked Payload Format)\n\n**Document Version:** 1.5\n**Date:** Jan"
},
{
"path": "docs/planning/PLAN_TO_MAKE_CODING_AGENT_SESSION_SEARCH.md",
"chars": 45125,
"preview": "# PLAN_FOR_CODING_AGENT_SEARCH\n\n**Progress 2025-11-21:** Schema/migration v3 (fts5 mirror with created_at) + rusqlite DA"
},
{
"path": "docs/planning/PLAN_TO_PORT_INSTALL_SCRIPTS_TO_RUST.md",
"chars": 2778,
"preview": "# PLAN_TO_PORT_INSTALL_SCRIPTS_TO_RUST.md\n\n## Goal\nPort the current shell/PowerShell installers (`install.sh`, `install."
},
{
"path": "docs/planning/RECOVERY_RUNBOOK.md",
"chars": 651,
"preview": "# Recovery Runbook\n\nNote: JSONL import/export commands are planned. This runbook documents the\nintended recovery steps o"
},
{
"path": "docs/planning/RESEARCH_FINDINGS.md",
"chars": 11366,
"preview": "# RESEARCH FINDINGS: CASS (Coding Agent Session Search) - TOON Integration Analysis\n\n**Researcher**: CrimsonForge (claud"
},
{
"path": "docs/planning/RUST_CLI_TOOLS_BEST_PRACTICES_GUIDE.md",
"chars": 72494,
"preview": "# The Definitive Guide to High-Performance CLI and Automation Tools with Rust (mid-2025 Edition)\n\nThis guide synthesizes"
},
{
"path": "docs/planning/SEMANTIC_SEARCH_BEADS.md",
"chars": 31248,
"preview": "# Semantic Search Implementation: Bead Structure & Elaboration\n\n## Overview\n\nThis document elaborates on the semantic se"
},
{
"path": "docs/planning/SUGGESTED_IMPROVEMENTS_TO_CASS_BASED_ON_CMS.md",
"chars": 19768,
"preview": "# Suggested Improvements to `cass` (based on cass-memory-system / CMS)\n\nLast updated: 2025-12-15\n\nThis document proposes"
},
{
"path": "docs/planning/SYNC_STRATEGY.md",
"chars": 1035,
"preview": "# Sync Strategy\n\nNote: JSONL sync is not implemented yet. This document captures the design\nso future implementation is "
},
{
"path": "docs/planning/TESTING.md",
"chars": 21778,
"preview": "# Testing Guide\n\n> Guidelines for testing in the cass (Coding Agent Session Search) codebase.\n\n---\n\n## No-Mock Policy\n\n#"
},
{
"path": "docs/planning/TOON_INTEGRATION_BRIEF.md",
"chars": 19014,
"preview": "# TOON Integration Brief: cass (coding_agent_session_search)\n\n**Bead:** bd-128\n**Author:** RedStone (claude-code / opus-"
},
{
"path": "docs/planning/UPGRADE_LOG.md",
"chars": 8149,
"preview": "# Dependency Upgrade Log\n\n**Date:** 2026-02-17 \n**Project:** coding_agent_session_search (`cass`) \n**Language:** Rust\n"
},
{
"path": "docs/reference/CASS_ARCHITECTURE_SUMMARY.txt",
"chars": 16902,
"preview": "╔════════════════════════════════════════════════════════════════════════════╗\n║ CASS (CODING AGENT SESSION SEAR"
},
{
"path": "docs/reference/CASS_SEARCH_PATTERNS.md",
"chars": 18627,
"preview": "# CASS (Coding Agent Session Search) - Fast Search Patterns Analysis\n\n## Overview\nCASS uses a **multi-layered hybrid sea"
},
{
"path": "docs/reference/QUICK_REFERENCE.md",
"chars": 12471,
"preview": "# CASS Quick Reference (Agent Quickstart + Performance)\n\n## Agent Quickstart (Robot Mode)\n\n⚠️ NEVER run bare `cass` in a"
},
{
"path": "docs/reference/SEARCH_PATTERNS_INDEX.md",
"chars": 11128,
"preview": "# CASS Search Patterns - Documentation Index\n\nThis directory contains comprehensive analysis of the fast search patterns"
},
{
"path": "docs/test-coverage-audit.md",
"chars": 10856,
"preview": "# Test Coverage Audit: coding_agent_session_search (cass)\n\n**Date**: 2026-01-12\n**Bead**: coding_agent_session_search-vh"
},
{
"path": "docs/tui_keymap_rfc.md",
"chars": 39617,
"preview": "# TUI Interaction Model & Keymap RFC (cass)\n\nStatus: draft \nOwner: RedHill \nRelated issues: coding_agent_session_searc"
},
{
"path": "docs/tui_style_spec.md",
"chars": 6747,
"preview": "# TUI Style System Spec (cass)\n\nStatus: draft \nOwner: RedHill \nScope: FrankenTUI (ftui) Elm-architecture UI (interacti"
},
{
"path": "fuzz/Cargo.toml",
"chars": 1897,
"preview": "[package]\nname = \"cass-fuzz\"\nversion = \"0.0.0\"\npublish = false\nedition = \"2021\"\n\n# This crate is not part of the main wo"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/00008d730c850cabb696a251f657564bd66fb5b2",
"chars": 0,
"preview": ""
},
{
"path": "fuzz/corpus/fuzz_cli_argv/02dd64a9a39ce70076bc8ebf97cd2c7c7553fcce",
"chars": 3,
"preview": "\n"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/0312f640c180bbde8757dc81b922c0fe0d531685",
"chars": 4,
"preview": "dmen"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/03275c1d481592c25630ed13791b2e30c1f93d0a",
"chars": 3,
"preview": "?to"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/03b06d39f840ef1e5883ff011f5ce127c044badc",
"chars": 3,
"preview": "\u001d,}"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/0592b834d8f3c93975a84fead7731e6e1dc67210",
"chars": 3,
"preview": "*--"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/0859ab2fe0459bc1f553314dcf76581828ee97db",
"chars": 6,
"preview": ";I;III"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/0cbd13be8159e625c4016608ab23a0f6d01b9992",
"chars": 5,
"preview": "ɼilse"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/1428c5d3c6ca75890c570a0b4456b36f4abc168a",
"chars": 4,
"preview": "#|$M"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/17ada2900d14cae808b76f484a73a2b599b90bce",
"chars": 2,
"preview": ";;"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/1869fded0714692bf2a53ad1dff71fe4a5dacb0d",
"chars": 6,
"preview": ";mdteo"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/19469ac09134f6ac0197a31bd6172c32445a745c",
"chars": 14,
"preview": "c s;i-vodmoc s"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/19f704ec69e285b54dc9ad77b94574d0eae0466c",
"chars": 7,
"preview": "\t7oem8\u0006"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/2098e017bbf59eef78b2c40e76adf1f25c5566ed",
"chars": 2,
"preview": ""
},
{
"path": "fuzz/corpus/fuzz_cli_argv/20b369e47209788ca2ae9fb074dfe5f420d6a91b",
"chars": 11,
"preview": "\u0005\u0005\u0005\u0005\u0005\u0005\u0003-\u0003#"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/2191d6e6e053c175c50bd683b41707def7aafc77",
"chars": 6,
"preview": "{I;IIJ"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/22226ae363aff0b15f2a70b6ad97763f89d715c9",
"chars": 8,
"preview": ";DmoIdet"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/223047f22f151028612460c6e83d2215bafa4e4d",
"chars": 9,
"preview": "\u0003z\u0001ɵ-f#"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/2398c2dede79c845bb59ae2f04cd644629cfe6ff",
"chars": 3,
"preview": "-?o"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/25193c645e7e7f52068cb77f1067c081e28c79f4",
"chars": 4,
"preview": "[?\t7"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/267b313eb255f1ff55c474a5e4994d66da645c30",
"chars": 9,
"preview": "Qi;;{5\u001d,}"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/28302c767c3c4cce47f9c4e2a201c47572136cef",
"chars": 8,
"preview": "nnnnnnz\u0002"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/2c53bb32ffc83d29aa6d92564370485f1eec741d",
"chars": 2,
"preview": "%"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/2d14ab97cc3dc294c51c0d6814f4ea45f4b4e312",
"chars": 1,
"preview": ";"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/2d1ae1d922dc4e1631c4160cfc0b72d5ba865ee3",
"chars": 4,
"preview": ";III"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/2e94b46170f79b8733c1be0f5c47c3d9c45d4222",
"chars": 6,
"preview": "Qi;;[v"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/2f96a2dd6beae965008699849c96290d543a8c75",
"chars": 7,
"preview": "yyy&yy-"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/30a920883736f2f072737f6394457a89ea193365",
"chars": 5,
"preview": "`@!"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/3233f4a80126ded1977de71b1cc154b7aec4e756",
"chars": 8,
"preview": "mo--\u000botϵ"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/3270100ea1773d2fd49f8174b534b6dd214d6f07",
"chars": 7,
"preview": "(\u0013;|2$M"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/3286707a763d66fc8439154e7060f174c94dcca0",
"chars": 12,
"preview": ";deDmoIdedet"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/3394d2bb5a9bb42e8220aa5ec4f9793aa34f256f",
"chars": 6,
"preview": "9i-\u001eg"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/33f890c2bb456fefed910f9787e6fa555c7be33d",
"chars": 4,
"preview": "odeh"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/3648ba1b3618126ed6812d613c582ba717569698",
"chars": 10,
"preview": ";H9999999\u0004"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/3b0e7257d031ec8c6f98908e023b448ee0dfaaae",
"chars": 11,
"preview": "export-html"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/3b1cedf33a456e32667315e015fae7e0822f5585",
"chars": 6,
"preview": "me;$>I"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/3baad17c0549ed4e0329a4a90830511952c433cb",
"chars": 2,
"preview": "\nJ"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/3f05c3ed3a43abe1d2c31c7801e5e07b21ac9207",
"chars": 6,
"preview": ";IIIn~"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/3f80606e9177132e28016047bbc029b32d1fbeeb",
"chars": 8,
"preview": "mode#;li"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/43fb5dd1a8c985d799f769d4579ce1032d075b8b",
"chars": 6,
"preview": "modemn"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/4454c3f4e87987a6a3a82d72cebd616670d90f08",
"chars": 5,
"preview": "model"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/4498d5d3467878ecfa5e71ead16f695431460a79",
"chars": 3,
"preview": "ϵ]w"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/44a3475296e778217b464b57094c2885cea49c84",
"chars": 9,
"preview": "mo--ototϵ"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/44dda71e6843b88c1f3d330d6f48c34097d8265d",
"chars": 2,
"preview": "|$"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/47aeefbd6f077c2d170caebdbe87123c14df9cc4",
"chars": 5,
"preview": "oemdm"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/48ff95176a61090039adde47caeaaea3be061984",
"chars": 5,
"preview": "m>$es"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/4c0f726e8f4603bd34bbeb1958b7d362197b6966",
"chars": 10,
"preview": ";deDmoIdet"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/4d9dccc4c289afff972d65d18753d3da35968121",
"chars": 12,
"preview": "II;JIverif9{"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/50e8e452b9645d0b96a23c8a78bd35e0ec267700",
"chars": 5,
"preview": "7ɵ#"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/519b53d49ffee88df5e3def0b5a59eb1d8e60e7e",
"chars": 9,
"preview": "m;$>e;$>I"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/51c8044a5d3d7bff4daed3d022775ed1c717267f",
"chars": 4,
"preview": "MI-v"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/5293cb261ea0e6b9e8cce22ab63e2a0ad6010d02",
"chars": 5,
"preview": "mo-v;"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/5791f7cebfefcee0474763fd2ec27f45fd7abf4d",
"chars": 10,
"preview": "\u001b\u001b\u001b\u001b\u001b\u001b\u001b|$M"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/58181143ae9532d46c01dc9839de5f2f45970738",
"chars": 6,
"preview": "Qi;;{2"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/583d9864fb7260e56aa5b6261b16a01e935898ce",
"chars": 2,
"preview": ""
},
{
"path": "fuzz/corpus/fuzz_cli_argv/59adcf3a0bccf97a030047bfa9a7b0cfbecf7b46",
"chars": 1,
"preview": "\t"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/5b5b9c8b1eb42e000cb23a12189a63ba15a6b873",
"chars": 6,
"preview": ";;;mol"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/5c1863b1cf463c5461652c7e6379ad82765bec0e",
"chars": 4,
"preview": "iϵ#1"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/5eb0aa10774f2c02a40385cb7cd6ffd8dcedbb03",
"chars": 8,
"preview": "limitmit"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/6035614df8acc644887608e92f21152afaefc2aa",
"chars": 7,
"preview": "model;;"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/61db13428a17d85630b49051d2d08edb36379332",
"chars": 5,
"preview": "|;IQM"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/6582692b560d87fd4d0c7e6e89af648128c42ee9",
"chars": 3,
"preview": "(\u0013;"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/68c9f10c8aca363f3c2ccf0f4653eaed787d90bd",
"chars": 5,
"preview": ";AHHI"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/6a56574a3c4c1a0287cbb0aa7ad8c280413b569c",
"chars": 13,
"preview": "-t-robot-help"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/6a61378dc046d53f9c1f603c81ae224856936a64",
"chars": 6,
"preview": "modeme"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/6b6330951aabf6a2cde908832f7a2759abf0b379",
"chars": 5,
"preview": ";{;IH"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/6e67a72f231209102763528d0843863e391efe3f",
"chars": 10,
"preview": "\u0005\u0005\u0005\u0003\u0005\u0005\u0005\u0003#"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/6e77187687059a5214972bb6513a1e60774be74f",
"chars": 3,
"preview": "*--"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/6f1ff4a8f06367eadeba0f6ff30aee0eb60a15a2",
"chars": 7,
"preview": "wwwwv"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/7175662128cdff85cbccb57fdba575f7cf4c194e",
"chars": 2,
"preview": "$"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/733c2043861e76c55b7415eee9febac4a4078fd9",
"chars": 5,
"preview": ";;;Iz"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/7478ca9423a9510ce828c75346b1d4991688b128",
"chars": 4,
"preview": "dteo"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/7aa41cfa047e2b8b66717d423343940150393242",
"chars": 5,
"preview": "mo-v;"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/7b2463c13ab1bacb1cc5c501ac48db7c1427b521",
"chars": 6,
"preview": "o--eid"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/7c4bb32befa41b49b1fe2cb2dd55c300c7f55a4f",
"chars": 6,
"preview": "\n\nJD)A"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/7c8c9fa9774051eb218b82ce20b625376cb9d284",
"chars": 9,
"preview": "%%;I;IIz"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/7ee115631ec137674d3cf91274f756219175ae68",
"chars": 3,
"preview": "%,}"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/7fbebdec648ecd698039abb8232de61b52117282",
"chars": 7,
"preview": "(mand\u0013;"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/80123b14ce6d70c1532ec01a7ede4e91fa258d7e",
"chars": 8,
"preview": "I;5~{;~{"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/8279367b174e2a9121ab51be30695e080fd8557b",
"chars": 4,
"preview": "9iyy"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/83020bd96cd8cda2a8cabb722ba3af69f275955c",
"chars": 6,
"preview": "\u001e(yy\u0013"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/83f9cfd5b9055e76c40840c0caf0be9a0c686ed4",
"chars": 2,
"preview": "v#"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/8578ddf9a4ae047e00018d7491b2ef0b7836c03d",
"chars": 6,
"preview": ";I;II'"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/86f43257c59a84df0c48b34e8c280acc327f42de",
"chars": 4,
"preview": ",t\u0001\u0002"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/8875758484195c397f9804fc0080be329960748a",
"chars": 11,
"preview": ";0mete--vvo"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/89a9011f8be31fb36c304846514cc4ebdf8209bd",
"chars": 6,
"preview": "\n\nJJ)A"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/8b12ec64544799825bcdca1f5869b2fe9a6b6667",
"chars": 5,
"preview": "?,tmo"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/8b2adc47b9dabfe35282016165f10fd38c00c957",
"chars": 8,
"preview": "\u0003z\u0001ɵ-#"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/8c4b839545f367384331f22b5363b1f7dd7c1153",
"chars": 3,
"preview": "}"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/8de72d095990a5a8e718ef954ab5e6e5fa99cc93",
"chars": 8,
"preview": "mo--`otϵ"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/8f1e745b4292f8d88e860a82b395383890384c02",
"chars": 2,
"preview": "$|"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/9099ffecb88ca87dfd741d84c527adfaf6954b1e",
"chars": 6,
"preview": "9i-ggg"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/95894e31f09b9b7c841b4078914239da4ef4e805",
"chars": 3,
"preview": "iϵ#"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/97f61a2b0c73ec440968739eea1ab57bcbfbf28e",
"chars": 5,
"preview": "D{;de"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/9825779944f9fa8a9b190cbdb81708a03b365f00",
"chars": 10,
"preview": "I;;o-v;I{{"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/9913de374b93a6a22dfb727244781b13305173e8",
"chars": 8,
"preview": "Qi;;{5\u001d}"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/9a23ab202222625d97f4158869491acb2861e016",
"chars": 12,
"preview": "II;JIverify{"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/9b6bf616c747db5e781c1e5a5f995b4ae2827266",
"chars": 5,
"preview": "limit"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/9bb827d4c567a573da3c62bd7a0177f71fae160c",
"chars": 6,
"preview": "I;;I{{"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/9d2bf3f34805238d937c7541bd0312a89e904718",
"chars": 2,
"preview": ",}"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/9d8447ce7cefc0ac81cbcca1a683c2ccbbe04051",
"chars": 9,
"preview": "\u0005\u0005\u0005\u0003\u0005\u0005\u0005\u0003"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/9fb0658edc0af07e00f12298fc3178ac8052affa",
"chars": 6,
"preview": "ilimit"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/a4043b7afe13061cb3af0eb8b07bb6db83575ac1",
"chars": 5,
"preview": "-?--C"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/a473623d536ee1dc67fc230d71d0531c5ecbf4cc",
"chars": 5,
"preview": "7oem8"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/a559e61727863a07a609b4bf0516b99b85e4ddc4",
"chars": 6,
"preview": ";mdteo"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/a90d26e65ca0049f64e0009c889e76a010e7c37c",
"chars": 2,
"preview": "oI"
},
{
"path": "fuzz/corpus/fuzz_cli_argv/a91911482fbfa669ca782fd2833523dae8e0de5f",
"chars": 4,
"preview": "[?\r7"
}
]
// ... and 2862 more files (download for full content)
About this extraction
This page contains the full source code of the Dicklesworthstone/coding_agent_session_search GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3062 files (71.1 MB), approximately 8.7M tokens, and a symbol index with 16868 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.