configuration-and-data.json 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. {
  2. "schemaVersion": 1,
  3. "pageVersion": "sha256:f973194dff48fa997deb016f452d6f1515458eef3b52aa111bc52439dafc1b81",
  4. "claims": [
  5. {
  6. "id": "claim_0519d797500c4fba86d6c64ac1e60df4",
  7. "statement": "Configuration is read only from config.toml and no environment variables are used.",
  8. "evidence": [
  9. {
  10. "resource": "repo://src/config.rs#L1-L25",
  11. "version": "repo-lines-v1:sha256:9e58106875f518f2506700924e5e96bab155046a8df51e59257dc94cac50930e:eyJzZWxlY3RlZExpbmVDb3VudCI6MjUsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImI0MGE0NTBjZTI3ZmY3MjYwYzM4M2U4NDk4MjhjNzY1NTVlZTk1ZTllM2JmMTJmOWYxY2IxY2Q2OGZlZGFkMDgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjZmNzkwMmU2MjBjYmU0ZDIwMGU3NTVjYmY5YTMyOWYxMzFkYjFhM2UxZDQ2Mzg1MWU1YjFiOTE4NmM2YTVmYzUiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjowLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjcxMzE1MjZlMmQ3ZWFkMDgwNmJkNzJlYjRjMGJlMjE1NjI4ZWZiMGMzMjc3OTM0NjVkYjM1NmQ2NTQ4NDAzN2YifQ"
  12. },
  13. {
  14. "resource": "repo://src/config.rs#L254-L263",
  15. "version": "repo-lines-v1:sha256:765917d933b8312e24ca9f330a3ebaad4a414c773af0d2ae857bbd7e091afe34:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImQ4MDc5NGE2MDA2MzNhZTY5ZGFlMWYzOThjYTk3ZTc5Yzg3NDc5ZDFjNjE3MDg0ZTRkMTgyODZmMTlkODFjMTUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjgzZDI4NDFkZmUxZTBkZDIxMmQwYzE1ZDAxZTVhYzkyMTBmNTgwMGI4YmRmZTk5M2FkZDAwYmQ5NGYwMTRkNmMiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImU2YzkxMzJjZTZhZmY4ZmJjMmFmMzRiY2JmYWE1ODVhN2RmMWUxODViYjc5OTFlY2I5YzgxYTUxODg3NWUyOGUifQ"
  16. }
  17. ]
  18. },
  19. {
  20. "id": "claim_028b1975c5304eff8c79e0ffa4b39cad",
  21. "statement": "The data directory is the platform config directory joined with wh and is created at startup by ensure_data_dir.",
  22. "evidence": [
  23. {
  24. "resource": "repo://src/config.rs#L166-L170",
  25. "version": "repo-lines-v1:sha256:dd4141940976146e96656f2de294f92e1275a16efba97aa2c7318676f34bdfa4:eyJzZWxlY3RlZExpbmVDb3VudCI6NSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMzVhMDYyMDkxMmIzMTUwZDZlYmQwNDQyOTUxZTdjNWEwODlmODMwMzYzNmJjODZiNmQxOWRmN2U3YTFmMWEzZCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDEyY2EzNDVjY2Y3NWJmOWMwODA2YmNlNjk1YmU4ZGU4MDhiNzk5ODQyNTFhN2E1NGQyMDJjZjYxMDFkZDQ1MSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiNGU1ZGI4YzkwMjczZTAyOTc3MTY3ZWMwNDM0N2M0MWQ5MmE1MTE4NDMxMTA0M2UyMTU2YmM4MGFiYjkwMWQ0NyIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiMDY4YzgxNzM5NzQwNTE2YzI4OWQ4ZWRlZWM0N2IwMjcxMGFmOWVmNWM4MjE4M2NhNWQwMTc4MWVhMjI1YjU1MCJ9"
  26. },
  27. {
  28. "resource": "repo://src/config.rs#L293-L296",
  29. "version": "repo-lines-v1:sha256:70ea48c62bb6583f73eaa3d204fb92456b268569dccd85ba7c47f85f0175339f:eyJzZWxlY3RlZExpbmVDb3VudCI6NCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMDE1Zjk2ZjM2OWY4YjE1NjExZWVjMDljZTBjOThiYjNhZTNhM2U5Y2U2MDEzZGNmMGE3OWY4ZTM1MjVmMjMxNyIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiM2UxNTlhZDA5YmYzMzllMTM2ZmY0NzVjMjc4NDNkMTYyY2JiMTI2ZGMxMmFiMDM3MjE3M2M2ODY4ZGM5NzUwMyIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiMTZjMzk0MWE5YjYxMDI1Yjg1ZWU5ZWEzNzYzOTUyYTViMTM5NmNkMmY2ZjczMTkyZGQ3NDYwNDc5OTlhYjY0MSJ9"
  30. }
  31. ]
  32. },
  33. {
  34. "id": "claim_c2f906f0d67647d2b24c184886f70960",
  35. "statement": "session.db, history.db and the optional ai_requests.log live in the data directory next to config.toml.",
  36. "evidence": [
  37. {
  38. "resource": "repo://src/config.rs#L298-L320",
  39. "version": "repo-lines-v1:sha256:f895d312efc12c901e18e3c47999e82cde54de595ed326f94dc9c80be206fd75:eyJzZWxlY3RlZExpbmVDb3VudCI6MjMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImIxNjY4MjQ0NGNiOTU1NTQxNjJjOGIzNjYxMjg0YTJhNGMzMDIwZmQxODU3OTYxMDU2ZGE1MjMxM2Y2YjgzYjkiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjIxNTA5ZGYyZDNjMWJjODQxODQ2NDlhOTg3NzAwZTU4ZGVmNTJkZGQ1YzBkZTVlZWIwZjY0YTc1YmQ5MzBlYzEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImE1MjE2MDRiMzVmYzQwYWYwMGNiYTRlZWEyZmQ1ZTJjM2FmMTg2M2IzOTExODVkN2JmNGJiMDllNzJkMGM4YjMifQ"
  40. },
  41. {
  42. "resource": "repo://src/config.rs#L47-L56",
  43. "version": "repo-lines-v1:sha256:6624d58d13d3982b8829e7b759fc7c36a643278f2d243526a887428e34a0d469:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImU1MDllZGUxYTUxZmE5MGM4ZmQ0YTNkODdmYjJhMGU5OTMwNzhkMjc0MzU1NGFjMGM4MmIzMTdmNzQ0OTY5ZmYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjFmNzZjMzcwNTRkNWY0YzFhNWZhZDE4YzFlYjI0NTNmODIxNTI0NDQ2M2ZkNjA4MzIwZDEzZDYxNmFlYmVhNmQiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjMwY2VjY2EzYjg3NDgwNDU3ZGVmZTlkOWVkY2I1N2VmMDdlN2ZlZTE2MTljZjdmYWEyNzM0Y2Y2M2Q5MzIxYjEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjQ1N2RlMDJkYWE2M2RmYzAxZmQxNjkyNDc1ODY2ODA3OGM5NmJlMGM1ODkyZjQ4M2UzMDdmNjAyYTU0MDRkMzQifQ"
  44. }
  45. ]
  46. },
  47. {
  48. "id": "claim_4a0091b8b0c944f9916463712878acbe",
  49. "statement": "Keys openai_api_key, openai_base_url, openai_model, openai_vision_model, system_prompt, ai_log, cooldown_seconds, group_cooldown_seconds, catch_up_seconds, ai_retries and web_port map to Config with defaults (base URL, model, ai_log false, cooldowns 30 and 300 seconds, catch-up 7200 seconds, 2 retries, web panel disabled); system_prompt is not trimmed.",
  50. "evidence": [
  51. {
  52. "resource": "repo://src/config.rs#L265-L287",
  53. "version": "repo-lines-v1:sha256:980417922309d654c96024f5b863cf6ea53769c253161d25ff0d1c4d3a062c88:eyJzZWxlY3RlZExpbmVDb3VudCI6MjMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6Ijc2NWZhNGU5MTRkN2UzOWE2MGJhZTc1M2NhMjE2YTg3NGE3NmZmZWY4NTc4OTY5NTZkNjg0MDM4YTY1MWJjZDAiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImM5MGRlZTM4YjdkMWZiYjMzNjNiMjY5Y2EyNjc4MTE4YTU2ZGNlZjlhMTU4MmE2N2Y3YjM4ODY2ZDZiYmFlN2UiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijg4ZWYzM2E3NjQ3YTM0NDVkNzE1NDU4YmE2Yzc0OGY2NmIyYWZiNzYxYzEyODc4NWU3MzRjZjIyOThjOTdkMzUifQ"
  54. },
  55. {
  56. "resource": "repo://src/config.rs#L34-L45",
  57. "version": "repo-lines-v1:sha256:20a9554333b6e6a9c3dc056ceac92d156d754d88fece885f6f018e8eb85b4f38:eyJzZWxlY3RlZExpbmVDb3VudCI6MTIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjdkNWE4ZjI1MGMwMjJlOTMwNzUxZGFlMTg0YjBhZGMxNTUwYWRkNzVlNGJiOTUyMDBiNTE0NmY0NzQ5MjdlODMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImQ1MDFkZTlkMjcyZmZkODVmYTk1OWMxN2JiMTdjYWZkMmJkYjM1YTgyMGQzNDA1NGRkOWQ4NThkNzUyMDMyODIiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijc2YTNkY2UwNTMyZWI3NmI2M2EyNmViYzdlZmNkNWE3YTViYzFjMTFhOWFiZGRhM2Y3ZjJmNzhkODc1Y2Y3M2YiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjdlODA1ZjRiMzVlMzg3NmExMjg5OTE1MjgyYWRhNWNkMzNhNzdmNTMyYmYyOWMxOGM4OWRhMjJiMTRjZjUwYmQifQ"
  58. },
  59. {
  60. "resource": "repo://src/config.rs#L69-L103",
  61. "version": "repo-lines-v1:sha256:7c6f8495ff37fead6b29d635192080812a646802f43e26c9dbaa5406f2f4c18f:eyJzZWxlY3RlZExpbmVDb3VudCI6MzUsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjY2MWQ4OTAwZThkNDcyOWNhMDZlYTYzMjM0ZGI5OTMwMzljZGI5YzRhODA5OGE3ZDQzMmZiNzQ3ZDI5NDUzZDUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRlMzMzNjA1NjQyNmQ3MGE1ZDc5YjU3NWEwYTEyNDM5MzljZDE2Nzk2N2I5N2EyMDA3NGVjZGQxZjRiMjE0MDAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjZlMWQ1YWEyZWYyYTBkODhkY2JlMWViZTI2YTg5OTdkOWVjODhjZGNmMmMzNDA1YzgwZjYwOTFmZmNhZDUzYmQifQ"
  62. }
  63. ]
  64. },
  65. {
  66. "id": "claim_4d70b7d4c8804f9ab34c198595b0ab63",
  67. "statement": "A missing config file yields defaults, while unreadable or invalid files produce errors naming the path without echoing content; a BOM is tolerated.",
  68. "evidence": [
  69. {
  70. "resource": "repo://src/config.rs#L187-L212",
  71. "version": "repo-lines-v1:sha256:98536507e8260febe788fbadf4507f155d98cae147436b79fb8b0f633fd9ecdf:eyJzZWxlY3RlZExpbmVDb3VudCI6MjYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImE2NTEzYThiZDE0NzdlYTVhZTdhMWU5N2IzMjFhZWUxNmY1YjcwZmEyZDA3ZTMzMTAyYmNiY2M3MWE1N2JiMTEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRiNzAzOGM3MGY5ZDBmYzEzOTYwY2YyOTRkOTdhODRlOTUwMmNhZmI2Yzk1NjM2ODhiZjc4ZGQyNGY0NWE2YWUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjJkM2E4MDAwMjZjNmY2MDFiYmM4MDdlYWI0YmI1Nzk1ZTY4MjEzNGYxMWU3MTRmNzRkMWVlMzQzOTUxNjE4NDYifQ"
  72. }
  73. ]
  74. },
  75. {
  76. "id": "claim_bf32cf0c4c6b4a33a7ad0e587b41db0d",
  77. "statement": "An openai_base_url made only of slashes is rejected.",
  78. "evidence": [
  79. {
  80. "resource": "repo://src/config.rs#L234-L241",
  81. "version": "repo-lines-v1:sha256:416d7587d25100ea2db4d28ac60e8ff2b5b07566b3bbad27544a561576d2d6d4:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiZjg0NWUxMjk4NjExOTI3YTI5YjJhNjA0ZmZiMTBhOTcwMjc5ZjIwYjZhMjBiYTA4MGJiNDFmYWU1NGJkYmFmNiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDEyY2EzNDVjY2Y3NWJmOWMwODA2YmNlNjk1YmU4ZGU4MDhiNzk5ODQyNTFhN2E1NGQyMDJjZjYxMDFkZDQ1MSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiZmM2ZTJmOGQ3OGU4N2ViYmYxZTQwNWUyMmIxODU5MGViZjMzNzQ3OTY5MGVlNDVlZGIxNjMxZGVlYjJjZDQ0NiIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiZTM0ODM0OGE5MDUyNDI1NDNlZmRlZTgyZjg3NWRlMTk1NzU5Y2Q0MDkyODQ3ZDBlZWIyNzdmYWQ4M2Q3NzUxZiJ9"
  82. }
  83. ]
  84. },
  85. {
  86. "id": "claim_5adc6f9c49dd4401a99e814a572bc8fa",
  87. "statement": "Config Debug masks the API key and FileConfig has no Debug implementation.",
  88. "evidence": [
  89. {
  90. "resource": "repo://src/config.rs#L105-L160",
  91. "version": "repo-lines-v1:sha256:5e6170855098f89234451aeac62ee28645a6864149176bea3af06a2c5f101537:eyJzZWxlY3RlZExpbmVDb3VudCI6NTYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImQwOGE4NDgyODgzYmU5ZjVmMDIxNDY2ZTgyOGE2MjgwZTI5YTNiMjI0ZTQ4MTY4ZjZjMWQxMDY0MzI3YjlhMjYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjY0Zjc0NTFlMTZhYzBlYjU5ZWE3OGI4Nzk0OTdhMjVkNzM4NzUxYjYwZjE1ZmYyYjQ3ODBhM2RmMGYwYTIyNTIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImFiNzFkMjFhZWI1ZGU3M2Q1YmI3YmU2NDg0YTMzODliNjY1YjdjMDc1YmM4MjlmMDIyYWE0ZDc1MjM2OTNhMTUifQ"
  92. }
  93. ]
  94. },
  95. {
  96. "id": "claim_774bf78d731f4e339d1b126c17af24cf",
  97. "statement": ".gitignore ignores /config.toml, .env and SQLite journal/WAL/SHM files while the *.db pattern is commented out.",
  98. "evidence": [
  99. {
  100. "resource": "repo://.gitignore#L4-L10",
  101. "version": "repo-lines-v1:sha256:77077e606b163d2d05e653b74b97b622e0f206303b3c1e84cde7d46e444772ce:eyJzZWxlY3RlZExpbmVDb3VudCI6NywiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMmY5YTBiZTNjODI3OTdmYzkzZDFlNWViYTYyZGUxODc0YmRhMDIxMmZjOTZjYWNmYzk5OTE5ZmEwYzRjNTE2ZiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiN2QwZjA2ZjYzMzY3OGUzMjlkYjQxYmY1MDMwNTMwNGIyZGU4MzZjNTY2ZGU2Nzg4ODMzYTM4Mzg1NTRmYjhkNyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiZTgxNzVmOGEzOTBhMGRhMzk4YzYxMjUwODkwYTYxZTI2YTQxMWIxMTlkMTIzNGQwNDA2OGU2NWUyOWY4ODIxMyIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiNDhiMWYwNDhlZGUzNDgwNzEzNGZkZjlkNGYzMWIzYTY1ZWIzZDMzMzJjMTE5M2JhYmNhYTRiMGNiZTUzMDBiZiJ9"
  102. }
  103. ]
  104. },
  105. {
  106. "id": "claim_b8d35a34934748b7bba2314b03d93883",
  107. "statement": "The cooldown, catch-up and ai_retries keys are Option<u32> in the file so negative values are rejected, and 0 disables the respective cooldown, the catch-up or retrying.",
  108. "evidence": [
  109. {
  110. "resource": "repo://src/config.rs#L121-L128",
  111. "version": "repo-lines-v1:sha256:8b75e8e687adfeec46a668e0a24355f29c7e83198e5dd972c8716af7e123f9ae:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiYTVlZGFiZTdmOTczYjIwMzkwNGU4MTg1MzlkNzExMTk3ZTQwMTc4N2NkODVhZDAyYzNkNjdkYWM1OTMyNzc3YSIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiYjBiOTRjODBmNjUxYzk0ZTBmZTBmZWE4ZDc2NGUyMWFiMjc3NWFhZTkwZTVkYzczN2NjYWVmMTA1NDhjYTIzMCIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiYjg3MzFkYzc5ZDhiMzFhYzFlODZjMDMyOTQ2NDY0MTJmNjY1YzM2ZGNmZmM0MTQ4ZDVlMGJlOTE5ODdkNGRjNyIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiYjRmOGYzYzg1N2I3MjNlMDgyNWQ1MDA5MzQzOGI5ZmYyMjY2MzAxY2I1NzA3MTk4ZTc2NGZlODI0OTZhYjMwYSJ9"
  112. },
  113. {
  114. "resource": "repo://src/config.rs#L529-L547",
  115. "version": "repo-lines-v1:sha256:b7c3b1c4f7fdf5b1a22d7cb0c229948c0d3aa1ae4712f0a8be1bf0100cf8fa85:eyJzZWxlY3RlZExpbmVDb3VudCI6MTksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRhOTVhYzZlMmVhOGY3NWFlNDRhZDI3NjY4ZTU1MzkwY2MzZmQ2ZjdjZjY0MmU4ODJjMWM4Nzc1ZjUxMjk2MDMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjA1YTgyYmM5ZDU1NTVjOGUzY2Q0MTUzOTM2MmQwZWU4OTdkNTExN2U2MTRjZDkzN2JiOTliYWMwOGM0M2YyZWYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImEwMGRiMDQwZjI5MDliZjk3OGZmMGE5NTZhNTVlODNjNjUzNDE4ZGU2YmI2OGY4MDQxZGE5NzZmOGQzZDIyNzAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImRlMzMxZTU1MjViMTM5ODQzODA2NzZkN2MzNmNkYTBkMmNjMTgyZmMyYTE2N2QyZTVjOTU0NTE0YmI5ZTY5ZmEifQ"
  116. },
  117. {
  118. "resource": "repo://src/config.rs#L7-L19",
  119. "version": "repo-lines-v1:sha256:91944cf8df4c789256e6058f9182688671bf3be2314fcf2ad7893746cf2dc4eb:eyJzZWxlY3RlZExpbmVDb3VudCI6MTMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImNkNDY5ZTYxYzVmYzhjZTc4ZGQzOWQ2ZWQyMTMyY2JlMDA0Mzk5NTlhYjc5MTY0ZTM4YjJhYzY5NDA3ZDU1NmMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjAxNjUyNTRiZGUzY2I5ZjNkMjU1MDNkMGRlYzczZmZlOGY4MTcyMmUzNjc5Nzc4Y2NiMTRkNDA1M2MyMTJhYTQiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImQwOWMwYjg4Y2IwOTczNTY5NzIxYThlZDNjNjBhOTUzMDU1MTEwNjJjNGYzNmM2NjUzOTE1ZTU3ZGRmZTQ5NDUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijg2MGZlMmRiYmY0ZjEzYjNkNDBjZDhmNjliMGQzY2Y5ZGM3ZjI4Y2U5N2FjZmZjNzFmODgzNWIxYmIyMGZhNmEifQ"
  120. }
  121. ]
  122. },
  123. {
  124. "id": "claim_65d950a1541d4f92816c2853a2740aa2",
  125. "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.",
  126. "evidence": [
  127. {
  128. "resource": "repo://src/ai.rs#L248-L257",
  129. "version": "repo-lines-v1:sha256:ecd1d611f74d5bde7229623335cb8f8bf5cfff645aa0dccc5adb5732d9287806:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjY1NThiY2FiNTVlMjRlNWYzNGUzYzg3ZWFkMGI1MmRiNDExOWRhOGM5MmI3MDJmYjkyZTg4YjgyNGYxZDllODAiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImM1YzIyY2NmNTE5YjEyMWM0MDBlNmQ4MTg3YTA4MDI5ZjE5MmE0ZmViMDU1NWYyZTBkYzJmYjg4OWY3NWEwZTYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjJmNjljNjZiNTk4NDRmMjg4YzY3Yzg4NWY2NzQwNmEwNmExNjg4OWI4ZTc4NDMzNDZiMWUzNmRkNjRlYWIzNTUifQ"
  130. },
  131. {
  132. "resource": "repo://src/ai.rs#L424-L516",
  133. "version": "repo-lines-v1:sha256:89a3eb5bccc99aa1700ff566d228266bde9e75070cec6fc4ff8f961fd2cb30f7:eyJzZWxlY3RlZExpbmVDb3VudCI6OTMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjNhZmRkOGE1NjBlNzQ4ZmFmNGRlZDhhYjJmOWU4NmUyMTU5NDA1YTAxMGUwYzE4YjI2M2NhNDE4MzAxMzFjZTciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjcwZmRhNDBjNDBhZTM2Yzk5ODVhZWRjMDE5MDM3NDJmMTViYmY5ZDY4N2IxZjk1MTVmZDkwOWU2ZGUzY2E2ZTkiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjJjZTgwZDQ1MzU3ZWY2NWZiNjUzODgzZWEzOTU1NDMyMDMzN2Q0YjA3MzcxNzQ1ZWE0MGFkYzRmMGFjNTU0YTcifQ"
  134. }
  135. ]
  136. },
  137. {
  138. "id": "claim_8ffb06dc9f33422faa661f09a96c67a0",
  139. "statement": "web_port is parsed as Option<u16>, so negative or above-65535 values fail TOML parsing, and 0 is rejected with an error naming the key; unset disables the web panel.",
  140. "evidence": [
  141. {
  142. "resource": "repo://src/config.rs#L129-L131",
  143. "version": "repo-lines-v1:sha256:b4f8f3c857b723e0825d50093438b9ff2266301cb5707198e764fe82496ab30a:eyJzZWxlY3RlZExpbmVDb3VudCI6MywiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiNzEzN2YxMDljNWYyMDU1OGE3MzUwZDRlYjdkMmU2ZTllNDk1NzIwY2Y0YWQzZTk4NjZlY2E2NDAxNWU3MGJkYSIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiN2U0MTE5NDE4OWJhMWY1NzIyMjFiMjA3N2JmMDU4ZmExYTNkZTA3ODdkMzIzZWMyYWI0MGU3MmEyMTRiYmM3OCIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiMjgyZmY5MDM4ZGNhMmQwMGZjZjczNzgzOTQwNWI2NGI3NmVlODMyNzA4NTVlMDMyZDU5YTU4YzYyMTc4NDkwNSIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiOTY4MTE0ZGZhNDU1MWJiNmMwMDBmNGUyNTVjNjhiMDYyMmZjYmUyY2YyZTJiYzJmZThhODNmYTg2ZmY2OTk2MCJ9"
  144. },
  145. {
  146. "resource": "repo://src/config.rs#L243-L252",
  147. "version": "repo-lines-v1:sha256:6d490312b71acd64e2e0d7d854caad2acb8ba41147fcb3bcf92195ba26fc850e:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM3NGJkYjgxZDEzY2MxOTQwZWE0Y2EzNTQ4NzZiODhiYmEyOWYxMmIzNTIzZTE1M2VlZDZiOGFlNWM4YjllYTciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImEzMjJlODc4N2I1NGUwYzg5MmMxMzExNmFmOTM5ZjY5YTZkM2VjNzE2ZTMzMWY3N2JkN2E3OTFmYzAwMjFhOWYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImUzNDgzNDhhOTA1MjQyNTQzZWZkZWU4MmY4NzVkZTE5NTc1OWNkNDA5Mjg0N2QwZWViMjc3ZmFkODNkNzc1MWYifQ"
  148. },
  149. {
  150. "resource": "repo://src/config.rs#L451-L475",
  151. "version": "repo-lines-v1:sha256:37db7f6e1b478b12a699a96825e0e7d8506be31e81194c64ea6f58027479b43f:eyJzZWxlY3RlZExpbmVDb3VudCI6MjUsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImE3NmFiMWQ5ZjdkNjNlNzQ4YjE1ZWQ4NzQzYjFjOGE2MWQxZmE4ODNmYzQ5NjkwMDM1NzUxMDk3N2UzMmJkMjQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6ImFjZjZmZDFkMjdkMzRmN2Q2N2RhMWQ5MDI2M2I0MzllZjk3MjNmOTRmYTY5YTJmZDI5NzZlYmE2ZDQ3MzAzNDAiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImEwMGRiMDQwZjI5MDliZjk3OGZmMGE5NTZhNTVlODNjNjUzNDE4ZGU2YmI2OGY4MDQxZGE5NzZmOGQzZDIyNzAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijg5M2QyZGYwZGQzNzE4YmQ2M2NiMGFkYjE3NjllNWMxOWJmYzA4YzY4ZDM5NjEwYjU5NGM3NDM0MTE4YTQwMGQifQ"
  152. }
  153. ]
  154. },
  155. {
  156. "id": "claim_919f934c898e4e68a57c6e267fd4238c",
  157. "statement": "config.toml.global.template lists every supported key with its default value and leaves web_port commented out.",
  158. "evidence": [
  159. {
  160. "resource": "repo://config.toml.global.template",
  161. "version": "repo-file-v1:sha256:3b36a2e26714ee5ee10f7f4facca5cf94c8dcced7dd757911044af3066ba6070"
  162. }
  163. ]
  164. }
  165. ],
  166. "verification": {
  167. "by": "openwiki/0.7.2",
  168. "at": "2026-10-20T20:27:06.515Z"
  169. }
  170. }