{ "schemaVersion": 1, "pageVersion": "sha256:2d4f2f85140ac84b4be12c4f25bec9245efc316b27132e2568facabe948aff2b", "claims": [ { "id": "claim_4abb79458e064f78a8d565a7069cb356", "statement": "autoreply.rs contains pure decision and context-building logic without I/O.", "evidence": [ { "resource": "repo://src/autoreply.rs#L1-L4", "version": "repo-lines-v1:sha256:ab77952e2cd65858f5a94c8c5277b1200f58c820e5529a8757c0fe06a1e1a9fe:eyJzZWxlY3RlZExpbmVDb3VudCI6NCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiNTFiNTJkMjY2MjhkMDI1N2NiNzM3NDY0NmMyNTg5Yjc5MDEyMDBiNDc1YmZhYWUxMmFjYWU0ZjBmNWIwOTA5MiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiYTk1YmVlYmQwZDJhZmU0YmMyNGU4MzE5MzQ1MGY1YzY0MzMxZmFkNzNhNWQ2YTI0YWYyODRlZTcyZTI1ZWI1OSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjAsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NSIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiZTVkODIxZDkwZWIyMjM0YThkNWYyZjc1MGZiZmVmMGU1ZjE0OWE2Yjc1MTBkNDRhYTNmMTNiMjdlNTQwYWE2ZCJ9" } ] }, { "id": "claim_bd1031863e03434ea4649d5866821b34", "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.", "evidence": [ { "resource": "repo://src/app.rs#L1403-L1416", "version": "repo-lines-v1:sha256:76ea2311dd543d33bf1c52b4cee8997184cb67643a8ba3b2f715abf2fea34667:eyJzZWxlY3RlZExpbmVDb3VudCI6MTQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjA0NDI0MGFiOGNkMTM1NDE2ZTQ5MjMyYTEzMGIzYzlkYmI2NWZmYzg0OGNjYzY3OWJhYTQxYWQzNjY4ZTA3MjQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjE5ZTc2MzU1Y2YxMTk5NDgwYzNmOTk4MzZiMTQ4NmM4NDFkODkxZmFhZDkwNGM2MDhlMDkzMDIyZDM3NTdhZWUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjQ0MDNkOWZmNDhiN2ZiNmQ3MjNkZTVjOWIzMTg5MzEzZTI0NjcwYTFhOTYyYWFlMWU2MTg0YTI5ZWZjNzFjNWQifQ" }, { "resource": "repo://src/app.rs#L976-L1007", "version": "repo-lines-v1:sha256:c4358a68adc4872cb86ae5a6cf9f5e527660022add8d3e68770933ca4f7e6ea6:eyJzZWxlY3RlZExpbmVDb3VudCI6MzIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImEzYTUwNTFjOTU0MGU0MGQ2ZDM4ZTgzMWIzNTIxZWM3MWRiN2M5N2ZjN2IwYzRiZWQ1ZDlmYzY1YWVjMjBkNjkiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjkzNzNhMTgxNzI2YzQ3ZjdjNzlmOTI3ZDI2NzhhYzQ3NjYzY2VhMzI1OGYxOGEwNTM0ZTg2NDVlYmFlOTlkMGUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImUzZWNmNGIzNzRlN2M0ODFlZjUzODQ1Y2Y1YjlmNDI5MDk3NmQxYTlmNDlkOWY5NWJjNjIxNWEyY2VhMDYyOTAifQ" } ] }, { "id": "claim_39956a806ff74eb3bdbe245a5c9b0f43", "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.", "evidence": [ { "resource": "repo://src/autoreply.rs#L58-L107", "version": "repo-lines-v1:sha256:2c5bff97825cbfe1e0822d2f2450e3d71e38f9eba0e4ba5d78ce48dd225acc29:eyJzZWxlY3RlZExpbmVDb3VudCI6NTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRlNzAzNDZhYmE0OTZiOTAzNzI1MTY5OWQzY2YyNDAwNmU0ZGYyMDM2N2MzNDRiZjllZjkyOWEwMjJmYTRjZGYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjIxNTY3ZTI1ZmQ3ZTExMzc3YmU4NDk5OTc2NDEzOThhYzRmZTMxNTBiNzE3OTA4NjNiNzc0ZTAzYmNiZGM0ZjkiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjE2MzhiZmQ4ZjNiOGY1OTQzZDQyODJhMmY3MGQ0ODBhOWE5MGVkMGE3ZTA1ZWQyOWNmMWE0YzRjMzZkYWJkN2IifQ" } ] }, { "id": "claim_01e8cc3ee34a49b6a579c25728a8efa1", "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.", "evidence": [ { "resource": "repo://src/app.rs#L333-L366", "version": "repo-lines-v1:sha256:6c4f5e0458f8089356df9af12ebae1223140c0e16a7db40e5cd5c048fe12b1a0:eyJzZWxlY3RlZExpbmVDb3VudCI6MzQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6Ijk2ZjNjMTFjYTY5OWY4OTA5MTUwMjAyYzhkZTVlMjdlZjAwNTIyOGRmZmNjMzAzOTlmNDg4OTdmYzdhOTVlMTEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjdmYzAyNDRhNGJkOTI4YWRmMDE3YjljOWQ0ODIxYjU4NjgwZGRhMmI2YTBhZDEyYWU2MWVhNDBlOWZkMjM3OGMiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI1YjUzYzQyYTJjZjU2YmRlZWIxOWJhYTZhZjdhYTQzZmRkNjFmN2VhNTQzOGVjOWRmYTAwYjc0Nzg3NWM1ZGQifQ" }, { "resource": "repo://src/app.rs#L521-L527", "version": "repo-lines-v1:sha256:9190cc2d950eb45e132eae01c1ae01b5fb4af82470bb42fae8b4e0227a315710:eyJzZWxlY3RlZExpbmVDb3VudCI6NywiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiYmMzZGZhMjZjNzdiNTNkZDcyZWZmZGI1MmEyNWFlNGY5YzMwNTdiZTk2NWI0MzRlMTMyOWIwMTM2MGZmNGViNyIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiMTYyZWU1N2U0MWE4YzIwYWUwMTY0ZGYyNjE0MzlkY2M0OTlkMzUyMDgzNDE1MTUxNmQwNDdlOGRlYWU4YTQ2NiIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiOTEyYzE5ODI4NjExZDJhZjdmZWFmNjQyN2ZmNzE0MjFiN2JhMTU4MzM5OWY0YWU5ODBiMzJkNThlNDUzYTJiYSJ9" }, { "resource": "repo://src/app.rs#L628-L634", "version": "repo-lines-v1:sha256:8954f8190e201652fd68eb454a728e5e4173257eddebb901b8a0b8d4c773564e:eyJzZWxlY3RlZExpbmVDb3VudCI6NywiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiODA1ZTgyYjdjMjlkNzVkZDI3YmZhYTZiYjkxMzZiOTMwMjQyYWEzYjJkNmM5NjI4ZWVmMmY3ZjIxNzdlMzhhNiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiMjRmNGQ3NzU2OTA1OWI4NjMyNGU2YTVmNGY2YWU4YWI4NjM4YmUzNTY5YjM5MjRlZDJkOWJiZjY0MzczMjUyNCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiYTZlYTYzN2IyZDc3YWVjZjY1Y2EyOWFjNTgzOGQ4NmRmNGEwODM4NTdmMDQwM2U5OWM2NWU3NzQyMzI5NDMwYyJ9" } ] }, { "id": "claim_4d8d74d736ed4ca19a1d0de711c9f12f", "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.", "evidence": [ { "resource": "repo://src/autoreply.rs#L182-L191", "version": "repo-lines-v1:sha256:1b2ab043319224b4a08306fe10e69a7a41bd99836ab89ee9cbb0c1a1f49fbf28:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRhNjA3MDVjZGJlZjdmYjI4MGZmYjZkOTRhM2YyNTBhOGRmNTAzZGVhNTgxZGZhMzU0NTM4NTM4ODJhYjc3NTEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjU0ZWYyYjYzZjg4Njk1ZTc2OTIzMjVmMjE3Mzk4NzJjMDhiNTgxNjdjY2YyZWM2NTY2MGYzMDJkOTMyYTEyY2EiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjhkOWU4ZmE2ZTkzOTA1ZTQwYzdmNmM4YWM2NWRkNTQ4MzQyNDQ3M2I1MmMxYWUxMDE5MGIwNGNmNzI4ZTZiNWEifQ" }, { "resource": "repo://src/autoreply.rs#L241-L265", "version": "repo-lines-v1:sha256:bbcff26d49ec29313b51b2a51c2d5df2f8c9ed3f715d9fc6b4af559d93b7a68d:eyJzZWxlY3RlZExpbmVDb3VudCI6MjUsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6Ijc3OWM1NTkxNmMzNjZmZDdhNmU2ZTYwZmE4MDVjOTYxZGExYjVhNDFhNGJkMDk0MDkwZjZkM2YxODc5NTJkMTIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijc3MDE1ZTdkMThiMDkxMTVlZjkyMzU2NGJlMDQ3N2IxODllZTViYWI2ZjdkYmI4ZDg5NTZkMjQ0M2YwMjFmOWIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjJmYmE5MjI2NzJlMWM1MjY1NTMwZjBkYTNlN2RlZDBmOWQxZjUxNjY4YjJlMWMyZWI2MThlYWEzM2VlZmZkMDMifQ" } ] }, { "id": "claim_79a2ab515a274bab8fd3dd9736315e51", "statement": "Own messages trigger only when human-written in the self-chat, detected by comparing with own JIDs without device suffix.", "evidence": [ { "resource": "repo://src/autoreply.rs#L148-L180", "version": "repo-lines-v1:sha256:32e4689dd25915397864463e71677879f2543d73b615303632cb241a548e433b:eyJzZWxlY3RlZExpbmVDb3VudCI6MzMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjBjMzM4MTNhM2RiZmNlNjRmYzY2MTk0YmVlY2NlNDQxMjgxZjBiMTBkYjkyMzJjMmNmMzQ4N2NiMmExOGExZDgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImQ3YTcwYTRiOGY2ODNiMmVhZGFlYzIyYWRkYzU4NzY3ZDUwZDAwZDlmYTQ0OTU0YjQzOTY1NTdmZDMwZWU3M2UiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI0ZTI0ODc3YWIzZWIyYTI0NWE4ZWQxOTJiMDIxNjI5MjE2N2RhN2ViMDRlM2Y1Y2MxYjQ5Yzc1MjEzMzUyYjQifQ" }, { "resource": "repo://src/autoreply.rs#L293-L309", "version": "repo-lines-v1:sha256:daeb52efe3c35b1565aea1badb2260d9cfb4caef892ee11755af3f03d40c0788:eyJzZWxlY3RlZExpbmVDb3VudCI6MTcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRhNTE4MDYxM2Q4NjEwNGE4Zjk1N2FhYTI2ODI4YjBmMjQ2NTk3ZTg4M2UyMzk3YTc3NDEyMzVkNjNhMTkzZmMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjE5ZTc2MzU1Y2YxMTk5NDgwYzNmOTk4MzZiMTQ4NmM4NDFkODkxZmFhZDkwNGM2MDhlMDkzMDIyZDM3NTdhZWUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjBjNGVkNWUzYjNkYWRhZTk2YzQyZDg5ZDk2MTBkNTYyMmY5ZTkxOGI2ZTU5ZTQ2ZDMzNzUzMjNiNTNmNGJmMWUifQ" } ] }, { "id": "claim_aabba3ec6866414a832790bbba7669db", "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.", "evidence": [ { "resource": "repo://src/app.rs#L267-L283", "version": "repo-lines-v1:sha256:30440aa53c9dd61b844f344f5fb331a44d386119170b337bf66d0dbcc172b2f0:eyJzZWxlY3RlZExpbmVDb3VudCI6MTcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjVkOGIyMTkxMzczNzkzN2Y5NWE1M2YzYzg2ODM3Y2JhZmY3MWVmZDM0MjhlMDM3NGVkNGUxZGUzODg3Mzg1YzgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImEwOTM2MDA2NDY1Y2FkNmM5ZDNiZjBlYjFkNWUxZDUzYTEyMDdhYjdiZTBhMmU0YjA3NDhjZjJhNGRiNTExMTIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjAyNjE2ZDk0ZDJmZDg4NWViMDZhMGFmZjVkYjQ1YWUyOTdiMWQ5NzViYzU0MjRlZGIyYWUwZmE2NzZkMzE0ZTYifQ" }, { "resource": "repo://src/app.rs#L368-L376", "version": "repo-lines-v1:sha256:df493befb56dd10251865172577fc5c0bae10fe73f070b409398d5734657fd5f:eyJzZWxlY3RlZExpbmVDb3VudCI6OSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMjVhYmM1NWJiNzAyNjM3YTU5MGU3ZjU3ZjVlNGQ1ZDI3MTc5NmYzNmY4YWQxNzM5ODI3NWZlZThlOWY3ODM4NCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiOTk5YmRlZmVlYWNhNjM0MGUwMjkwZGM4NmU4ODljODlkNWUxODlhYTViYTQ0YjU4NWIzYjcwNzM0ZjRhNjJkOCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiMGZkOTUxZjMzMzEyYjBkYjE5OTA3M2NkMjM0MDgxYzczMzI0MjFmNjBmNGM2ZDgwMDdiZTZiMzVjMzA4NjE0ZSJ9" }, { "resource": "repo://src/app.rs#L499-L519", "version": "repo-lines-v1:sha256:9c95e2b6201e18825840eb6e7889d5b1dd8fdc2f20ba7da3471f9d4641456107:eyJzZWxlY3RlZExpbmVDb3VudCI6MjEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ1NDc2YjZjNjU4MzI4NGViNzUyMTA1Mzg3NGFjZmU3NDY1MGQ0NTJhOTRhMjYxYzg4YTFhYzBjYTYzNWYwY2MiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijk5OWJkZWZlZWFjYTYzNDBlMDI5MGRjODZlODg5Yzg5ZDVlMTg5YWE1YmE0NGI1ODViM2I3MDczNGY0YTYyZDgiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImNmMGY4ZWU3NGMyYmNhMjZlNTlmY2NmYjUzZmQyYWI2OGJjNzIwZTY2MGZiZjM3M2IwZjFhNTY4ZmIyNjBjOTUifQ" } ] }, { "id": "claim_e5cd4fb182a34e47aec8344c6682627c", "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.", "evidence": [ { "resource": "repo://src/autoreply.rs#L13-L27", "version": "repo-lines-v1:sha256:a71b2b1ae4d31324f82e6858e3af144db8883e18a974555890172b34e25e4971:eyJzZWxlY3RlZExpbmVDb3VudCI6MTUsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImJkYTIxOWRlYzM3NjlkNDZkZjMxMmE5MzYzZGFhZmI5N2IzMGQxMTRkNWE0NGY4MmY4ZmNhZjJmNTJlNWY1NzkiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjdjY2U3ZjMxMmFjMmQ5ZmMzNGFlOGJjZDJhM2RkZmNiNGVjNjEyNDM0OTBjNTYwMDVhZmJmZmE4ZGM5ZjFiMTgiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImZkMGM2MzgyNzI5ZDA4ZTE0NGQ1NmJiNWJlNzAwYjMzMjEzMTMyMjAwNzQ3ZWI3M2JlYjc0NTAwOTlhYjg2Y2UiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjM1N2I1ZjVkNWU3MTlhMDlmOTM2OGE5OWI5MzEwZTU2YjM1YTI1NDNjYjE2MGE2NmJiYzIyNjgyOTM3Nzk5ZWEifQ" }, { "resource": "repo://src/autoreply.rs#L311-L436", "version": "repo-lines-v1:sha256:5a954d83ee76e833ed24d427d0e8e36e66ff9c8a1ac999e67ad6a3124d5df508:eyJzZWxlY3RlZExpbmVDb3VudCI6MTI2LCJmaXJzdFNlbGVjdGVkTGluZUhhc2giOiIzZTBiMjBmNDZiMWYzNDE5OGQ3NGE0N2I3ZGNiZDUxZjI5NzhmYjNhM2YyNWE2OGQ0YzE1NzA3YTUwNTI0NjVlIiwibGFzdFNlbGVjdGVkTGluZUhhc2giOiI0MTJjYTM0NWNjZjc1YmY5YzA4MDZiY2U2OTViZThkZTgwOGI3OTk4NDI1MWE3YTU0ZDIwMmNmNjEwMWRkNDUxIiwicHJlY2VkaW5nQ29udGV4dExpbmVDb3VudCI6MywicHJlY2VkaW5nQ29udGV4dEhhc2giOiIxOWU3NjM1NWNmMTE5OTQ4MGMzZjk5ODM2YjE0ODZjODQxZDg5MWZhYWQ5MDRjNjA4ZTA5MzAyMmQzNzU3YWVlIiwiZm9sbG93aW5nQ29udGV4dExpbmVDb3VudCI6MywiZm9sbG93aW5nQ29udGV4dEhhc2giOiI1NGJhMWQ4NGE2YjE3M2RlOGMwZjhlNjNlZTgzNTFhOTE2ZGUyYTNlYWViZjFhZDBjZjA1YmExN2JiYzY1YjdjIn0" }, { "resource": "repo://src/autoreply.rs#L482-L503", "version": "repo-lines-v1:sha256:9f1d57d8cf162701d624737e5d0477297db574585ccc1e38af3f9cd95ce227a1:eyJzZWxlY3RlZExpbmVDb3VudCI6MjIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImFmMDViNzI5MDFlOTRmOTRjNzZmMmI3YjY0YjU5YjlmMDg3M2JlNWFiY2ZhYTBlY2ZhMWU0NTk3ZDE4MDJhZWMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjY3NDJmNGI4NTg1Y2M2ZDZjMmFiNzdiYTVmNGVhMmY0OWQxNzFiMzRmNWExMjdlYmM4NzU2ZWUzOWQ2OTI4ZGQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjdiYzk4ZDZiMGRjNDkyYzUwMTZkZjEwODA1YTNhNTRlYjljMTg0YTVhNjEzN2U3ZjRiZWNmYTBjMjIwNTUwZDAifQ" } ] }, { "id": "claim_3e40d76522d14d6a8010a842c8b4d312", "statement": "Before a reply, images in the context without a stored or in-progress description, at most the 5 most recent, are downloaded and described in parallel by the vision model; the reply starts after their ImagesDescribed event.", "evidence": [ { "resource": "repo://src/app.rs#L1231-L1292", "version": "repo-lines-v1:sha256:3fb067a4234c53059cbc431004a05bb2d3c9fba17d27286a1860ffc3bbc41547:eyJzZWxlY3RlZExpbmVDb3VudCI6NjIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjBmNDNmYzY5OWMxYzQyODRjMjI1MWJmMDdiZDk5ZDcyNjQzMGU4YzhhYWE2YzM2YTQyM2ZkZTQyYzc2Mzk2YmYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRmYWI3MTBkZGY3ODU5ZTU3NTc2NGE5MTNhMDAyYzc0NTg1ZmZhNzAwMTUxMGNiODgxMWRhODNkMmNmNzRiMzQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjU0MDAyNGFmZmIxODk1NGEyZjYxODAzYjk5ODBiOGY1NmVkNTlmZjJjN2FiODAyZDU5NDI2NGZiMDFkNmMyOGUifQ" }, { "resource": "repo://src/app.rs#L430-L463", "version": "repo-lines-v1:sha256:9715aab5bcb9a42cb7f22b16e2ae0f531098ff6d6be6ca1ed6da8c95353afde8:eyJzZWxlY3RlZExpbmVDb3VudCI6MzQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjRmODNjYmFiZjFkYzg0MDU0ZTM0OWEyOWI5M2QzODU0NTQ3NGZjYjkzMDU0ZjNkOTYzMDg4MWQxODNjZWI0MzciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjI4ZTNjM2Y4MmI0ZjZmMzU0Mzg1NWNmMjZkNjljZmI0M2NjN2RmMTgxYzE5N2NmNDI0YmJhZjM0ODExZDA5M2UiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImUzZjUxYTZkNTgwMzYzOTIyNGZmZWQwOTU0MTEyNTZhNzhlMzA2NTU5NDZjZWY1ZWFmMzlmZjJkNDExMGM1MjIifQ" } ] }, { "id": "claim_045b183e6c6b444c84449e47227a98cb", "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.", "evidence": [ { "resource": "repo://src/app.rs#L703-L765", "version": "repo-lines-v1:sha256:dc263d71dc225c968c33c780874494b82440bfd214546483d0aef9fd6a02bf46:eyJzZWxlY3RlZExpbmVDb3VudCI6NjMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjBkNzQ1Mzc3ODY0MzI0MmZhZDE3MGZhNjcxNTUxYTJiYjI4ODM4Y2M2NmQ5ZjMwZWNkODhjZTNmNjFhYjRlMGEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijk5OWJkZWZlZWFjYTYzNDBlMDI5MGRjODZlODg5Yzg5ZDVlMTg5YWE1YmE0NGI1ODViM2I3MDczNGY0YTYyZDgiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjYzYjQ0YTU2ODZkYjM0MjNlMDVmOGMxOWMwYmMyNzlmMDA1NTE4NDJmMzgwZjIxMTM1ZTkzMTZhY2IwNmQ5ODEifQ" } ] }, { "id": "claim_66877f18a3ca434fa2dc9b5857ba48b9", "statement": "The reply is sent reply_delay_seconds after the first unanswered message of a chat: a timer task emits ReplyDue after that delay.", "evidence": [ { "resource": "repo://src/app.rs#L1199-L1209", "version": "repo-lines-v1:sha256:be3fc24d7db22727c3dddd8c5116b8fd64a13c8a473f99818b61f3bb6ac76204:eyJzZWxlY3RlZExpbmVDb3VudCI6MTEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImMxMmIwOGNlNWY0N2RmY2RjMTQ1MTA4ZDFkNmQ2NzhiYTllNDhjZjBmMGY5YzdiYTBhNzMxYTkzMzFjYjc2ZDMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRjNjg0ZTk4OWVmNzk4ODJiNmIyOTMwNDdiMTJiNDg4YjkwNjlhYmUzMzc2ZTVhNTNhOGEyZTI5YjY4ODcyMTAiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjA1ZDJlYmFjZThlMTE0NjAzZTYyZDc1YjVmNmRjODFjMzJiMzgzMmI4YjBiMGUzZDVhZDY0OTMyMDQ4YTZkMzgifQ" }, { "resource": "repo://src/app.rs#L368-L376", "version": "repo-lines-v1:sha256:df493befb56dd10251865172577fc5c0bae10fe73f070b409398d5734657fd5f:eyJzZWxlY3RlZExpbmVDb3VudCI6OSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMjVhYmM1NWJiNzAyNjM3YTU5MGU3ZjU3ZjVlNGQ1ZDI3MTc5NmYzNmY4YWQxNzM5ODI3NWZlZThlOWY3ODM4NCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiOTk5YmRlZmVlYWNhNjM0MGUwMjkwZGM4NmU4ODljODlkNWUxODlhYTViYTQ0YjU4NWIzYjcwNzM0ZjRhNjJkOCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiMGZkOTUxZjMzMzEyYjBkYjE5OTA3M2NkMjM0MDgxYzczMzI0MjFmNjBmNGM2ZDgwMDdiZTZiMzVjMzA4NjE0ZSJ9" }, { "resource": "repo://src/config.rs#L38-L39", "version": "repo-lines-v1:sha256:3841a56ef56846ac61df41e175eaa085bd0d61eea8f2b034ebc6e5737f160c6e:eyJzZWxlY3RlZExpbmVDb3VudCI6MiwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMDZiYjVjMWVhMTg4OTM2NGMyMzE4M2JjYmU1ZDY2YjhmNmMxNTVlMjgxMGRmY2JkZTc4NjY5ZTBkZjhkN2YzYSIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiZDcxNDZlZjZhMzU1NWEzNTk2Y2EyNzZlMDU0MmExN2Y4ZGNmOGMxNDY5MjNlZmZiNGNkOTBlOTZmM2Y1YjRjZiIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiYWNlODhhMjI1Nzc5MzI5MWRhYzNiM2E5YmUxMTVjODQ2MDM2NmU3ZGNlODM5NTNiYzZkNTI5NzdlMDc3NjNhNCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiZmZlNWFjNDU3ZTA5MTNkNmMzN2UzMDkxZGE4MWNiYzg4MzU0NDRlODk0MjA1Njk1ODQ0NGM4MzkxNWE1M2YxYiJ9" } ] }, { "id": "claim_aa50de18f27a4f1ba952016d6c32b9f0", "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.", "evidence": [ { "resource": "repo://src/app.rs#L417-L451", "version": "repo-lines-v1:sha256:a63345aecce224550feeba0b579240e2e6f55ea65600d2512c4b1e8291f1ed06:eyJzZWxlY3RlZExpbmVDb3VudCI6MzUsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjhhMGZkOGQ4YmVjYTA3ZDNkNGZkZDViOGFiMWI4NmQ1Y2MwNGVlYzdkNzY3ZTc1Y2Y3ODgxMDk2OGI2N2Q3NDUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjE2MmVlNTdlNDFhOGMyMGFlMDE2NGRmMjYxNDM5ZGNjNDk5ZDM1MjA4MzQxNTE1MTZkMDQ3ZThkZWFlOGE0NjYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjU3ODQ1MTBjNTZmNWE5YTNiMmY0ZTdkNmZjMDFjNGM4NTEyOWJjYzUzM2U1YTZjZTA2MTYyY2FiMmIwNGY4YzIifQ" }, { "resource": "repo://src/app.rs#L529-L547", "version": "repo-lines-v1:sha256:45691eccde8d968061d2835ed9d342c7665536f57d65eba18d6818bf6cdbaccc:eyJzZWxlY3RlZExpbmVDb3VudCI6MTksImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImRlNjMzYzk0ZmI0NTZhMDkxMTliNmQyOWYyZGMzNjQ2MTI5ZTVlY2M4MDYwMTdlNzVkYzk0MTM3N2RjZDQxNjMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImJkYTA0OWEwZDljNDFjMmNjZGQ4OWY2MmQ2Zjc1OTA0ODBjNjQyZWI3Mzc5NTcwM2Q0MTQ1Y2I5MzQ2Y2VhZjIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjNhMzhmYjI3YWI5N2YyMTc1ZGQ0MDc1NDhmMTcyMGUxNzMwYzY4YjA5ZGI1M2MzZTZiZTQ4OGQyYjMzMzMxZmYifQ" }, { "resource": "repo://src/autoreply.rs#L231-L239", "version": "repo-lines-v1:sha256:e449aa643a18bfc13c65470f8160c3d49e5fc14fad1a09a5a427b0337ee2c354:eyJzZWxlY3RlZExpbmVDb3VudCI6OSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiNDc3NWNlNjg3YjU5YjZlZTJkYjRhOThlZTgwOGIzNDEwNThmOWRjNTY4NDMxYjg2NDA2Y2NhMjVkMzdkNGM2MiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiMzZjYmYyODkwNTIyYmM3ZmQ4YzgyM2M4NjczYThjZDcyMDFjNWE4NDI4Nzg0ODRjNjI2NjljMWNlYmNhNWRkYiIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiZjZhMWQ3MTgwMWZlMmYwNzkwNjkwZDA3NjczMjAxODY5MDRhODZhYmQzNGNhMTk1ZmMwZjhkYzJkYjlhMzc0OCJ9" } ] }, { "id": "claim_d8b08d3eeb4d432f82bfd00abc49cbd2", "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 reports the count in the status.", "evidence": [ { "resource": "repo://src/app.rs#L567-L626", "version": "repo-lines-v1:sha256:662ddb2a45a183036d34d982acfd7438be6f423e58df87505555df7b3c0a5c12:eyJzZWxlY3RlZExpbmVDb3VudCI6NjAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImM5ZmJjMjYxZDk1MDVkNTBjZTU1MWY4ZDI4OTQ2MTZjMWM2MGY3NTlhZTAwYTE1OWY4Yzg3OGVmMWJjM2Y2ZWEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijg0ZTkyMmFmNjJhMTJlOTYxYjczZWM0ZGMyMzNjMTk2MDhjNzRmNDU1MzExNzUxOWQzZWU3MjViZDZkNWNkNmQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijc4OTU5NGE5NzIzN2Y2NjVkMmU0Y2RhMTIyZmY1NTIyNzJjMjVmZTFhMTI0NmZjMGNkNjllMDQ4MjE2ZTNlYWMifQ" }, { "resource": "repo://src/autoreply.rs#L267-L290", "version": "repo-lines-v1:sha256:07065945215d59bcdce533cf448c284c0de51f32fc4f1311433dbb8a554ba7c4:eyJzZWxlY3RlZExpbmVDb3VudCI6MjQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjNlZTNjZmNlMWFhMTdjOTk2YzhlZDhiZmVmN2UzODZkZjU1NDZmZjk1ODUyNzUxNTdhMjEwMzI3OGE1NGE0ZjQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImUwZGY3NGRlMGI2ZGVlYjk5NjI4MGU2YzFiZDRlOGIyNTQ1MDUyODZhNzBhZjZkN2U4MWE0MTRjOWJhYzA3MGEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjhjYTUwMTNjY2ZiYWFhNGY4YTdiMmRlYTU1MDU2NTRhN2VmN2ExNGVmNTZhZGI3NzEyNGM2Y2NkMWVhMWNjN2UifQ" } ] }, { "id": "claim_bd2df469e93d46108b7885dedb6da25b", "statement": "The AI context is loaded with messages_since from local midnight of yesterday, capped at CONTEXT_MESSAGES.", "evidence": [ { "resource": "repo://src/app.rs#L636-L643", "version": "repo-lines-v1:sha256:7c77ded5ac6d33c39416f329b08cebb428d4745fd351bf74af8942d0b7a7ca02:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiNTUxNGM3ODU1Zjc2MTlkMWNmNzRmYjkxNzViOTNiMDc1ZTAwMGFjNTA0MjFlMWRmMWQ0Nzc4NWQ3NDkxYTdmOSIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg5M2Y0MGUzNzgxZWI4OTZjODJkMDQ2YTA4MDY3YTExZTM1Y2RmMmYxZGZhZjI2ZmVhOTBiOGRiNjY3NjQxMyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiMWJhZTkzZGRjNWYwMDFlOWRhMTI5YmY0ODA5MzQ3MGI1ZWQ4ZjNjNzdjYzA2MjQ2YjJjZTkxODdmMTIzNGI0ZCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiNmZlMTlkZGI5ZjIxNTk1NWQzNzM5NjBlODk1MTI1ZGE0ZmYwYTYwNTAxMGY1ZmVmYWExYTI2ZDE0NWQ4NmNkMiJ9" }, { "resource": "repo://src/autoreply.rs#L459-L480", "version": "repo-lines-v1:sha256:50ee4ad69b117378616ca21b79b698134c88777e95ce91db1351b2411baa697f:eyJzZWxlY3RlZExpbmVDb3VudCI6MjIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImZkNDcwYzIwOWRjNTFhNjVkMGE4MzYzYjE3ZmI5NGI2MTZiOTMwNjU4MTIxZTc3ZjFmMTcwZGU2OWEzMGZiYzEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjAzYTEwMzdmMDcxOTYxZmIzYjEzYTdkYWZmNjlhY2MyYmFiODEwZmU4YmRhMTZhMmIyMjcxNTU0MzcxNGNjNzUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjIwYzRkZTBiYjA5ZGM2YTUzMmVjOGUxOGQ0ODFjMGQyZWJjMDA3ODNlMzhiODk4MDMyNzJiMmY4ZTMwOTJhMzIifQ" } ] }, { "id": "claim_bfe577e08f7e4f61bae3ac4b2b733930", "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.", "evidence": [ { "resource": "repo://src/autoreply.rs#L251-L265", "version": "repo-lines-v1:sha256:3500de003e15b84a4a4ea0d82efa712d262694653367bfa7e0ba301b46eb3133:eyJzZWxlY3RlZExpbmVDb3VudCI6MTUsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImVhYjdlMDgxZWM2YWFmNTMwMmViYzE1MWJiYTc0NGYxZTI5MGU5NzllNGQxN2Y4YjQ3NjMzNmZhNjk2NzQyNGUiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjY0ZDMxNTc4NWMxODA1YWU3YzEzYzUwZWEyZjhhN2E2ZTcyYjNiMWVhOGQxNjgxNDIyMzYxYWZlNGRjNDIwMzEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjJmYmE5MjI2NzJlMWM1MjY1NTMwZjBkYTNlN2RlZDBmOWQxZjUxNjY4YjJlMWMyZWI2MThlYWEzM2VlZmZkMDMifQ" } ] }, { "id": "claim_f9d4f2290de14443a15f57c2419e65b7", "statement": "The global autoreply is persisted separately from the per-chat flags and toggling it does not change any per-chat flag.", "evidence": [ { "resource": "repo://src/app.rs#L1052-L1069", "version": "repo-lines-v1:sha256:05cde78eab7927a8b5c33ce971f85c0e210ce60936eada88f8c9481585c1519e:eyJzZWxlY3RlZExpbmVDb3VudCI6MTgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjlhMjY2MjVlMDNiMmE0MDg1NDg0YjQ2NjUzOTllOWRmOWFhZDQzYmVkNGQxNWFkODEwODMzMGIyMDhjNmM5ZTYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijk5OWJkZWZlZWFjYTYzNDBlMDI5MGRjODZlODg5Yzg5ZDVlMTg5YWE1YmE0NGI1ODViM2I3MDczNGY0YTYyZDgiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImU2ZWQ1MmZlYjhjZTliMjNiYmNiYTkwMGFkYjk0MzE3MjA4ODNhZTk0ODY4NmQyNjhlNmRkMjFlNjljYTU3YjkifQ" }, { "resource": "repo://src/history.rs#L287-L317", "version": "repo-lines-v1:sha256:7446cd3d43ecedda818c27075602eb8b9f1b3ef669ea39edf3a6c5520cc4bec3:eyJzZWxlY3RlZExpbmVDb3VudCI6MzEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImE2OTlhMTQ5OTg2YzgxZjQ4OGYwMjQxMmU4Zjk0YjE1NjdhNWQ2OTEzZTNiYTg0NjJlMmFmYzY5NDJkYWYxMTMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjRjZTNjZDVlMGE4OTI3NjIwMWQ2ZWU2OWE2ZGM4ZTEyMzgxNDVmMzEyYmE2ODQxZjUzMGYzNDQ0MmU0Njc2NjIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQ5YzdmYzM1ZDBjZDRiYzE1MWI4N2I1Y2IyMDhiZjEwYjM5NjA5MmY4YzMzMmJmZjNmN2ZiNWUwOWNhZWRjMmUifQ" } ] }, { "id": "claim_fd5c7a184d1e434a85a1c63419bbadce", "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 images received meanwhile.", "evidence": [ { "resource": "repo://src/app.rs#L1307-L1314", "version": "repo-lines-v1:sha256:b961fc471f97ce4ba30ba2d05c7240d1d8e6038ccae49f417602f58eb534920b:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiYzNhMDkyMjQ3MTNmYjQ0MDIzMjJlMGFjODEwMWI3OTI4ZWQwNThlZTExZTU5NmZkYjMwM2NjMGRhOGJiZTc3YyIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDEyY2EzNDVjY2Y3NWJmOWMwODA2YmNlNjk1YmU4ZGU4MDhiNzk5ODQyNTFhN2E1NGQyMDJjZjYxMDFkZDQ1MSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiMTVlMTI4NTMzNjllMzNkZDlkMmUyZDQxNjFlYmJhNWNjYWMxMDkxYzIwMzg1ZTViMzNlMjkwMGIyNjdlOTVlYiIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiNDlhNTk5ZGY5ZDUwOWVhMzBiNDMzZjkzYjY4ZjE4ZGQ1ODY2ZDVmMGJjMGMzMGEyMTU1OWFkN2U4MWM1ZmMwMCJ9" }, { "resource": "repo://src/app.rs#L499-L519", "version": "repo-lines-v1:sha256:9c95e2b6201e18825840eb6e7889d5b1dd8fdc2f20ba7da3471f9d4641456107:eyJzZWxlY3RlZExpbmVDb3VudCI6MjEsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ1NDc2YjZjNjU4MzI4NGViNzUyMTA1Mzg3NGFjZmU3NDY1MGQ0NTJhOTRhMjYxYzg4YTFhYzBjYTYzNWYwY2MiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6Ijk5OWJkZWZlZWFjYTYzNDBlMDI5MGRjODZlODg5Yzg5ZDVlMTg5YWE1YmE0NGI1ODViM2I3MDczNGY0YTYyZDgiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImNmMGY4ZWU3NGMyYmNhMjZlNTlmY2NmYjUzZmQyYWI2OGJjNzIwZTY2MGZiZjM3M2IwZjFhNTY4ZmIyNjBjOTUifQ" } ] }, { "id": "claim_4cb6835327794c709466ce1c02eda889", "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.", "evidence": [ { "resource": "repo://src/autoreply.rs#L29-L56", "version": "repo-lines-v1:sha256:d65df4f7d8a51106465aa35579f8737ba749b01ce8e5a297b156f48b73cde070:eyJzZWxlY3RlZExpbmVDb3VudCI6MjgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQyMDQ3NjYzODdjNzE0ODkzYjdiZTA0YTBjMzdiM2RiYmMyM2MyMGU3YjJmMzgzZWFiNjc3M2RlMzQyMDMxNmIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ1ZjQ5ZWI0NjVhZjcyYTdjYTQyNTU3NTE5MGQ2ZGUwZTEwZTllNWY3YTJjMzc1ZGRmYjQ5NmFiY2JhOTAxMGYiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImY1NDhiZWY1MzdjMDk5NjEzNDNhYzg0YTM5MTI2Nzk5NDhhMDQ4M2UxZWNiYmNmNzBiNTc5ZGZjNDljNjYzOTIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjI0YjAwMzU1NGEzZTBhYjRhOWM2MGM5ODRhMWQ1ZGU5NTRkMGEyNWQ2NGJlOGQ4NWE4MmQ5YmNmNTMyNTdlODkifQ" }, { "resource": "repo://src/autoreply.rs#L336-L379", "version": "repo-lines-v1:sha256:d5ff8e0615e8b48256c14bd7751292dd94626fd4c21d40b36d73c5e2f3cb8740:eyJzZWxlY3RlZExpbmVDb3VudCI6NDQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjZjNDVmNTRiYjMyMGQzN2U2ZjZmZGJjYTUzMjBlMmYyNjI1ODJmODkwNzlhYmY1ODJjNjI4MjgzOTM5Zjg2ZjciLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImY5YWU5MTBkNzg0M2M3YWNhZWUxMGFhMDhhMGE2ZGRhYzFhZjhjMWExMjc5ZDQ2MTRhOGNhODViOTgxMmIwODkiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjQwNWQ4YWU3NjdiNjQ4YzZmM2Y4ODE1ZDZjODQ1MjFiOTQ5MWVmZTEyNmRiYTVmZjU0MWIyMmJjNWY3YjllNWQifQ" } ] }, { "id": "claim_37fd6eca27b74d1eb20276bf635feac0", "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.", "evidence": [ { "resource": "repo://src/app.rs#L654-L673", "version": "repo-lines-v1:sha256:0a937f62450210fb1b4a45c2eb392c8533cab8fc5e7f2ca88caec3ba64669dbb:eyJzZWxlY3RlZExpbmVDb3VudCI6MjAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImZkMjA2ZWQ4NGMzNGNhMWE0ZmNmZmQ1NmFlOTBiNDgyZDIyNGM2OWQ0ZmRlMDY4MmI2MTllODNlMDRlNWJhYjYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjEyZTA5MzVlNDEzNWQ5MWEyZGFlMDUxOGE3ZTY5NjQ0MmIxYmM5ZGYxOThiNDA1ZmVmMGQzMjUwY2VmOWU1ZWQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImQwMjI2ZGQ4YmZkY2JkMDhlNjUxMjUzOGY4MmU5YWNiOTEyNzg2NTgwNDEwMmQ2YjRlMzQ4NmRmMjU4YjMxNmYifQ" }, { "resource": "repo://src/autoreply.rs#L159-L170", "version": "repo-lines-v1:sha256:50d1a6dfe10b9769d40a33924bcb0bf9d4aa264c3e7775b149a95cc7fa629e6e:eyJzZWxlY3RlZExpbmVDb3VudCI6MTIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM4NmEyNGE3ZTg2NTVkY2M2ODIzMDg0NGM1ZGNjZTA5ODgzNDU1MzFjOTZlNjdjZTIxOTZkMjU1Mjg3NGM2MTMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRiZjcwNGZiMzY2MTg3NDdmNjJlYTQ1M2MxMDg3ZGNiMWVjNDZlYmYxNmJjNjFmMDg5MWZjMjhkZGNiMDgzYTIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImY4OGMyOWJiOTczMDg1Yzk0N2E2NWRmM2MxMjU0NTI3ZTA0MGFiZWFlMmM2MzM3Mzc3ODA2NjA4NDYwNjVhMmIifQ" }, { "resource": "repo://src/autoreply.rs#L438-L457", "version": "repo-lines-v1:sha256:9a7559f07b9cf4dc7eb7bab1c174e1b73cd3a491c63f7dcb65449c9d15f42438:eyJzZWxlY3RlZExpbmVDb3VudCI6MjAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjFlNmM4N2FkOGEyMmJiNTMzZmQ5ZjQxZDk2ZTkyNTFkNGUxNTZlY2Q2YjIwNjcxYzVhZmYxZDM2ZTk3YTVjOWIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImU5NmY4Y2IwODNmYTgwMGE0ZGNkMjk2OTcyMmQ3YjkyNjg2YWRkOWViZTM2NTU0OTJmYTY3MmIxYTdjZWQyNDIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjZhZjExM2E5ZmE3NTZlZTI4ODYzNGUyZTYzOWM5M2Q0OTJkOTRlMGMyZjRmZWE0ZTJiYjFlZjA3Y2EwOGFmOGUifQ" } ] }, { "id": "claim_aa274cb1145a4194b4f510ea3fb7f9c3", "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.", "evidence": [ { "resource": "repo://src/app.rs#L1316-L1324", "version": "repo-lines-v1:sha256:a271b225aba65e2765d3d7b1ab0f8a02114cdf60cf3a5298066b80ba40c06576:eyJzZWxlY3RlZExpbmVDb3VudCI6OSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiZmI5YzZkZjEyNGI2NDgxODMyZDk5NTgyMjRmNzFjYjRjZDJjM2Y3YTU3Njc1OWQ0OGM5NjBkZDNmZTE4OTliZCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDEyY2EzNDVjY2Y3NWJmOWMwODA2YmNlNjk1YmU4ZGU4MDhiNzk5ODQyNTFhN2E1NGQyMDJjZjYxMDFkZDQ1MSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiZjk2YWY2OWU3OGEwNDBlNTAxNjM2YjMwNDhkNGVjNTQ2Yzc0OTU1ZTEyN2IyY2M5OTU4MDFiZDI2YWM2NjZkZSIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiOTViMzliZDc5NmMyYjVjYThiYjhjMWEzNjUzODk5NzY5MGE0OTE5ZDY5NzVlNGMxMGZiMWE1ZGE3MGU1Mjc3OSJ9" }, { "resource": "repo://src/app.rs#L465-L497", "version": "repo-lines-v1:sha256:49bdb09f74d399910bca1c218286bf995bae8e8457efe83cb97034814f6d67d5:eyJzZWxlY3RlZExpbmVDb3VudCI6MzMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImJkOGRiMTAzNzg3MWI3NGU1OTVmYTZhZThkNjAwNTE4NDIyNDNkNzJkODZkNDM2OGUyZGU1OWI2MTdkYWM2NmIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImJhMGM2MzVlMzlkMTFmNTgyOGE1Mzk1MzhkYjE0ZTdlNzU1YWFiMzlhZDNhNzljYmM0ZTFmZTQ4ZDgyZGZmYzIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjBhN2YyNDA4YTExOTJiY2VmZTI0ODJhNTg2MGM1MTVhMmQ4NGIxMzQzZTE1ZDdmMGVmNGRhMTA0YzY1ZTJiM2EifQ" } ] }, { "id": "claim_d7ecd7ebb6e94bf093bec3de37a63db1", "statement": "Each image download makes up to 3 attempts, each abandoned after 60 seconds, waiting 2 seconds times the attempt number between attempts.", "evidence": [ { "resource": "repo://src/app.rs#L1336-L1362", "version": "repo-lines-v1:sha256:503c0157ef6bb7cec106cb2a0c2a270703d688580b0dcdc4e710dc7b9dc1fc08:eyJzZWxlY3RlZExpbmVDb3VudCI6MjcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjZmMjVmNjQxZDQ5ZGRkYTllYmMyNjgyOGViZDJmNzM2OWFkNDBmMjBmODRhNDAwZDFkYjliYzE1YTNlMmQyNTEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjAwOTlhMTBhNjE5YjUxNmM0MDM5NjFmZmQ4NzhlYWJiMDM2NGRjYjEzYjcxNWFlODI5OTg2ZjhkY2VjMzA1ZGIiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjY5OTNmMTFjZmFmODg0N2M5ZTgxNmQ0NDhiMWE0MzZiNjlhMjk1NjQzZmVmMGRlNDliYTMyY2FkYmFjNTIxM2UifQ" }, { "resource": "repo://src/app.rs#L64-L72", "version": "repo-lines-v1:sha256:165e39ca6d47b5010cdaa8900029d4f8be1acafd1768902f613c6b9232914b22:eyJzZWxlY3RlZExpbmVDb3VudCI6OSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiYmYzYmQxMmI3NWRiNDMzNWFmZjQwOGNhYzM3YjU4YjIxZDEyYWZlZTZlODgyYWM0ODlkYmNlN2JlMWJjOWYzNiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDg4NjhmM2IxNzUxODE3YTdlZTgwYTMwNTU1MzhhNDBmNmU4ZTlhMmE3N2QwZTZmNDYwMGIwOTAwOTkyN2I2YiIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiODQyYTI1MTg4ZDEyNDhhNDk1MmZjN2E4MGI2OWM5ZThhNzE1NjJmYjhiOGFiNTQ4MmU5MGRmYjQwZDUwOWUwOSIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiYzhkMTA1ZjI4ZjVmMWMwMzFmYTE3MjY3NDE4MDgxN2NkZWUxZDJlODBiZmRiNWM4MzUzOWY3YTFhNzY5MGUwYSJ9" } ] } ], "verification": { "by": "openwiki/0.7.2", "at": "2026-10-21T21:49:12.291Z" } }