| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- {
- "schemaVersion": 1,
- "pageVersion": "sha256:3063070e9f1cf52ceace2c864124dbf09583146e1039a9b795a9d7d8127517a6",
- "claims": [
- {
- "id": "claim_0519d797500c4fba86d6c64ac1e60df4",
- "statement": "Configuration is read only from config.toml and no environment variables are used.",
- "evidence": [
- {
- "resource": "repo://src/config.rs#L1-L20",
- "version": "repo-lines-v1:sha256:5029434b6f0ff10e22e3e03b21a6365b0796c5eef70104c83584b796c04583ac:eyJzZWxlY3RlZExpbmVDb3VudCI6MjAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImI0MGE0NTBjZTI3ZmY3MjYwYzM4M2U4NDk4MjhjNzY1NTVlZTk1ZTllM2JmMTJmOWYxY2IxY2Q2OGZlZGFkMDgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjZmNzkwMmU2MjBjYmU0ZDIwMGU3NTVjYmY5YTMyOWYxMzFkYjFhM2UxZDQ2Mzg1MWU1YjFiOTE4NmM2YTVmYzUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjowLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjcxMzE1MjZlMmQ3ZWFkMDgwNmJkNzJlYjRjMGJlMjE1NjI4ZWZiMGMzMjc3OTM0NjVkYjM1NmQ2NTQ4NDAzN2YifQ"
- },
- {
- "resource": "repo://src/config.rs#L226-L230",
- "version": "repo-lines-v1:sha256:00d6f1fbf5d4c61080dee1e340448add384f342d5743d2721df28ea0644986d6:eyJzZWxlY3RlZExpbmVDb3VudCI6NSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMzI1NDU2YzAyNzFhNTg0ZjQ1NDczNzhiNDZlNWNhM2VlY2E5OTM3MmUzZjFjZjc5YjJmYmE3NTkxZDU4ZTE1YyIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiNTRhNWZlMjlkYmU2NjQ4ZmQ1YzMwM2MwZTc0NzI5ZmI4NWQ1NjYzYjE5OTRlMDhjYjU1M2Y3ODA1Yzk2OGRlOCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiZTZjOTEzMmNlNmFmZjhmYmMyYWYzNGJjYmZhYTU4NWE3ZGYxZTE4NWJiNzk5MWVjYjljODFhNTE4ODc1ZTI4ZSJ9"
- }
- ]
- },
- {
- "id": "claim_028b1975c5304eff8c79e0ffa4b39cad",
- "statement": "The data directory is the platform config directory joined with wh and is created at startup by ensure_data_dir.",
- "evidence": [
- {
- "resource": "repo://src/config.rs#L144-L148",
- "version": "repo-lines-v1:sha256:dd4141940976146e96656f2de294f92e1275a16efba97aa2c7318676f34bdfa4:eyJzZWxlY3RlZExpbmVDb3VudCI6NSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMzVhMDYyMDkxMmIzMTUwZDZlYmQwNDQyOTUxZTdjNWEwODlmODMwMzYzNmJjODZiNmQxOWRmN2U3YTFmMWEzZCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDEyY2EzNDVjY2Y3NWJmOWMwODA2YmNlNjk1YmU4ZGU4MDhiNzk5ODQyNTFhN2E1NGQyMDJjZjYxMDFkZDQ1MSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiNGU1ZGI4YzkwMjczZTAyOTc3MTY3ZWMwNDM0N2M0MWQ5MmE1MTE4NDMxMTA0M2UyMTU2YmM4MGFiYjkwMWQ0NyIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiMDY4YzgxNzM5NzQwNTE2YzI4OWQ4ZWRlZWM0N2IwMjcxMGFmOWVmNWM4MjE4M2NhNWQwMTc4MWVhMjI1YjU1MCJ9"
- },
- {
- "resource": "repo://src/config.rs#L258-L261",
- "version": "repo-lines-v1:sha256:70ea48c62bb6583f73eaa3d204fb92456b268569dccd85ba7c47f85f0175339f:eyJzZWxlY3RlZExpbmVDb3VudCI6NCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMDE1Zjk2ZjM2OWY4YjE1NjExZWVjMDljZTBjOThiYjNhZTNhM2U5Y2U2MDEzZGNmMGE3OWY4ZTM1MjVmMjMxNyIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiM2UxNTlhZDA5YmYzMzllMTM2ZmY0NzVjMjc4NDNkMTYyY2JiMTI2ZGMxMmFiMDM3MjE3M2M2ODY4ZGM5NzUwMyIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiMTZjMzk0MWE5YjYxMDI1Yjg1ZWU5ZWEzNzYzOTUyYTViMTM5NmNkMmY2ZjczMTkyZGQ3NDYwNDc5OTlhYjY0MSJ9"
- }
- ]
- },
- {
- "id": "claim_c2f906f0d67647d2b24c184886f70960",
- "statement": "session.db, history.db and the optional ai_requests.log live in the data directory next to config.toml.",
- "evidence": [
- {
- "resource": "repo://src/config.rs#L263-L285",
- "version": "repo-lines-v1:sha256:f895d312efc12c901e18e3c47999e82cde54de595ed326f94dc9c80be206fd75:eyJzZWxlY3RlZExpbmVDb3VudCI6MjMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImIxNjY4MjQ0NGNiOTU1NTQxNjJjOGIzNjYxMjg0YTJhNGMzMDIwZmQxODU3OTYxMDU2ZGE1MjMxM2Y2YjgzYjkiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjIxNTA5ZGYyZDNjMWJjODQxODQ2NDlhOTg3NzAwZTU4ZGVmNTJkZGQ1YzBkZTVlZWIwZjY0YTc1YmQ5MzBlYzEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImE1MjE2MDRiMzVmYzQwYWYwMGNiYTRlZWEyZmQ1ZTJjM2FmMTg2M2IzOTExODVkN2JmNGJiMDllNzJkMGM4YjMifQ"
- },
- {
- "resource": "repo://src/config.rs#L40-L49",
- "version": "repo-lines-v1:sha256:6624d58d13d3982b8829e7b759fc7c36a643278f2d243526a887428e34a0d469:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImU1MDllZGUxYTUxZmE5MGM4ZmQ0YTNkODdmYjJhMGU5OTMwNzhkMjc0MzU1NGFjMGM4MmIzMTdmNzQ0OTY5ZmYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjFmNzZjMzcwNTRkNWY0YzFhNWZhZDE4YzFlYjI0NTNmODIxNTI0NDQ2M2ZkNjA4MzIwZDEzZDYxNmFlYmVhNmQiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjMwY2VjY2EzYjg3NDgwNDU3ZGVmZTlkOWVkY2I1N2VmMDdlN2ZlZTE2MTljZjdmYWEyNzM0Y2Y2M2Q5MzIxYjEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjQ1N2RlMDJkYWE2M2RmYzAxZmQxNjkyNDc1ODY2ODA3OGM5NmJlMGM1ODkyZjQ4M2UzMDdmNjAyYTU0MDRkMzQifQ"
- }
- ]
- },
- {
- "id": "claim_4a0091b8b0c944f9916463712878acbe",
- "statement": "Keys openai_api_key, openai_base_url, openai_model, openai_vision_model, system_prompt, ai_log, cooldown_seconds, group_cooldown_seconds and catch_up_seconds map to Config with defaults (base URL, model, ai_log false, cooldowns 30 and 300 seconds, catch-up 7200 seconds); system_prompt is not trimmed.",
- "evidence": [
- {
- "resource": "repo://src/config.rs#L236-L252",
- "version": "repo-lines-v1:sha256:a243422f2946158325855db5a4be2d0e714e34db5efbec661bff6b5543b6fd30:eyJzZWxlY3RlZExpbmVDb3VudCI6MTcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImFjZWRhOTg0MDJkODQxZjI4MThkMTg2OTM4NWQ0MzA2OGVmNjkyODg0ZmRiOWMzMzFjOTc4NTY3Y2EwOGQ0NzkiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjkyOTlhMjc0NjgwMDNjZDA3M2I5MTZiYTUwMGYwYTE0OWZiMzBlZDE3M2M2NjFkNmE1Y2M2NjJjZTk0YzRlNzciLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijg4ZWYzM2E3NjQ3YTM0NDVkNzE1NDU4YmE2Yzc0OGY2NmIyYWZiNzYxYzEyODc4NWU3MzRjZjIyOThjOTdkMzUifQ"
- },
- {
- "resource": "repo://src/config.rs#L29-L38",
- "version": "repo-lines-v1:sha256:1c1f21cc650ea553949a8f8e67afaa313a368a92c0a1de217140dd63e56935c1:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjdkNWE4ZjI1MGMwMjJlOTMwNzUxZGFlMTg0YjBhZGMxNTUwYWRkNzVlNGJiOTUyMDBiNTE0NmY0NzQ5MjdlODMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjlkMDNhZDdjNjg3NGE4NDYyM2ZmYzQzYjhmMjI1MGFjN2FjNTE0NDdiN2FlZmYzMTliN2IxNDJhOTI5ODZlMzMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijc2YTNkY2UwNTMyZWI3NmI2M2EyNmViYzdlZmNkNWE3YTViYzFjMTFhOWFiZGRhM2Y3ZjJmNzhkODc1Y2Y3M2YiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjdlODA1ZjRiMzVlMzg3NmExMjg5OTE1MjgyYWRhNWNkMzNhNzdmNTMyYmYyOWMxOGM4OWRhMjJiMTRjZjUwYmQifQ"
- },
- {
- "resource": "repo://src/config.rs#L60-L88",
- "version": "repo-lines-v1:sha256:8608d1dda07d0453aa3eb5f7dcde2a1c037fd686021a636006e4efa0ae2e01d0:eyJzZWxlY3RlZExpbmVDb3VudCI6MjksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjY2MWQ4OTAwZThkNDcyOWNhMDZlYTYzMjM0ZGI5OTMwMzljZGI5YzRhODA5OGE3ZDQzMmZiNzQ3ZDI5NDUzZDUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRlMzMzNjA1NjQyNmQ3MGE1ZDc5YjU3NWEwYTEyNDM5MzljZDE2Nzk2N2I5N2EyMDA3NGVjZGQxZjRiMjE0MDAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjZlMWQ1YWEyZWYyYTBkODhkY2JlMWViZTI2YTg5OTdkOWVjODhjZGNmMmMzNDA1YzgwZjYwOTFmZmNhZDUzYmQifQ"
- }
- ]
- },
- {
- "id": "claim_4d70b7d4c8804f9ab34c198595b0ab63",
- "statement": "A missing config file yields defaults, while unreadable or invalid files produce errors naming the path without echoing content; a BOM is tolerated.",
- "evidence": [
- {
- "resource": "repo://src/config.rs#L165-L190",
- "version": "repo-lines-v1:sha256:98536507e8260febe788fbadf4507f155d98cae147436b79fb8b0f633fd9ecdf:eyJzZWxlY3RlZExpbmVDb3VudCI6MjYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImE2NTEzYThiZDE0NzdlYTVhZTdhMWU5N2IzMjFhZWUxNmY1YjcwZmEyZDA3ZTMzMTAyYmNiY2M3MWE1N2JiMTEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRiNzAzOGM3MGY5ZDBmYzEzOTYwY2YyOTRkOTdhODRlOTUwMmNhZmI2Yzk1NjM2ODhiZjc4ZGQyNGY0NWE2YWUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjJkM2E4MDAwMjZjNmY2MDFiYmM4MDdlYWI0YmI1Nzk1ZTY4MjEzNGYxMWU3MTRmNzRkMWVlMzQzOTUxNjE4NDYifQ"
- }
- ]
- },
- {
- "id": "claim_bf32cf0c4c6b4a33a7ad0e587b41db0d",
- "statement": "An openai_base_url made only of slashes is rejected.",
- "evidence": [
- {
- "resource": "repo://src/config.rs#L212-L219",
- "version": "repo-lines-v1:sha256:416d7587d25100ea2db4d28ac60e8ff2b5b07566b3bbad27544a561576d2d6d4:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiZjg0NWUxMjk4NjExOTI3YTI5YjJhNjA0ZmZiMTBhOTcwMjc5ZjIwYjZhMjBiYTA4MGJiNDFmYWU1NGJkYmFmNiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDEyY2EzNDVjY2Y3NWJmOWMwODA2YmNlNjk1YmU4ZGU4MDhiNzk5ODQyNTFhN2E1NGQyMDJjZjYxMDFkZDQ1MSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiZmM2ZTJmOGQ3OGU4N2ViYmYxZTQwNWUyMmIxODU5MGViZjMzNzQ3OTY5MGVlNDVlZGIxNjMxZGVlYjJjZDQ0NiIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiZTM0ODM0OGE5MDUyNDI1NDNlZmRlZTgyZjg3NWRlMTk1NzU5Y2Q0MDkyODQ3ZDBlZWIyNzdmYWQ4M2Q3NzUxZiJ9"
- }
- ]
- },
- {
- "id": "claim_5adc6f9c49dd4401a99e814a572bc8fa",
- "statement": "Config Debug masks the API key and FileConfig has no Debug implementation.",
- "evidence": [
- {
- "resource": "repo://src/config.rs#L90-L138",
- "version": "repo-lines-v1:sha256:e33abdd1327656fd1d23851fb659904bbcb139efe2a042374b4af5a47ae17609:eyJzZWxlY3RlZExpbmVDb3VudCI6NDksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImQwOGE4NDgyODgzYmU5ZjVmMDIxNDY2ZTgyOGE2MjgwZTI5YTNiMjI0ZTQ4MTY4ZjZjMWQxMDY0MzI3YjlhMjYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjY0Zjc0NTFlMTZhYzBlYjU5ZWE3OGI4Nzk0OTdhMjVkNzM4NzUxYjYwZjE1ZmYyYjQ3ODBhM2RmMGYwYTIyNTIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImFiNzFkMjFhZWI1ZGU3M2Q1YmI3YmU2NDg0YTMzODliNjY1YjdjMDc1YmM4MjlmMDIyYWE0ZDc1MjM2OTNhMTUifQ"
- }
- ]
- },
- {
- "id": "claim_774bf78d731f4e339d1b126c17af24cf",
- "statement": ".gitignore ignores /config.toml, .env and SQLite journal/WAL/SHM files while the *.db pattern is commented out.",
- "evidence": [
- {
- "resource": "repo://.gitignore#L4-L10",
- "version": "repo-lines-v1:sha256:77077e606b163d2d05e653b74b97b622e0f206303b3c1e84cde7d46e444772ce:eyJzZWxlY3RlZExpbmVDb3VudCI6NywiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMmY5YTBiZTNjODI3OTdmYzkzZDFlNWViYTYyZGUxODc0YmRhMDIxMmZjOTZjYWNmYzk5OTE5ZmEwYzRjNTE2ZiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiN2QwZjA2ZjYzMzY3OGUzMjlkYjQxYmY1MDMwNTMwNGIyZGU4MzZjNTY2ZGU2Nzg4ODMzYTM4Mzg1NTRmYjhkNyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiZTgxNzVmOGEzOTBhMGRhMzk4YzYxMjUwODkwYTYxZTI2YTQxMWIxMTlkMTIzNGQwNDA2OGU2NWUyOWY4ODIxMyIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiNDhiMWYwNDhlZGUzNDgwNzEzNGZkZjlkNGYzMWIzYTY1ZWIzZDMzMzJjMTE5M2JhYmNhYTRiMGNiZTUzMDBiZiJ9"
- }
- ]
- },
- {
- "id": "claim_b8d35a34934748b7bba2314b03d93883",
- "statement": "The cooldown and catch-up keys are Option<u32> in the file so negative values are rejected, and 0 disables the respective cooldown or the catch-up.",
- "evidence": [
- {
- "resource": "repo://src/config.rs#L1-L17",
- "version": "repo-lines-v1:sha256:dc79c794a5e3d2073767fa6cfa13bd4151134d61cb04fcfced77a76e618e78d1:eyJzZWxlY3RlZExpbmVDb3VudCI6MTcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImI0MGE0NTBjZTI3ZmY3MjYwYzM4M2U4NDk4MjhjNzY1NTVlZTk1ZTllM2JmMTJmOWYxY2IxY2Q2OGZlZGFkMDgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjU3MDEzOTMyY2E1OGY4ZjcyMTAwMmEyY2JiNzJhNzI3YTM1MzBkYWY0ZGU0NmYwZTE0MmRiMTI5NTIzZDNmOTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjowLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImZmM2E0OTIzMjZjZmI2ZjY2YzdiNGY4NDI0Y2NjYWZjOWM5YWU4YzU4NGU0N2JjOGJiNTQ0ZjI0NGRjOGE3YWEifQ"
- },
- {
- "resource": "repo://src/config.rs#L447-L470",
- "version": "repo-lines-v1:sha256:11c57a2a9a34d8871e2e9e9bd89958b082add6b857091394767f05f5307ae3d8:eyJzZWxlY3RlZExpbmVDb3VudCI6MjQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImQzMjE4MGIxYWUzZmFiYTY3NDViZjMwNjlhMWFlODIzNjk2ZDUzNjI2MWNmNmVmM2U4ZjZiNjc1NjM3MDUzNTYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjkyYjVlZGY1OTQ5Y2ZlYTY3ODIyY2Y2OTExMzIzNjNkNjhkNmYxZTE2OWY1ZTBkNGY3YzE0ZTVmYTFlNmQ0ZTUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImEwMGRiMDQwZjI5MDliZjk3OGZmMGE5NTZhNTVlODNjNjUzNDE4ZGU2YmI2OGY4MDQxZGE5NzZmOGQzZDIyNzAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImZhY2Q0MzU5ZGJlOTczNTdmZWM4OTM2OTQzZjkzM2Q2YWMwNjE4ZGFiODQ1ZTMwODQxYjdjMGJiZjUwMzI4OGMifQ"
- },
- {
- "resource": "repo://src/config.rs#L90-L112",
- "version": "repo-lines-v1:sha256:b8969ab8e45ac380a71bef0a4aa9ca3ad8888bf8b63837f95629a882b5c5011f:eyJzZWxlY3RlZExpbmVDb3VudCI6MjMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImQwOGE4NDgyODgzYmU5ZjVmMDIxNDY2ZTgyOGE2MjgwZTI5YTNiMjI0ZTQ4MTY4ZjZjMWQxMDY0MzI3YjlhMjYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjY0Zjc0NTFlMTZhYzBlYjU5ZWE3OGI4Nzk0OTdhMjVkNzM4NzUxYjYwZjE1ZmYyYjQ3ODBhM2RmMGYwYTIyNTIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjNhN2ZlNzVmMzU5ZTMyZTFkYmE4YWFjMDY1ZmMzYWFhMjY4YzcxZDc0NjUyYjU2OWNkNTJhYjEzYmZlYmMwN2UifQ"
- }
- ]
- },
- {
- "id": "claim_65d950a1541d4f92816c2853a2740aa2",
- "statement": "The AI request log omits the API key and redacts image data URLs but records the full request body and outcome, appending without truncation.",
- "evidence": [
- {
- "resource": "repo://src/ai.rs#L200-L209",
- "version": "repo-lines-v1:sha256:ecd1d611f74d5bde7229623335cb8f8bf5cfff645aa0dccc5adb5732d9287806:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjY1NThiY2FiNTVlMjRlNWYzNGUzYzg3ZWFkMGI1MmRiNDExOWRhOGM5MmI3MDJmYjkyZTg4YjgyNGYxZDllODAiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImM1YzIyY2NmNTE5YjEyMWM0MDBlNmQ4MTg3YTA4MDI5ZjE5MmE0ZmViMDU1NWYyZTBkYzJmYjg4OWY3NWEwZTYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjJmNjljNjZiNTk4NDRmMjg4YzY3Yzg4NWY2NzQwNmEwNmExNjg4OWI4ZTc4NDMzNDZiMWUzNmRkNjRlYWIzNTUifQ"
- },
- {
- "resource": "repo://src/ai.rs#L350-L442",
- "version": "repo-lines-v1:sha256:89a3eb5bccc99aa1700ff566d228266bde9e75070cec6fc4ff8f961fd2cb30f7:eyJzZWxlY3RlZExpbmVDb3VudCI6OTMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjNhZmRkOGE1NjBlNzQ4ZmFmNGRlZDhhYjJmOWU4NmUyMTU5NDA1YTAxMGUwYzE4YjI2M2NhNDE4MzAxMzFjZTciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjcwZmRhNDBjNDBhZTM2Yzk5ODVhZWRjMDE5MDM3NDJmMTViYmY5ZDY4N2IxZjk1MTVmZDkwOWU2ZGUzY2E2ZTkiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjJjZTgwZDQ1MzU3ZWY2NWZiNjUzODgzZWEzOTU1NDMyMDMzN2Q0YjA3MzcxNzQ1ZWE0MGFkYzRmMGFjNTU0YTcifQ"
- }
- ]
- }
- ],
- "verification": {
- "by": "openwiki/0.7.2",
- "at": "2026-10-19T19:53:56.480Z"
- }
- }
|