ai-autoreply.json 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. {
  2. "schemaVersion": 1,
  3. "pageVersion": "sha256:51f277c84ac8b779ca6c470fcddd420be0463aa6c621620207ab047c32ec60ae",
  4. "claims": [
  5. {
  6. "id": "claim_4abb79458e064f78a8d565a7069cb356",
  7. "statement": "autoreply.rs contains pure decision and context-building logic without I/O.",
  8. "evidence": [
  9. {
  10. "resource": "repo://src/autoreply.rs#L1-L4",
  11. "version": "repo-lines-v1:sha256:ab77952e2cd65858f5a94c8c5277b1200f58c820e5529a8757c0fe06a1e1a9fe:eyJzZWxlY3RlZExpbmVDb3VudCI6NCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiNTFiNTJkMjY2MjhkMDI1N2NiNzM3NDY0NmMyNTg5Yjc5MDEyMDBiNDc1YmZhYWUxMmFjYWU0ZjBmNWIwOTA5MiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiYTk1YmVlYmQwZDJhZmU0YmMyNGU4MzE5MzQ1MGY1YzY0MzMxZmFkNzNhNWQ2YTI0YWYyODRlZTcyZTI1ZWI1OSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjAsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NSIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiZTVkODIxZDkwZWIyMjM0YThkNWYyZjc1MGZiZmVmMGU1ZjE0OWE2Yjc1MTBkNDRhYTNmMTNiMjdlNTQwYWE2ZCJ9"
  12. }
  13. ]
  14. },
  15. {
  16. "id": "claim_bd1031863e03434ea4649d5866821b34",
  17. "statement": "Enabling a chat's autoreply requires a configured AI and a private chat or group, while disabling is always allowed, and the flag is persisted; F3 targets the selected list row with list focus and the open chat with input focus.",
  18. "evidence": [
  19. {
  20. "resource": "repo://src/app.rs#L1342-L1378",
  21. "version": "repo-lines-v1:sha256:0186ad31b1302456cd660841125a254c3e2f46e2074372b97855046cd705d5de:eyJzZWxlY3RlZExpbmVDb3VudCI6MzcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjBjMWZhZjI0NjQzNTZlZjY0NzAyNjI4YzM0MGYyOGNhZDljMjY3OGYxMTViNTAxNDZkMGMyNTBmNzhmZDk2NWMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjkzNzNhMTgxNzI2YzQ3ZjdjNzlmOTI3ZDI2NzhhYzQ3NjYzY2VhMzI1OGYxOGEwNTM0ZTg2NDVlYmFlOTlkMGUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImUzZWNmNGIzNzRlN2M0ODFlZjUzODQ1Y2Y1YjlmNDI5MDk3NmQxYTlmNDlkOWY5NWJjNjIxNWEyY2VhMDYyOTAifQ"
  22. },
  23. {
  24. "resource": "repo://src/app.rs#L1889-L1902",
  25. "version": "repo-lines-v1:sha256:76ea2311dd543d33bf1c52b4cee8997184cb67643a8ba3b2f715abf2fea34667:eyJzZWxlY3RlZExpbmVDb3VudCI6MTQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjA0NDI0MGFiOGNkMTM1NDE2ZTQ5MjMyYTEzMGIzYzlkYmI2NWZmYzg0OGNjYzY3OWJhYTQxYWQzNjY4ZTA3MjQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjE5ZTc2MzU1Y2YxMTk5NDgwYzNmOTk4MzZiMTQ4NmM4NDFkODkxZmFhZDkwNGM2MDhlMDkzMDIyZDM3NTdhZWUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjhkYTViNjcyY2ViZDYwMjY1YTM5NmE4NTAxZmMwMmEyYzg2YTZkNWJkYzMyNzRlMGQyZDA5ZDYwMTJhY2Q1ZTgifQ"
  26. }
  27. ]
  28. },
  29. {
  30. "id": "claim_39956a806ff74eb3bdbe245a5c9b0f43",
  31. "statement": "A chat is private when its JID server is s.whatsapp.net or lid, a group when it is g.us, and autoreply is supported only for these two kinds.",
  32. "evidence": [
  33. {
  34. "resource": "repo://src/autoreply.rs#L58-L107",
  35. "version": "repo-lines-v1:sha256:2c5bff97825cbfe1e0822d2f2450e3d71e38f9eba0e4ba5d78ce48dd225acc29:eyJzZWxlY3RlZExpbmVDb3VudCI6NTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRlNzAzNDZhYmE0OTZiOTAzNzI1MTY5OWQzY2YyNDAwNmU0ZGYyMDM2N2MzNDRiZjllZjkyOWEwMjJmYTRjZGYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjIxNTY3ZTI1ZmQ3ZTExMzc3YmU4NDk5OTc2NDEzOThhYzRmZTMxNTBiNzE3OTA4NjNiNzc0ZTAzYmNiZGM0ZjkiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjE2MzhiZmQ4ZjNiOGY1OTQzZDQyODJhMmY3MGQ0ODBhOWE5MGVkMGE3ZTA1ZWQyOWNmMWE0YzRjMzZkYWJkN2IifQ"
  36. }
  37. ]
  38. },
  39. {
  40. "id": "claim_01e8cc3ee34a49b6a579c25728a8efa1",
  41. "statement": "Only newly saved messages reach maybe_autoreply, which requires an AI client and system prompt and treats the chat as enabled when the global or per-chat autoreply is on.",
  42. "evidence": [
  43. {
  44. "resource": "repo://src/app.rs#L485-L532",
  45. "version": "repo-lines-v1:sha256:25898277ac10619d92709af2d4e7204132d29205e0a7f7d7888b7f4f15606eed:eyJzZWxlY3RlZExpbmVDb3VudCI6NDgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjBlYWIwYmIzYTMyYTBlZGUzMGY0ZTk1MmQ1MjcxYzRhMTgwMTZjMGU4Y2M4N2VhYmE1ODA1OTYyZDNjOGE4NTYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjgyODRmZjk5YWRlYTg2MmRlOTFhNTQwZTNjOTcwNzc4NWU0ODY1ODg2YjZlOTFmMzFiNzdmNzdlOGQzNzI4OGMiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI1YjUzYzQyYTJjZjU2YmRlZWIxOWJhYTZhZjdhYTQzZmRkNjFmN2VhNTQzOGVjOWRmYTAwYjc0Nzg3NWM1ZGQifQ"
  46. },
  47. {
  48. "resource": "repo://src/app.rs#L858-L860",
  49. "version": "repo-lines-v1:sha256:2f717e0ab27c971d848f3c4b787b63e1843cdddb271adaa95d5811bab8ccb1c6:eyJzZWxlY3RlZExpbmVDb3VudCI6MywiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiZjZkNGY2ZDY0NTVjYjVlMWJiMTEwOTU0NzU5ZjliOTU2YzhmMTU5YTE1NTExZjVkODZhZTZhMGUwMGMyMTQzMiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiYWE0OGNmOWNjZDU2MDljYjc0MmQxYjNkMmY5MjIyNmYzZjQ2YjU4MWE3Zjk5YWM5N2Q4NDdmYTBjOWQ5MWI3OSIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiOTEyYzE5ODI4NjExZDJhZjdmZWFmNjQyN2ZmNzE0MjFiN2JhMTU4MzM5OWY0YWU5ODBiMzJkNThlNDUzYTJiYSJ9"
  50. },
  51. {
  52. "resource": "repo://src/app.rs#L987-L989",
  53. "version": "repo-lines-v1:sha256:a9005f55bfc9d8f0fe3bcd2d8af41d7200648c575a982bd6184e0a709f666f1d:eyJzZWxlY3RlZExpbmVDb3VudCI6MywiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiY2ZhYjYzNzAzMWNiMGJiMTEzOGI0YjQ2OTE3MDhiNjRhNzA3MTQ3NTZhMWExYTQzZTE0NGZmY2MwY2E2NTllMCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiYTZjZWVhMWQ3YmU1MjdlYWYxYTAzZTNhYWU0MjQwYjg3ZWQyZDg3NzI1YWIxNzQyZmNlMjRmZjczNTE2ZTllMiIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiYTZlYTYzN2IyZDc3YWVjZjY1Y2EyOWFjNTgzOGQ4NmRmNGEwODM4NTdmMDQwM2U5OWM2NWU3NzQyMzI5NDMwYyJ9"
  54. }
  55. ]
  56. },
  57. {
  58. "id": "claim_4d8d74d736ed4ca19a1d0de711c9f12f",
  59. "statement": "should_schedule requires no reply already pending for the chat, the chat enabled, an allowed sender, a private or group chat, a timestamp not before process start and non-blank, non-placeholder text.",
  60. "evidence": [
  61. {
  62. "resource": "repo://src/autoreply.rs#L182-L191",
  63. "version": "repo-lines-v1:sha256:1b2ab043319224b4a08306fe10e69a7a41bd99836ab89ee9cbb0c1a1f49fbf28:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRhNjA3MDVjZGJlZjdmYjI4MGZmYjZkOTRhM2YyNTBhOGRmNTAzZGVhNTgxZGZhMzU0NTM4NTM4ODJhYjc3NTEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjU0ZWYyYjYzZjg4Njk1ZTc2OTIzMjVmMjE3Mzk4NzJjMDhiNTgxNjdjY2YyZWM2NTY2MGYzMDJkOTMyYTEyY2EiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjhkOWU4ZmE2ZTkzOTA1ZTQwYzdmNmM4YWM2NWRkNTQ4MzQyNDQ3M2I1MmMxYWUxMDE5MGIwNGNmNzI4ZTZiNWEifQ"
  64. },
  65. {
  66. "resource": "repo://src/autoreply.rs#L241-L265",
  67. "version": "repo-lines-v1:sha256:bbcff26d49ec29313b51b2a51c2d5df2f8c9ed3f715d9fc6b4af559d93b7a68d:eyJzZWxlY3RlZExpbmVDb3VudCI6MjUsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6Ijc3OWM1NTkxNmMzNjZmZDdhNmU2ZTYwZmE4MDVjOTYxZGExYjVhNDFhNGJkMDk0MDkwZjZkM2YxODc5NTJkMTIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijc3MDE1ZTdkMThiMDkxMTVlZjkyMzU2NGJlMDQ3N2IxODllZTViYWI2ZjdkYmI4ZDg5NTZkMjQ0M2YwMjFmOWIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjJmYmE5MjI2NzJlMWM1MjY1NTMwZjBkYTNlN2RlZDBmOWQxZjUxNjY4YjJlMWMyZWI2MThlYWEzM2VlZmZkMDMifQ"
  68. }
  69. ]
  70. },
  71. {
  72. "id": "claim_79a2ab515a274bab8fd3dd9736315e51",
  73. "statement": "Own messages trigger only when human-written in the self-chat, detected by comparing with own JIDs without device suffix.",
  74. "evidence": [
  75. {
  76. "resource": "repo://src/autoreply.rs#L148-L180",
  77. "version": "repo-lines-v1:sha256:32e4689dd25915397864463e71677879f2543d73b615303632cb241a548e433b:eyJzZWxlY3RlZExpbmVDb3VudCI6MzMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjBjMzM4MTNhM2RiZmNlNjRmYzY2MTk0YmVlY2NlNDQxMjgxZjBiMTBkYjkyMzJjMmNmMzQ4N2NiMmExOGExZDgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImQ3YTcwYTRiOGY2ODNiMmVhZGFlYzIyYWRkYzU4NzY3ZDUwZDAwZDlmYTQ0OTU0YjQzOTY1NTdmZDMwZWU3M2UiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI0ZTI0ODc3YWIzZWIyYTI0NWE4ZWQxOTJiMDIxNjI5MjE2N2RhN2ViMDRlM2Y1Y2MxYjQ5Yzc1MjEzMzUyYjQifQ"
  78. },
  79. {
  80. "resource": "repo://src/autoreply.rs#L293-L309",
  81. "version": "repo-lines-v1:sha256:daeb52efe3c35b1565aea1badb2260d9cfb4caef892ee11755af3f03d40c0788:eyJzZWxlY3RlZExpbmVDb3VudCI6MTcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRhNTE4MDYxM2Q4NjEwNGE4Zjk1N2FhYTI2ODI4YjBmMjQ2NTk3ZTg4M2UyMzk3YTc3NDEyMzVkNjNhMTkzZmMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjE5ZTc2MzU1Y2YxMTk5NDgwYzNmOTk4MzZiMTQ4NmM4NDFkODkxZmFhZDkwNGM2MDhlMDkzMDIyZDM3NTdhZWUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjBjNGVkNWUzYjNkYWRhZTk2YzQyZDg5ZDk2MTBkNTYyMmY5ZTkxOGI2ZTU5ZTQ2ZDMzNzUzMjNiNTNmNGJmMWUifQ"
  82. }
  83. ]
  84. },
  85. {
  86. "id": "claim_aabba3ec6866414a832790bbba7669db",
  87. "statement": "A scheduled chat stays pending from schedule_reply until finish_reply, which runs after every AI outcome, so messages arriving during the wait or the generation schedule no additional reply.",
  88. "evidence": [
  89. {
  90. "resource": "repo://src/app.rs#L324-L332",
  91. "version": "repo-lines-v1:sha256:00767085b96f8924c277929b72de9745e84060a578a404e5382f4fe6e07a3b7b:eyJzZWxlY3RlZExpbmVDb3VudCI6OSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiNWQ4YjIxOTEzNzM3OTM3Zjk1YTUzZjNjODY4MzdjYmFmZjcxZWZkMzQyOGUwMzc0ZWQ0ZTFkZTM4ODczODVjOCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNTUyMmM0MmNkMTljNmQwM2Q4MDhjNDUyNzIwNTUyODI1YjdlYTFjNWI0OTFiMjE4NTExY2FjNzQxNWNmOWQ5YiIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiYTA5MzYwMDY0NjVjYWQ2YzlkM2JmMGViMWQ1ZTFkNTNhMTIwN2FiN2JlMGEyZTRiMDc0OGNmMmE0ZGI1MTExMiIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiZmY3ZThiZWFmYzVhNjZlNTc3ZDk0MmMyNWZiNWYzOWE0ZTRjZGRlMTJkODg3NjBlZmM4ZTE1Y2U4OTEyOWEwNiJ9"
  92. },
  93. {
  94. "resource": "repo://src/app.rs#L539-L542",
  95. "version": "repo-lines-v1:sha256:dd72c631d7b9707b384154ff042bea6cc03745c04b4c6aa82dd6b8d77676a250:eyJzZWxlY3RlZExpbmVDb3VudCI6NCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiODgxNjNhYjZmYzg4NDRiMTBjZWNhZTQ3YjVlYWY5YmYzNjg5NGRjMDk0N2IzYjAxNmRkYmRlODI5MTc2YjNiOSIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiM2ZiYTBkNGUwM2NhZGQzMTgwZmNhZDlhYzRiZmZlZGNhOTU5ZTY1MDUwYjI3YWFmYzA1Mjc2MjUxMDE4MzI4NCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiMGZkOTUxZjMzMzEyYjBkYjE5OTA3M2NkMjM0MDgxYzczMzI0MjFmNjBmNGM2ZDgwMDdiZTZiMzVjMzA4NjE0ZSJ9"
  96. },
  97. {
  98. "resource": "repo://src/app.rs#L837-L852",
  99. "version": "repo-lines-v1:sha256:ca8594a3de60f6943b74187223fab353c0af7a724cf3ef68f1d2f06141510c59:eyJzZWxlY3RlZExpbmVDb3VudCI6MTYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjNmN2EzMzI2Mzk4MGZiOTQ4OGI5NDcyZTI4ZGU0NjE4ZWVjMzc3MTE2ZmFmZDViODZlNmUzYTZhZGVjYjM2YTEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRjZTljYzQ1ZjFjOTkzN2IyMGMyZmJjOTM3YmUxN2QxYzhhMmU0MTdlMjUwMDI2ZjM4MzU3N2MyY2ViNGRkN2UiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImNmMGY4ZWU3NGMyYmNhMjZlNTlmY2NmYjUzZmQyYWI2OGJjNzIwZTY2MGZiZjM3M2IwZjFhNTY4ZmIyNjBjOTUifQ"
  100. }
  101. ]
  102. },
  103. {
  104. "id": "claim_e5cd4fb182a34e47aec8344c6682627c",
  105. "statement": "build_turns starts with the system prompt plus the chat line and role note (only the self-chat note in the self-chat), keeps the last 200 non-blank messages, maps roles depending on self-chat, prefixes group user turns with the sender label and rewrites only user turns for voice notes and images.",
  106. "evidence": [
  107. {
  108. "resource": "repo://src/autoreply.rs#L13-L27",
  109. "version": "repo-lines-v1:sha256:a71b2b1ae4d31324f82e6858e3af144db8883e18a974555890172b34e25e4971:eyJzZWxlY3RlZExpbmVDb3VudCI6MTUsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImJkYTIxOWRlYzM3NjlkNDZkZjMxMmE5MzYzZGFhZmI5N2IzMGQxMTRkNWE0NGY4MmY4ZmNhZjJmNTJlNWY1NzkiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjdjY2U3ZjMxMmFjMmQ5ZmMzNGFlOGJjZDJhM2RkZmNiNGVjNjEyNDM0OTBjNTYwMDVhZmJmZmE4ZGM5ZjFiMTgiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImZkMGM2MzgyNzI5ZDA4ZTE0NGQ1NmJiNWJlNzAwYjMzMjEzMTMyMjAwNzQ3ZWI3M2JlYjc0NTAwOTlhYjg2Y2UiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjM1N2I1ZjVkNWU3MTlhMDlmOTM2OGE5OWI5MzEwZTU2YjM1YTI1NDNjYjE2MGE2NmJiYzIyNjgyOTM3Nzk5ZWEifQ"
  110. },
  111. {
  112. "resource": "repo://src/autoreply.rs#L311-L436",
  113. "version": "repo-lines-v1:sha256:5a954d83ee76e833ed24d427d0e8e36e66ff9c8a1ac999e67ad6a3124d5df508:eyJzZWxlY3RlZExpbmVDb3VudCI6MTI2LCJmaXJzdFNlbGVjdGVkTGluZUhhc2giOiIzZTBiMjBmNDZiMWYzNDE5OGQ3NGE0N2I3ZGNiZDUxZjI5NzhmYjNhM2YyNWE2OGQ0YzE1NzA3YTUwNTI0NjVlIiwibGFzdFNlbGVjdGVkTGluZUhhc2giOiI0MTJjYTM0NWNjZjc1YmY5YzA4MDZiY2U2OTViZThkZTgwOGI3OTk4NDI1MWE3YTU0ZDIwMmNmNjEwMWRkNDUxIiwicHJlY2VkaW5nQ29udGV4dExpbmVDb3VudCI6MywicHJlY2VkaW5nQ29udGV4dEhhc2giOiIxOWU3NjM1NWNmMTE5OTQ4MGMzZjk5ODM2YjE0ODZjODQxZDg5MWZhYWQ5MDRjNjA4ZTA5MzAyMmQzNzU3YWVlIiwiZm9sbG93aW5nQ29udGV4dExpbmVDb3VudCI6MywiZm9sbG93aW5nQ29udGV4dEhhc2giOiI1NGJhMWQ4NGE2YjE3M2RlOGMwZjhlNjNlZTgzNTFhOTE2ZGUyYTNlYWViZjFhZDBjZjA1YmExN2JiYzY1YjdjIn0"
  114. },
  115. {
  116. "resource": "repo://src/autoreply.rs#L482-L503",
  117. "version": "repo-lines-v1:sha256:9f1d57d8cf162701d624737e5d0477297db574585ccc1e38af3f9cd95ce227a1:eyJzZWxlY3RlZExpbmVDb3VudCI6MjIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImFmMDViNzI5MDFlOTRmOTRjNzZmMmI3YjY0YjU5YjlmMDg3M2JlNWFiY2ZhYTBlY2ZhMWU0NTk3ZDE4MDJhZWMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjY3NDJmNGI4NTg1Y2M2ZDZjMmFiNzdiYTVmNGVhMmY0OWQxNzFiMzRmNWExMjdlYmM4NzU2ZWUzOWQ2OTI4ZGQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjdiYzk4ZDZiMGRjNDkyYzUwMTZkZjEwODA1YTNhNTRlYjljMTg0YTVhNjEzN2U3ZjRiZWNmYTBjMjIwNTUwZDAifQ"
  118. }
  119. ]
  120. },
  121. {
  122. "id": "claim_3e40d76522d14d6a8010a842c8b4d312",
  123. "statement": "Before a reply, audios in the context without a transcription, at most the 3 most recent, are transcribed first (the reply follows AudiosTranscribed, which then describes the postponed images), and images in the context without a stored or in-progress description, at most the 5 most recent, are described (the reply follows ImagesDescribed).",
  124. "evidence": [
  125. {
  126. "resource": "repo://src/app.rs#L656-L679",
  127. "version": "repo-lines-v1:sha256:a257dd09ef5fad9478ec541c5e5e2b908a11cdc448654986a2150099337f2e63:eyJzZWxlY3RlZExpbmVDb3VudCI6MjQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjE2N2NhYmY5MDc5Njk4OWRkMTE4ZmVmZjZmYjJhNzI0ZjE5OTAxMjJhOGYzNmQxNmEyM2E5MDU5ZjdiNzEzM2EiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjQxZjkzM2MwZjY2NWU1OWJiMWU0ZTk5NjBmNjA2ZGVjMjM1YjBiYzA2ZGM0ZTUwYmYwZGUzNTI5M2E2Nzg0NmEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjM5YzEwY2I0YTNhZmI3NWE4N2VmNmE4MmZmYzVhMjBiZDZiN2U0ZmQ0NDRhMmNjMWRlMGZmZDg3MjljODQzZGUifQ"
  128. },
  129. {
  130. "resource": "repo://src/app.rs#L784-L829",
  131. "version": "repo-lines-v1:sha256:2da3a90f0f2862e08e4c2b56a2b26f8f018449d7b0112fc46e11f214fbeca676:eyJzZWxlY3RlZExpbmVDb3VudCI6NDYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImJkYmFiZjFkNjI2OTdjZWE2NTk5ZWQyNjg5MDQzY2RhYzAyOWUxMWQ3NWIwY2U4MTRlYWVkNzhjZTk2Zjg5ZGMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjNiOWQxNjk5ZDM4YTRkZDQ3ZjgxMGFmMDViYTIzZTM2N2NiNTE5NzljODAxM2Q3YTZmYWQyYjAzY2Q0MzA0MTEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjBhN2YyNDA4YTExOTJiY2VmZTI0ODJhNTg2MGM1MTVhMmQ4NGIxMzQzZTE1ZDdmMGVmNGRhMTA0YzY1ZTJiM2EifQ"
  132. },
  133. {
  134. "resource": "repo://src/app.rs#L888-L918",
  135. "version": "repo-lines-v1:sha256:a6beeca1efcc61a62e317b875ec0455fe4adfd64a193fd9393c5b484952ab986:eyJzZWxlY3RlZExpbmVDb3VudCI6MzEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImNlNGZiYTJmZGY0ZTk4MmNjZmE1ZThkYzBmOTA1ZWQ2NjVhY2E1YzgxZWZiZjRjNDNlMjAwMGQ5YjBlYTBhN2QiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImI2MmYxYzgxNDE1YjNjNTQ5ZmRlNjE3MThkZDRiOGQ0Nzg2MzU5MjEyNWI1NzEwMDZkODhmODkyYzc3NDgxNjUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjIyMGUyNjkzMzFhZTU2NTJiYTMxNWViYTdmYzRlNWMxNWFhNDlhMzdiMjE2NGY3NjRlYmNiYTA1ODE5ZGMyNDAifQ"
  136. }
  137. ]
  138. },
  139. {
  140. "id": "claim_045b183e6c6b444c84449e47227a98cb",
  141. "statement": "AI text replies are discarded if both the global and per-chat autoreply were disabled meanwhile or the owner wrote by hand after the answered context, otherwise sent and stored with is_ai true.",
  142. "evidence": [
  143. {
  144. "resource": "repo://src/app.rs#L1058-L1120",
  145. "version": "repo-lines-v1:sha256:dc263d71dc225c968c33c780874494b82440bfd214546483d0aef9fd6a02bf46:eyJzZWxlY3RlZExpbmVDb3VudCI6NjMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjBkNzQ1Mzc3ODY0MzI0MmZhZDE3MGZhNjcxNTUxYTJiYjI4ODM4Y2M2NmQ5ZjMwZWNkODhjZTNmNjFhYjRlMGEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijk5OWJkZWZlZWFjYTYzNDBlMDI5MGRjODZlODg5Yzg5ZDVlMTg5YWE1YmE0NGI1ODViM2I3MDczNGY0YTYyZDgiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjYzYjQ0YTU2ODZkYjM0MjNlMDVmOGMxOWMwYmMyNzlmMDA1NTE4NDJmMzgwZjIxMTM1ZTkzMTZhY2IwNmQ5ODEifQ"
  146. }
  147. ]
  148. },
  149. {
  150. "id": "claim_66877f18a3ca434fa2dc9b5857ba48b9",
  151. "statement": "The reply is sent reply_delay_seconds after the first unanswered message of a chat: a timer task emits ReplyDue after that delay.",
  152. "evidence": [
  153. {
  154. "resource": "repo://src/app.rs#L1581-L1591",
  155. "version": "repo-lines-v1:sha256:be3fc24d7db22727c3dddd8c5116b8fd64a13c8a473f99818b61f3bb6ac76204:eyJzZWxlY3RlZExpbmVDb3VudCI6MTEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImMxMmIwOGNlNWY0N2RmY2RjMTQ1MTA4ZDFkNmQ2NzhiYTllNDhjZjBmMGY5YzdiYTBhNzMxYTkzMzFjYjc2ZDMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRjNjg0ZTk4OWVmNzk4ODJiNmIyOTMwNDdiMTJiNDg4YjkwNjlhYmUzMzc2ZTVhNTNhOGEyZTI5YjY4ODcyMTAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjA1ZDJlYmFjZThlMTE0NjAzZTYyZDc1YjVmNmRjODFjMzJiMzgzMmI4YjBiMGUzZDVhZDY0OTMyMDQ4YTZkMzgifQ"
  156. },
  157. {
  158. "resource": "repo://src/app.rs#L534-L542",
  159. "version": "repo-lines-v1:sha256:df493befb56dd10251865172577fc5c0bae10fe73f070b409398d5734657fd5f:eyJzZWxlY3RlZExpbmVDb3VudCI6OSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMjVhYmM1NWJiNzAyNjM3YTU5MGU3ZjU3ZjVlNGQ1ZDI3MTc5NmYzNmY4YWQxNzM5ODI3NWZlZThlOWY3ODM4NCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiOTk5YmRlZmVlYWNhNjM0MGUwMjkwZGM4NmU4ODljODlkNWUxODlhYTViYTQ0YjU4NWIzYjcwNzM0ZjRhNjJkOCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiMGZkOTUxZjMzMzEyYjBkYjE5OTA3M2NkMjM0MDgxYzczMzI0MjFmNjBmNGM2ZDgwMDdiZTZiMzVjMzA4NjE0ZSJ9"
  160. },
  161. {
  162. "resource": "repo://src/config.rs#L42-L43",
  163. "version": "repo-lines-v1:sha256:3841a56ef56846ac61df41e175eaa085bd0d61eea8f2b034ebc6e5737f160c6e:eyJzZWxlY3RlZExpbmVDb3VudCI6MiwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMDZiYjVjMWVhMTg4OTM2NGMyMzE4M2JjYmU1ZDY2YjhmNmMxNTVlMjgxMGRmY2JkZTc4NjY5ZTBkZjhkN2YzYSIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiZDcxNDZlZjZhMzU1NWEzNTk2Y2EyNzZlMDU0MmExN2Y4ZGNmOGMxNDY5MjNlZmZiNGNkOTBlOTZmM2Y1YjRjZiIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiYWNlODhhMjI1Nzc5MzI5MWRhYzNiM2E5YmUxMTVjODQ2MDM2NmU3ZGNlODM5NTNiYzZkNTI5NzdlMDc3NjNhNCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiZmZlNWFjNDU3ZTA5MTNkNmMzN2UzMDkxZGE4MWNiYzg4MzU0NDRlODk0MjA1Njk1ODQ0NGM4MzkxNWE1M2YxYiJ9"
  164. }
  165. ]
  166. },
  167. {
  168. "id": "claim_aa50de18f27a4f1ba952016d6c32b9f0",
  169. "statement": "When the reply is due it is dropped if the autoreply was disabled, the AI is missing, the chat is empty or the latest message was written by hand by the owner outside the self-chat.",
  170. "evidence": [
  171. {
  172. "resource": "repo://src/app.rs#L634-L679",
  173. "version": "repo-lines-v1:sha256:15f93324b5c3304cece9ae39892bf0620866af782fe276ac9cb827e11f6c89cb:eyJzZWxlY3RlZExpbmVDb3VudCI6NDYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjIxMGU4Y2Q4NGRkNGVlMzUzOTU2ODAxODRjZTNlYTEwZDlhMTI3Mjg1Yzk2MDVkY2RmNDJiZjkwOWJkMDZlNjYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjZjMThiNWFhYjhlMGE5MGZhY2E2ZTI5ZmMwYjdmN2NiZDQ0NWFhN2MxZmQyNzA2YjQ4M2ViMDU0ZjJkNjU1ZTkiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjM5YzEwY2I0YTNhZmI3NWE4N2VmNmE4MmZmYzVhMjBiZDZiN2U0ZmQ0NDRhMmNjMWRlMGZmZDg3MjljODQzZGUifQ"
  174. },
  175. {
  176. "resource": "repo://src/app.rs#L868-L880",
  177. "version": "repo-lines-v1:sha256:7ecf503d147e02720d6b1181aff0c941477154a712db724f4f85db692d7aadbd:eyJzZWxlY3RlZExpbmVDb3VudCI6MTMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImIxNjE1NThmYWRiMWZlYjc4NjlhNTk4NzEzNzMxNTk4YTMyM2Y1NWZiNTFhOGY0NTA3OTAyOTlmZWE5ODljM2UiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjI0M2Y0MzIxMzM1MDhkOTFhODZlMWI0Mjc2Y2YyMjgwN2MyMzhlMDIxZDk3ZTJiNDFmY2U0NDU2YTIzMzZiMzQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjNhMzhmYjI3YWI5N2YyMTc1ZGQ0MDc1NDhmMTcyMGUxNzMwYzY4YjA5ZGI1M2MzZTZiZTQ4OGQyYjMzMzMxZmYifQ"
  178. },
  179. {
  180. "resource": "repo://src/autoreply.rs#L231-L239",
  181. "version": "repo-lines-v1:sha256:e449aa643a18bfc13c65470f8160c3d49e5fc14fad1a09a5a427b0337ee2c354:eyJzZWxlY3RlZExpbmVDb3VudCI6OSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiNDc3NWNlNjg3YjU5YjZlZTJkYjRhOThlZTgwOGIzNDEwNThmOWRjNTY4NDMxYjg2NDA2Y2NhMjVkMzdkNGM2MiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiMzZjYmYyODkwNTIyYmM3ZmQ4YzgyM2M4NjczYThjZDcyMDFjNWE4NDI4Nzg0ODRjNjI2NjljMWNlYmNhNWRkYiIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiZjZhMWQ3MTgwMWZlMmYwNzkwNjkwZDA3NjczMjAxODY5MDRhODZhYmQzNGNhMTk1ZmMwZjhkYzJkYjlhMzc0OCJ9"
  182. }
  183. ]
  184. },
  185. {
  186. "id": "claim_d8b08d3eeb4d432f82bfd00abc49cbd2",
  187. "statement": "On the first OfflineSyncCompleted per process, catch_up prepares one reply without delay for each enabled non-group chat (all chats when the global autoreply is on) whose last message is from the contact, older than app start and within catch_up_seconds, including its offline images and audios, and reports the count in the status.",
  188. "evidence": [
  189. {
  190. "resource": "repo://src/app.rs#L924-L981",
  191. "version": "repo-lines-v1:sha256:c43af5df86c402afe0390574efa8d5408228a57e12985a9f712e1691b2f8c63b:eyJzZWxlY3RlZExpbmVDb3VudCI6NTgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjJiYWY4NjRiNzJmMjM1YjJhNzAxNzllOWRiZTlkYTg1ZmY0NWM1OTg4YjY1MTUzNmQyYjNmMDM0MzRkMTA3YjgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjJkOWY0YzAxNDlmZTYwZWNjMDY0NDU2Y2VhNTgwNWIyMmI4YjgzZTljYzY0YzVmZTc3YzhjZDNjMzQ5ODg1OWMiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijc4OTU5NGE5NzIzN2Y2NjVkMmU0Y2RhMTIyZmY1NTIyNzJjMjVmZTFhMTI0NmZjMGNkNjllMDQ4MjE2ZTNlYWMifQ"
  192. },
  193. {
  194. "resource": "repo://src/autoreply.rs#L278-L290",
  195. "version": "repo-lines-v1:sha256:978337272e69a0817dc2c97ec4cf141555c1153662f4d02558b1f314701d2555:eyJzZWxlY3RlZExpbmVDb3VudCI6MTMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjMwOTdhNjIzNjEzOTc1ZTZhZGVhNzc4Y2ZiZjAyY2RhY2ZmMjIxMzBlZWNlMTA1NGY5MTZiMjY4MmE4MjYyYWMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjlmOWZkZjU2MjAyM2ZlMGUwZTk0ZDE3YmZiNjg5NzA1YzM4ZGU5YTcyOTE2ZDMzNzhjNzAzNTAwYTFmY2E2MjAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjhjYTUwMTNjY2ZiYWFhNGY4YTdiMmRlYTU1MDU2NTRhN2VmN2ExNGVmNTZhZGI3NzEyNGM2Y2NkMWVhMWNjN2UifQ"
  196. }
  197. ]
  198. },
  199. {
  200. "id": "claim_bd2df469e93d46108b7885dedb6da25b",
  201. "statement": "The AI context is loaded with messages_since from local midnight of yesterday, capped at CONTEXT_MESSAGES.",
  202. "evidence": [
  203. {
  204. "resource": "repo://src/app.rs#L991-L998",
  205. "version": "repo-lines-v1:sha256:7c77ded5ac6d33c39416f329b08cebb428d4745fd351bf74af8942d0b7a7ca02:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiNTUxNGM3ODU1Zjc2MTlkMWNmNzRmYjkxNzViOTNiMDc1ZTAwMGFjNTA0MjFlMWRmMWQ0Nzc4NWQ3NDkxYTdmOSIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiMWJhZTkzZGRjNWYwMDFlOWRhMTI5YmY0ODA5MzQ3MGI1ZWQ4ZjNjNzdjYzA2MjQ2YjJjZTkxODdmMTIzNGI0ZCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiNmZlMTlkZGI5ZjIxNTk1NWQzNzM5NjBlODk1MTI1ZGE0ZmYwYTYwNTAxMGY1ZmVmYWExYTI2ZDE0NWQ4NmNkMiJ9"
  206. },
  207. {
  208. "resource": "repo://src/autoreply.rs#L459-L480",
  209. "version": "repo-lines-v1:sha256:50ee4ad69b117378616ca21b79b698134c88777e95ce91db1351b2411baa697f:eyJzZWxlY3RlZExpbmVDb3VudCI6MjIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImZkNDcwYzIwOWRjNTFhNjVkMGE4MzYzYjE3ZmI5NGI2MTZiOTMwNjU4MTIxZTc3ZjFmMTcwZGU2OWEzMGZiYzEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjAzYTEwMzdmMDcxOTYxZmIzYjEzYTdkYWZmNjlhY2MyYmFiODEwZmU4YmRhMTZhMmIyMjcxNTU0MzcxNGNjNzUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjIwYzRkZTBiYjA5ZGM2YTUzMmVjOGUxOGQ0ODFjMGQyZWJjMDA3ODNlMzhiODk4MDMyNzJiMmY4ZTMwOTJhMzIifQ"
  210. }
  211. ]
  212. },
  213. {
  214. "id": "claim_bfe577e08f7e4f61bae3ac4b2b733930",
  215. "statement": "The global autoreply does not bypass the chat-type rule: meets_content_rules still requires a private chat or group, so broadcasts, status and newsletters are never answered.",
  216. "evidence": [
  217. {
  218. "resource": "repo://src/autoreply.rs#L251-L265",
  219. "version": "repo-lines-v1:sha256:3500de003e15b84a4a4ea0d82efa712d262694653367bfa7e0ba301b46eb3133:eyJzZWxlY3RlZExpbmVDb3VudCI6MTUsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImVhYjdlMDgxZWM2YWFmNTMwMmViYzE1MWJiYTc0NGYxZTI5MGU5NzllNGQxN2Y4YjQ3NjMzNmZhNjk2NzQyNGUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjY0ZDMxNTc4NWMxODA1YWU3YzEzYzUwZWEyZjhhN2E2ZTcyYjNiMWVhOGQxNjgxNDIyMzYxYWZlNGRjNDIwMzEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjJmYmE5MjI2NzJlMWM1MjY1NTMwZjBkYTNlN2RlZDBmOWQxZjUxNjY4YjJlMWMyZWI2MThlYWEzM2VlZmZkMDMifQ"
  220. }
  221. ]
  222. },
  223. {
  224. "id": "claim_f9d4f2290de14443a15f57c2419e65b7",
  225. "statement": "The global autoreply is persisted separately from the per-chat flags and toggling it does not change any per-chat flag.",
  226. "evidence": [
  227. {
  228. "resource": "repo://src/app.rs#L1427-L1444",
  229. "version": "repo-lines-v1:sha256:05cde78eab7927a8b5c33ce971f85c0e210ce60936eada88f8c9481585c1519e:eyJzZWxlY3RlZExpbmVDb3VudCI6MTgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjlhMjY2MjVlMDNiMmE0MDg1NDg0YjQ2NjUzOTllOWRmOWFhZDQzYmVkNGQxNWFkODEwODMzMGIyMDhjNmM5ZTYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijk5OWJkZWZlZWFjYTYzNDBlMDI5MGRjODZlODg5Yzg5ZDVlMTg5YWE1YmE0NGI1ODViM2I3MDczNGY0YTYyZDgiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImU2ZWQ1MmZlYjhjZTliMjNiYmNiYTkwMGFkYjk0MzE3MjA4ODNhZTk0ODY4NmQyNjhlNmRkMjFlNjljYTU3YjkifQ"
  230. },
  231. {
  232. "resource": "repo://src/history.rs#L287-L317",
  233. "version": "repo-lines-v1:sha256:7446cd3d43ecedda818c27075602eb8b9f1b3ef669ea39edf3a6c5520cc4bec3:eyJzZWxlY3RlZExpbmVDb3VudCI6MzEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImE2OTlhMTQ5OTg2YzgxZjQ4OGYwMjQxMmU4Zjk0YjE1NjdhNWQ2OTEzZTNiYTg0NjJlMmFmYzY5NDJkYWYxMTMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRjZTNjZDVlMGE4OTI3NjIwMWQ2ZWU2OWE2ZGM4ZTEyMzgxNDVmMzEyYmE2ODQxZjUzMGYzNDQ0MmU0Njc2NjIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQ5YzdmYzM1ZDBjZDRiYzE1MWI4N2I1Y2IyMDhiZjEwYjM5NjA5MmY4YzMzMmJmZjNmN2ZiNWUwOWNhZWRjMmUifQ"
  234. }
  235. ]
  236. },
  237. {
  238. "id": "claim_fd5c7a184d1e434a85a1c63419bbadce",
  239. "statement": "After a reply, if a newer message that passes should_schedule arrived after the answered context, finish_reply schedules one new reply keeping the media received meanwhile.",
  240. "evidence": [
  241. {
  242. "resource": "repo://src/app.rs#L1696-L1698",
  243. "version": "repo-lines-v1:sha256:f837e4630ef0ee6fe89e07bf810f5851838ae48e227e0659b648d4ea480392fa:eyJzZWxlY3RlZExpbmVDb3VudCI6MywiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiNTk5ZjgxMThmMmE5ODIzYzNmZDQwNDcyYjlhMmUwNDE1ZTRhZGQzMWQ5NTkwNjE0NzY3MzlhYjk4YWIyNTUxMCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDEyY2EzNDVjY2Y3NWJmOWMwODA2YmNlNjk1YmU4ZGU4MDhiNzk5ODQyNTFhN2E1NGQyMDJjZjYxMDFkZDQ1MSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiNGQ4NDkzOWY4ODU5NjI0YmY1NGNiOTdjYWJjMDE2ZjRhYmY3OTU0YWUwNGU0MTVmODUzMjQ3ZTRmYWY2Zjc3ZCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiNDlhNTk5ZGY5ZDUwOWVhMzBiNDMzZjkzYjY4ZjE4ZGQ1ODY2ZDVmMGJjMGMzMGEyMTU1OWFkN2U4MWM1ZmMwMCJ9"
  244. },
  245. {
  246. "resource": "repo://src/app.rs#L837-L852",
  247. "version": "repo-lines-v1:sha256:ca8594a3de60f6943b74187223fab353c0af7a724cf3ef68f1d2f06141510c59:eyJzZWxlY3RlZExpbmVDb3VudCI6MTYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjNmN2EzMzI2Mzk4MGZiOTQ4OGI5NDcyZTI4ZGU0NjE4ZWVjMzc3MTE2ZmFmZDViODZlNmUzYTZhZGVjYjM2YTEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRjZTljYzQ1ZjFjOTkzN2IyMGMyZmJjOTM3YmUxN2QxYzhhMmU0MTdlMjUwMDI2ZjM4MzU3N2MyY2ViNGRkN2UiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImNmMGY4ZWU3NGMyYmNhMjZlNTlmY2NmYjUzZmQyYWI2OGJjNzIwZTY2MGZiZjM3M2IwZjFhNTY4ZmIyNjBjOTUifQ"
  248. }
  249. ]
  250. },
  251. {
  252. "id": "claim_4cb6835327794c709466ce1c02eda889",
  253. "statement": "Voice notes and images become factual texts in user turns: images use their stored description when available, otherwise an 'image you cannot see' note, followed by the caption.",
  254. "evidence": [
  255. {
  256. "resource": "repo://src/autoreply.rs#L29-L56",
  257. "version": "repo-lines-v1:sha256:d65df4f7d8a51106465aa35579f8737ba749b01ce8e5a297b156f48b73cde070:eyJzZWxlY3RlZExpbmVDb3VudCI6MjgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQyMDQ3NjYzODdjNzE0ODkzYjdiZTA0YTBjMzdiM2RiYmMyM2MyMGU3YjJmMzgzZWFiNjc3M2RlMzQyMDMxNmIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ1ZjQ5ZWI0NjVhZjcyYTdjYTQyNTU3NTE5MGQ2ZGUwZTEwZTllNWY3YTJjMzc1ZGRmYjQ5NmFiY2JhOTAxMGYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImY1NDhiZWY1MzdjMDk5NjEzNDNhYzg0YTM5MTI2Nzk5NDhhMDQ4M2UxZWNiYmNmNzBiNTc5ZGZjNDljNjYzOTIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjI0YjAwMzU1NGEzZTBhYjRhOWM2MGM5ODRhMWQ1ZGU5NTRkMGEyNWQ2NGJlOGQ4NWE4MmQ5YmNmNTMyNTdlODkifQ"
  258. },
  259. {
  260. "resource": "repo://src/autoreply.rs#L336-L379",
  261. "version": "repo-lines-v1:sha256:d5ff8e0615e8b48256c14bd7751292dd94626fd4c21d40b36d73c5e2f3cb8740:eyJzZWxlY3RlZExpbmVDb3VudCI6NDQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjZjNDVmNTRiYjMyMGQzN2U2ZjZmZGJjYTUzMjBlMmYyNjI1ODJmODkwNzlhYmY1ODJjNjI4MjgzOTM5Zjg2ZjciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImY5YWU5MTBkNzg0M2M3YWNhZWUxMGFhMDhhMGE2ZGRhYzFhZjhjMWExMjc5ZDQ2MTRhOGNhODViOTgxMmIwODkiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjQwNWQ4YWU3NjdiNjQ4YzZmM2Y4ODE1ZDZjODQ1MjFiOTQ5MWVmZTEyNmRiYTVmZjU0MWIyMmJjNWY3YjllNWQifQ"
  262. }
  263. ]
  264. },
  265. {
  266. "id": "claim_37fd6eca27b74d1eb20276bf635feac0",
  267. "statement": "Mentions of the account owner's number or LID in message texts are replaced with @[te] before the turns are built, without matching longer numbers.",
  268. "evidence": [
  269. {
  270. "resource": "repo://src/app.rs#L1009-L1028",
  271. "version": "repo-lines-v1:sha256:0a937f62450210fb1b4a45c2eb392c8533cab8fc5e7f2ca88caec3ba64669dbb:eyJzZWxlY3RlZExpbmVDb3VudCI6MjAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImZkMjA2ZWQ4NGMzNGNhMWE0ZmNmZmQ1NmFlOTBiNDgyZDIyNGM2OWQ0ZmRlMDY4MmI2MTllODNlMDRlNWJhYjYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjEyZTA5MzVlNDEzNWQ5MWEyZGFlMDUxOGE3ZTY5NjQ0MmIxYmM5ZGYxOThiNDA1ZmVmMGQzMjUwY2VmOWU1ZWQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQwMjI2ZGQ4YmZkY2JkMDhlNjUxMjUzOGY4MmU5YWNiOTEyNzg2NTgwNDEwMmQ2YjRlMzQ4NmRmMjU4YjMxNmYifQ"
  272. },
  273. {
  274. "resource": "repo://src/autoreply.rs#L159-L170",
  275. "version": "repo-lines-v1:sha256:50d1a6dfe10b9769d40a33924bcb0bf9d4aa264c3e7775b149a95cc7fa629e6e:eyJzZWxlY3RlZExpbmVDb3VudCI6MTIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM4NmEyNGE3ZTg2NTVkY2M2ODIzMDg0NGM1ZGNjZTA5ODgzNDU1MzFjOTZlNjdjZTIxOTZkMjU1Mjg3NGM2MTMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRiZjcwNGZiMzY2MTg3NDdmNjJlYTQ1M2MxMDg3ZGNiMWVjNDZlYmYxNmJjNjFmMDg5MWZjMjhkZGNiMDgzYTIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImY4OGMyOWJiOTczMDg1Yzk0N2E2NWRmM2MxMjU0NTI3ZTA0MGFiZWFlMmM2MzM3Mzc3ODA2NjA4NDYwNjVhMmIifQ"
  276. },
  277. {
  278. "resource": "repo://src/autoreply.rs#L438-L457",
  279. "version": "repo-lines-v1:sha256:9a7559f07b9cf4dc7eb7bab1c174e1b73cd3a491c63f7dcb65449c9d15f42438:eyJzZWxlY3RlZExpbmVDb3VudCI6MjAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjFlNmM4N2FkOGEyMmJiNTMzZmQ5ZjQxZDk2ZTkyNTFkNGUxNTZlY2Q2YjIwNjcxYzVhZmYxZDM2ZTk3YTVjOWIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImU5NmY4Y2IwODNmYTgwMGE0ZGNkMjk2OTcyMmQ3YjkyNjg2YWRkOWViZTM2NTU0OTJmYTY3MmIxYTdjZWQyNDIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjZhZjExM2E5ZmE3NTZlZTI4ODYzNGUyZTYzOWM5M2Q0OTJkOTRlMGMyZjRmZWE0ZTJiYjFlZjA3Y2EwOGFmOGUifQ"
  280. }
  281. ]
  282. },
  283. {
  284. "id": "claim_aa274cb1145a4194b4f510ea3fb7f9c3",
  285. "statement": "Image descriptions are stored only when their message still exists; failed descriptions leave those images undescribed and set a status with the failure count and first error.",
  286. "evidence": [
  287. {
  288. "resource": "repo://src/app.rs#L1700-L1708",
  289. "version": "repo-lines-v1:sha256:a271b225aba65e2765d3d7b1ab0f8a02114cdf60cf3a5298066b80ba40c06576:eyJzZWxlY3RlZExpbmVDb3VudCI6OSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiZmI5YzZkZjEyNGI2NDgxODMyZDk5NTgyMjRmNzFjYjRjZDJjM2Y3YTU3Njc1OWQ0OGM5NjBkZDNmZTE4OTliZCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDEyY2EzNDVjY2Y3NWJmOWMwODA2YmNlNjk1YmU4ZGU4MDhiNzk5ODQyNTFhN2E1NGQyMDJjZjYxMDFkZDQ1MSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiZjk2YWY2OWU3OGEwNDBlNTAxNjM2YjMwNDhkNGVjNTQ2Yzc0OTU1ZTEyN2IyY2M5OTU4MDFiZDI2YWM2NjZkZSIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiOTViMzliZDc5NmMyYjVjYThiYjhjMWEzNjUzODk5NzY5MGE0OTE5ZDY5NzVlNGMxMGZiMWE1ZGE3MGU1Mjc3OSJ9"
  290. },
  291. {
  292. "resource": "repo://src/app.rs#L738-L770",
  293. "version": "repo-lines-v1:sha256:49bdb09f74d399910bca1c218286bf995bae8e8457efe83cb97034814f6d67d5:eyJzZWxlY3RlZExpbmVDb3VudCI6MzMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImJkOGRiMTAzNzg3MWI3NGU1OTVmYTZhZThkNjAwNTE4NDIyNDNkNzJkODZkNDM2OGUyZGU1OWI2MTdkYWM2NmIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImJhMGM2MzVlMzlkMTFmNTgyOGE1Mzk1MzhkYjE0ZTdlNzU1YWFiMzlhZDNhNzljYmM0ZTFmZTQ4ZDgyZGZmYzIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjBhN2YyNDA4YTExOTJiY2VmZTI0ODJhNTg2MGM1MTVhMmQ4NGIxMzQzZTE1ZDdmMGVmNGRhMTA0YzY1ZTJiM2EifQ"
  294. }
  295. ]
  296. },
  297. {
  298. "id": "claim_d7ecd7ebb6e94bf093bec3de37a63db1",
  299. "statement": "Each media download (image or audio) makes up to 3 attempts, each abandoned after 60 seconds, waiting 2 seconds times the attempt number between attempts.",
  300. "evidence": [
  301. {
  302. "resource": "repo://src/app.rs#L1737-L1784",
  303. "version": "repo-lines-v1:sha256:b0f4c6798d97128a8721a067c8b836f5c71583de7b58ebdd10d60b683f0e944e:eyJzZWxlY3RlZExpbmVDb3VudCI6NDgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjJmNWJhZjEwNWExMDViNTk0MjMyNjIwYzMxMGFlZWJmOTYyNzMwMjIzMmY2OTVhNGM4ZWQ4NmRlMzI1YmVmN2YiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijk0M2IxZmMzZTY5ZTA3NDk5NTEzYjJlZTRmNTYyZGMwZWM0MTkzN2EwZTVlNTQwYWFhODAwNTAyOWEzMWU0ZWYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImU4MzE5MzEzYWQ5OGM5ZTYxMjViMjE3ZTNhMWVlNDc4MzQ4N2EwNWYyMGI5ZjQ1MmFiYzM2OWQ0MDBmODMxNDkifQ"
  304. },
  305. {
  306. "resource": "repo://src/app.rs#L78-L85",
  307. "version": "repo-lines-v1:sha256:f10417291b9d10b83650107ab69d41f81c507b42f7c0e929eb19a135e58454eb:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiZWIxNzBiYmI3MzI2NmFkYjU4ZmZkNDVjMTk5ZTIwNGM0N2Y0YWI0ZjU5OWJhN2IwZjU5OTZiODIxZGQzYzhmNiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiZDEwYjU5YmJmMDhjN2M2MmE0YzllNjQxYjNjODc5OGU0ZjFhNTQ0Yjc5MWNkMWE0NmM1M2FhN2NhZmJkNWEwNyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiZmM0YTFmYzc0OTU1OGMxMzYyNGRmZjI5MjFlNWVlODgzNGJmMThhMGIzMzBhMmJkMGQzOGJiNzMyNGE3MjA0OCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiYzhkMTA1ZjI4ZjVmMWMwMzFmYTE3MjY3NDE4MDgxN2NkZWUxZDJlODBiZmRiNWM4MzUzOWY3YTFhNzY5MGUwYSJ9"
  308. }
  309. ]
  310. },
  311. {
  312. "id": "claim_688b76332f0f4c86bb98d3bde215ffa2",
  313. "statement": "When the configuration files change, the reloaded configuration replaces the current one and the AI client is rebuilt, while replies already running keep the previous client.",
  314. "evidence": [
  315. {
  316. "resource": "repo://src/app.rs#L417-L434",
  317. "version": "repo-lines-v1:sha256:11076b2b498b6d19b7a0629886f2cdb37229105049de848490f4e1d9faead710:eyJzZWxlY3RlZExpbmVDb3VudCI6MTgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjVhYTEzNjY2OGNiMzc5NzgyYTUwMTY4ZDNlOWM4Njg4MmM5YTBhZTAxOGQwNTZiNTEzZWU2ODA5OWYxNjc3YzYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjVmMjAxZDg2ZGM3NzY0YWFmOTA5MGNhNDRkODcxNDM3Y2JiODk4ZGE5ZWJlMGU0ZDhlNjVlNDZiZDJkZGVkYjQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjAyNjE2ZDk0ZDJmZDg4NWViMDZhMGFmZjVkYjQ1YWUyOTdiMWQ5NzViYzU0MjRlZGIyYWUwZmE2NzZkMzE0ZTYifQ"
  318. },
  319. {
  320. "resource": "repo://src/config_watch.rs#L15-L40",
  321. "version": "repo-lines-v1:sha256:39a3d9ca14f3c3010ef0a2fadf3e6a8ecf8749be831215006c0808392cb62813:eyJzZWxlY3RlZExpbmVDb3VudCI6MjYsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImQ3NGMwOGQzMzg5NGUyMWQyYzBmNTMyMDkwYmQwNjFjNDNjMzg1ZDU1MzkwMmI0MDkwZDkxZjJjZDY3M2VjMWQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjE1Y2VkZDkyMzY4ZGI1MDMwYjUxMjQ3ODcwODlmY2FmZTI5YzhmOGQ4MjExZDA0MTE4ZmM4MTViYWM1MDBjOWEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI4MTU5NjA0YjAyZjI1MGMwMzAwZTljNDQ5ODlmMzMyYjA4N2RjN2UxODAxZGI5Y2IyMmM2ZWM5YzdmMjUyZjIifQ"
  322. }
  323. ]
  324. }
  325. ],
  326. "verification": {
  327. "by": "openwiki/0.7.2",
  328. "at": "2026-10-24T16:39:50.206Z"
  329. }
  330. }