| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- {
- "schemaVersion": 1,
- "pageVersion": "sha256:659021f213da32179df3e732784be9d211b7b699c07342e5abae11b3d55b0d63",
- "claims": [
- {
- "id": "claim_3b56098917ee4e02b2f8ede066a9921a",
- "statement": "The web control panel is started only when web_port is configured, binds on 0.0.0.0 with no authentication, and serves requests on a dedicated wh-web OS thread one at a time.",
- "evidence": [
- {
- "resource": "repo://src/main.rs#L70-L79",
- "version": "repo-lines-v1:sha256:54c6448bd45241fd4b90479b1a91e2fd528e7a38f4ac5d543eda728fbf3756d5:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImYwZjA3MmY1NzA4NTRiMGM0ODg3YmRlZDU4YzU2NWRiZGExOTNlYmY3NGIwODZmMjYyNTFmZjZhOTZiMmJiYWMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImRmYWI3MTBkZGY3ODU5ZTU3NTc2NGE5MTNhMDAyYzc0NTg1ZmZhNzAwMTUxMGNiODgxMWRhODNkMmNmNzRiMzQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImI1OTAxZTAwNGRkYTg1ZmUwNjg0OGVkYjhkMWIzM2Q1NTNmYWM4ZjkyMzZlZTFlMjlkZTNmNGUzMWRmNTM4NTkifQ"
- },
- {
- "resource": "repo://src/web.rs#L1-L17",
- "version": "repo-lines-v1:sha256:525008f2abbc8625d414d67af1579c526c618328ba3286794ced9a8b4448a47a:eyJzZWxlY3RlZExpbmVDb3VudCI6MTcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjhiM2Y3MzZlODVhNTljMGQxNWY5NTM0YmZmM2ZhZjEwYWQ5NDBjZWQwODY3ODBkYWU1YjNlZDk2NjEwMjMyZDYiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjhjNDU3YTVkZDNlNWJkNmQyZjgyZTU5MmRhN2IzOWQ3OTAxN2U0NzZkYjc0YjNhZjA0MDMwNWIwYmIyOGUxZTQiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjowLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImU4ZTEwNzM3YjM4ZjIwMmZmZTRjOTFhYTU0N2IzNmEyNzA4NDQ2ODQ4MTVhYzJiZWZlMzc4MmNkMjBhMmNkZjgifQ"
- },
- {
- "resource": "repo://src/web.rs#L160-L186",
- "version": "repo-lines-v1:sha256:f8b34287072ae980835326b6b58d084cb50595fbb20e0a5a69a07e2a5107e4a1:eyJzZWxlY3RlZExpbmVDb3VudCI6MjcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjhhZmRhOTQ2N2Y1YzJkNWJhYzg1MjVjYmQxYzgwMzlmZDYyYjk1NDJjNDg0ODlmODE2NTIxZWJlM2U1N2YwM2QiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjljYTdmZjM2YjFmNjM2MDdlZjI2OTZiMWMwODk5Y2ZiMjlhOTc5NzU4ZGZkMTYwMGYxYzAzMGE3ZDk4NzkyNmQiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjA3ODdlYjhkMTU5MmY2NGVhMmE3M2NhNjA4ZmUyOWRkNjhlZDJiNmYyMDY2MmRlN2MxMmYxNmFjMTEyZWI0ZTIifQ"
- }
- ]
- },
- {
- "id": "claim_0efd2e13edc54ed3a8fd6f3d576511ad",
- "statement": "The server exposes GET /, GET /api/state, POST /api/global, POST /api/chat and POST /api/quit; any other method/path combination returns 404, and the query string is ignored.",
- "evidence": [
- {
- "resource": "repo://src/web.rs#L19-L28",
- "version": "repo-lines-v1:sha256:549434436d6d39319733236098427e43f3ff8b065cef72fe6bcbe3f13a77b8f9:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjM5YzE3NTNiNjYzYWNhNDFjNDA1MzRiYzljMGQwZGE0OGQ1NTc0ZGIxMTU2MjdiZmVlYTViY2RmYTJhMjQ5MmMiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4ZTIzMjgxODM0YjFlNjMyZTQ4NzljY2JmZGIxMjFlMDdhMmNiNGQ5ZGFjMzIxYTdmMGJlYzg1NmRhMmQ4YTciLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImNkNDMyMjkxNTVmYjM5ODIzZjhkMmY1ZDI1MDFkNzM1NzNiNjI0ODI0ODhlNWRlODg2ZGFiN2EzYTc1YjBmYmUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjgzYmIyNTJjMjU1NmVmMTM5MWJjNDU1YmEyOTAxZWQ5MTczNmQ2Njc2MmEyZThmYzExMjJlYTFhMWYzYjVmZmQifQ"
- },
- {
- "resource": "repo://src/web.rs#L313-L334",
- "version": "repo-lines-v1:sha256:1141f32c78ab436faa724518545a117d98eccf70ff4dc6295b1d0ad5be7cef11:eyJzZWxlY3RlZExpbmVDb3VudCI6MjIsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjkxYTU1YzdlMmE3ODBiZDViNzE1ZDY2MTYyYjI5M2M2ZTI2MWY2MmI2Mjk5MzY2ZWJiNTZmZjhhZTNhMDlhNDEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjAzYjZjY2UzZDJjZWYzY2RhMWVkNWEwMzM5Y2QwMmM1ZGViNDRhNzBkMGYxNDA4MmJjZjNlYWYwMDJkN2U3NDkiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjQ0NGIyYWRlMGYzNzRmOGZjZGYxNGM5MTQxYzNkNTMxYjcxMzgwN2ZkZTc0NzI1NTZiOWJlNDI1MjE5NzM4OWYifQ"
- }
- ]
- },
- {
- "id": "claim_696ce9a26b74435f8d5439a5f1e4ab6b",
- "statement": "Every POST route requires the header X-Wh-Request with value 1 (name case-insensitive); without it the server returns 403 and forwards nothing to the application.",
- "evidence": [
- {
- "resource": "repo://src/web.rs#L140-L148",
- "version": "repo-lines-v1:sha256:988e5ef7a69e7a10a978cd986e4879843f82b485ee9ffcc5ffc85f1844b0348e:eyJzZWxlY3RlZExpbmVDb3VudCI6OSwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiODU5OWJkMWM5YjdhMTQ5ZjczYzQzMjQ2MjljMzczMzFmOGNlZTM1NDVhN2IzYWUwNjk1ZWM0NmFlZjBiZmJjNCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDEyY2EzNDVjY2Y3NWJmOWMwODA2YmNlNjk1YmU4ZGU4MDhiNzk5ODQyNTFhN2E1NGQyMDJjZjYxMDFkZDQ1MSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiNGRhMDBiODU3YTc3N2IyNzQwZmQxZjg0MWIxZWQ0MzcwNmYwOTc5YWEyNzE5Zjk1YzJjOTJjMGNkYWEzOWJkYiIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiNGNmODQ4NzQ5MjczZDdkMWJlZDQ1ZTg2ZTNmMTU3ZmY3NTE0MjIyMTFkMWE3YzFlM2RhZDIzYWNkODNiZWRmNCJ9"
- },
- {
- "resource": "repo://src/web.rs#L193-L205",
- "version": "repo-lines-v1:sha256:6f08617663cf012d21e1dd6a16a4f2b6c0c1aeb0e6816a98e6f158ac3e8b7e6a:eyJzZWxlY3RlZExpbmVDb3VudCI6MTMsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjY1MDQ0NWY4YjI4ZjA5MGJhYWIwOGMyZjcwZGM5NGU5NzE4OGVmNzU4NjYwOTYyNDlkYThkMTcxZTA4MmU3OWEiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjA4ZjhkYWY0NGE3ZDkyZmQzZWFkMGFlODI3NjVhOWQxMGEyN2FmYmEzODhiN2NhYjU2Y2ZlNjk5OGUxODU3ZmUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImUyNmM2NzRiYmY2YzlkMzNlZjM0NTEwOGJhYmYzMmFmY2UxNzc1OTMwYjU0Y2JkOWU5NzkyNWQ3NDI2NWEyNzAifQ"
- },
- {
- "resource": "repo://src/web.rs#L336-L345",
- "version": "repo-lines-v1:sha256:f6fc6a9f07a89bf80251845896e2bb83deb08f3b693960e20ec04eda2ee7cab9:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjE1NzEzZjExZDY3OGYyYmQ4ZDhjMWUyYThjNmRlMDg4ODg4NDQzZWFkYmQ0NTdhZmQyMmJhNzlmMjY2N2RjYzkiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjE5ZTc2MzU1Y2YxMTk5NDgwYzNmOTk4MzZiMTQ4NmM4NDFkODkxZmFhZDkwNGM2MDhlMDkzMDIyZDM3NTdhZWUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjhiZGE3OWRiOTQ2MjJmMThhNzVjMWU4YmFmNzVlMTFhMWJjOGVmNzg4Yjg2M2VkMmQ2M2RhNTUyZTc0MGQyNDAifQ"
- },
- {
- "resource": "repo://src/web.rs#L46-L49",
- "version": "repo-lines-v1:sha256:c5e290866be837c820ed79dff719f958fe09c524ae81a8c5816c86113418fbf4:eyJzZWxlY3RlZExpbmVDb3VudCI6NCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMWM3MTlmN2I5YmZmYWVhN2I5MjhmMmE5MTg1MTA1NzQ3ZGJmYzg0YTI1NzNhZDFiNmI5NzQ2NzFlZmY0OWNlZiIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiZTJlMmMwNmY2ZDg3NDRmYzBkODEyZDc0YTAwNWJmZDhhM2U2MDc1MTFlZmM0ZWMwNDQyY2E3YjQzNGQ5MDYxNyIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiODU5M2I4MmRmMTExZjMwMmY3N2U4ZDI4N2EyNGU0NGZhNjVjYTMxYmZmNGYxNjFkZGIyNzgzNDc5MjI1NmRlYyIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiNzc4YzAzMWRlMTc3YTZlMjdhMWQxMzY5OTEzNzBlYzJhOTQ3YTBjZTRmZjQ0MmI3NjQzZmYwM2Q2NTZjZmI5ZSJ9"
- }
- ]
- },
- {
- "id": "claim_1687a5d10c5c40f4bb1f7afee48bce96",
- "statement": "The /api/chat body is the chat JID as text, limited to 1024 bytes; oversized, empty, unreadable or non-UTF-8 bodies return 400.",
- "evidence": [
- {
- "resource": "repo://src/web.rs#L221-L224",
- "version": "repo-lines-v1:sha256:4ec9fcc7650183cfb21c285788334f7540990a3b6ecc6c0102a5483b1042f772:eyJzZWxlY3RlZExpbmVDb3VudCI6NCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiOTllNmY5YjI2ZmYxNmJlMThiYjFjOTA0Y2MwNWJhZjFiNTEzMzFhNjkwYTNhZjc0ZGYxNzJmOTdiNzQ3NGI1MSIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiMWU2NzNhYmQ0NTdhOTdlZWExN2E2MDA2MmViMGZhZWE2YmRmMDk0ODY4Y2M2YjhmOGMwZWJkYTJmNjFlZDQyZiIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiYmQ3ZTRhZGRhNDk4ZTkwMmJjZDA5ZGI5YzQ5Yjc4ZmE2NGEzNDk0NjgxMGUyZDhiOTBiYThjOTVkNmRkYTNjZiIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiMTcxMDE3YWI5NThlNTM3MjhlNmNhMTY0YzEzOGY1NzNmMjRhOWZjZDVhNTQzOWQwNTY2MzA1ZTE0ODQ2ODJhZSJ9"
- },
- {
- "resource": "repo://src/web.rs#L30-L31",
- "version": "repo-lines-v1:sha256:0a12154e8c7fb736954719a1bc6bbb6919359fd03e35f9e1fc18873bf3953b71:eyJzZWxlY3RlZExpbmVDb3VudCI6MiwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiM2Q1NzUxODkwZTcxOGQzNTJkMDE1MTI4ZTdhYTNmOGZlYjgwOTg0MGFlMWI4OWFjNDlhNDFlMTViMjZiZjg0NCIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiODQ2NTQ3N2VkNjEyOTdmNGI4NTAyYmEzNmU4YzM3Nzg1NGFlM2Q4YzgzMDA1YmExOTI1ZDA2Y2Y3NTBkNWU4ZiIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiNzliYmEwYTMwZjdkZGRiODY5Njk1NTQ4NTc1OWE1ODg3M2YwMjM1NmVlNzQ2YjdhMjFjZmY1YmZjODhlODIyOSIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiNzdlNGFiODViNjRhOWM4YTlkYThkNWI5Yzk0YjViZjgzZTRlZjhlNWNkNWMxNjY1MDhkODYzYTJlYTI1ZDVkMiJ9"
- },
- {
- "resource": "repo://src/web.rs#L347-L364",
- "version": "repo-lines-v1:sha256:ae5215de4d7affbc92b010adc8ddd1dfad664b5e5f3aeb27dba89330c0f5036d:eyJzZWxlY3RlZExpbmVDb3VudCI6MTgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjEwODk2MWUyZDgwZWE0ZWQxNThjMDExZjkyYzQ4YjEyYWQ2ZjVhM2FmMjdlMjkwNDA5MDkyMTIxYTVhOGVlOWIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImEyMzhhMjNmMGFkM2ZkODI4NjY4NzhlZTcwZmI0ZmQwYWVlODlmODFiMDJmZTFmYmQ0YjVmNDAyNzI2MzBiMTkiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjdiYzk4ZDZiMGRjNDkyYzUwMTZkZjEwODA1YTNhNTRlYjljMTg0YTVhNjEzN2U3ZjRiZWNmYTBjMjIwNTUwZDAifQ"
- }
- ]
- },
- {
- "id": "claim_6fa3690efd134dd3822d716fed56c8bb",
- "statement": "API requests are forwarded to App as AppEvent::Web with a oneshot reply channel, and the web thread blocks until App returns the WebState snapshot; a closed channel or dropped reply yields 503.",
- "evidence": [
- {
- "resource": "repo://src/app.rs#L796-L812",
- "version": "repo-lines-v1:sha256:6905da13ba37beaf073ac6f3f6eb07a12c4b6a34bcf57e4beca54f40fe6b64b0:eyJzZWxlY3RlZExpbmVDb3VudCI6MTcsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjA3YTEzOTMxODdkZWNmZmM0NzMzYzYwY2FiYjA2MTkwYjdkYjAxMjJjYWEyYWM3YjRjNGUwNzBiNzIxNTk1NWQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQ4OTNmNDBlMzc4MWViODk2YzgyZDA0NmEwODA2N2ExMWUzNWNkZjJmMWRmYWYyNmZlYTkwYjhkYjY2NzY0MTMiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjM2MGUyOWExOGZkNDE5NDVjMjM3NTgxMzM4ZGI3NWFjOTIzYzYxYjVmYmFiOTNlOTM3ODdlNWJmMGMyMjk4OTciLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjQ0NmM2OGRiNzFjZDkwMmMyZDMxY2QyYjQ5Y2MyM2ZjYzFmNjVlYWRlY2JlZGRmNDFhOWEwZjVhNGIxMzE1MmQifQ"
- },
- {
- "resource": "repo://src/web.rs#L114-L121",
- "version": "repo-lines-v1:sha256:9dff2fd116ff7266dafbe9bcec01fa24bb6ab864bc1c054f5a6fcb6449d60e7d:eyJzZWxlY3RlZExpbmVDb3VudCI6OCwiZmlyc3RTZWxlY3RlZExpbmVIYXNoIjoiMDgxZDE0MGYzZjljNjA2NWEyZmE5ZjY1ZTQwMmNjNjA0ZThkYmJhYmZlODc0YjAwODI5ZmNkNDhjZjNhY2ExNSIsImxhc3RTZWxlY3RlZExpbmVIYXNoIjoiNDEyY2EzNDVjY2Y3NWJmOWMwODA2YmNlNjk1YmU4ZGU4MDhiNzk5ODQyNTFhN2E1NGQyMDJjZjYxMDFkZDQ1MSIsInByZWNlZGluZ0NvbnRleHRMaW5lQ291bnQiOjMsInByZWNlZGluZ0NvbnRleHRIYXNoIjoiODZlMGVhYzgyMjFhNzg0OGFhZTUyYTNjNWMwMjM3YzFjMzAyMmU1MzU0NTU2NzgzOGJkMDMyYzhhNWJiYTQzZCIsImZvbGxvd2luZ0NvbnRleHRMaW5lQ291bnQiOjMsImZvbGxvd2luZ0NvbnRleHRIYXNoIjoiZTY5YTZmM2ExYjQ0MmYyNDllOTIzNWEzMTUxOWNkM2VkZTFlMDAxZWMzYzgxZmJhMWJiM2FlMTVhMjIwYjhmZSJ9"
- },
- {
- "resource": "repo://src/web.rs#L248-L261",
- "version": "repo-lines-v1:sha256:e50fde998c7b07b6e3110582bc1a3d6bad6d7a63d11a8ce8afdbe7deee340a4d:eyJzZWxlY3RlZExpbmVDb3VudCI6MTQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjA3NTc5MmI3MWNhYTk3ZDhhNGNiMzI2NGVkYTgxMGE2ZTkxMmY1NTFlY2JkNzAzMTQxMTg3ZmQ0MTZjMjM4NzQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImYyYjNmMGVkYWNhNjE2MDgyMThmODc3ZmEzM2NiNzJjZTc5NzMyZWJhMDc0ZjBkNTUxNTc3NWY4OWUwZTAwY2QiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjgxY2RjMWUzZDg3ZmIzMTllNzNjMDBiNTc4YzJiMDNjY2EyNGUyOTM3NTcxYzNhYTczMTI4NDhjNGZmNTFiMjIifQ"
- }
- ]
- },
- {
- "id": "claim_92efe37fdfa340458d352cfd0c9d653f",
- "statement": "The quit route writes its 200 response before sending WebCommand::Quit without waiting for the reply.",
- "evidence": [
- {
- "resource": "repo://src/web.rs#L229-L246",
- "version": "repo-lines-v1:sha256:155b300223ddf57fcf0446c63d0fe37474bd4a7d5c77f97cb07f527646eac78d:eyJzZWxlY3RlZExpbmVDb3VudCI6MTgsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImE0YWQxNDUzZDYzOTBhMjY0YWY3NTcxNTJlZmI2ZDdhMDM1YWQ4YmQ4MTE0ZWZkMWRhZDI4MzAzZDM4NGViNmIiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjE5ZTc2MzU1Y2YxMTk5NDgwYzNmOTk4MzZiMTQ4NmM4NDFkODkxZmFhZDkwNGM2MDhlMDkzMDIyZDM3NTdhZWUiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijk2YTMwMjE3MjllMmY0MzA2ZTIwOTY5YTU0YWM4YjFmMTA1MzIwMmM4Mzk4NWM5NzA4OTU3NmM2NzQ4YzE1MjAifQ"
- }
- ]
- },
- {
- "id": "claim_4ce4cb65f51445c9b7ad852328ccfa6f",
- "statement": "The browser page polls /api/state every 5 seconds while visible, sends the X-Wh-Request header on every POST and orders responses with a ticket counter so stale polls do not overwrite newer toggle results.",
- "evidence": [
- {
- "resource": "repo://src/web_page.html#L330-L339",
- "version": "repo-lines-v1:sha256:c9aeb2e41ffe90a632e19e8ce8ae720ca511a700fb78ede63aef855669e7593e:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6IjlhNjA4YjllNWZhNTllMjI0MmFmODdlODAzOTJmMDI1ZmJkNDgxZGFiZGE2YjVjMmZiOTI4N2YyMjk5NzFhNTgiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjFmYTJjMTFkNTdhZDg3YjUxODk3NWM0MjEyNmFkZWNjZjI2ZDgwY2NlNjhmM2E1YzEwNDkxNzViNDIxODQzZTIiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6IjliODljNTU5ZmFlMWEzMmMwNjAxNTg0M2VlNmFhMzFlN2Q2NTNiY2VkNmMyNTZjOGRhZTE5ZWFmMDY5ODBiZmMiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImIyNjg3MzIzNmVkNThhZGQ4N2E4NWJiMzQ0M2NiNGZiOTY0NmIzOTcyMjcwMzAzZTIyOTM5ZDE0MTI1YWYyMTAifQ"
- },
- {
- "resource": "repo://src/web_page.html#L373-L382",
- "version": "repo-lines-v1:sha256:7b6d2b04110398692241256da2fc7b0be08d5ec5f56a928bacf625c9b8bfcb56:eyJzZWxlY3RlZExpbmVDb3VudCI6MTAsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImVhZjIyY2YwNzMyNTkyYzI0NzE0MWNiZTYxZWZhMTEwMTI2MTJmNWEzMTIyYjlhZjliYmFmNTJmNTcyNGQxOTQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImZiNTgwZTk2NGY4M2E0NzNmNDNkNDQzODQ2Mjk0OWQ2OGI1NjAwZmRhNzg3ZjE2Mzc0NWQwMGRlODljYmYzNmEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6ImNlNDhiMTQzZTUxMjVjNzBhMjUyNTdmMTY2MzI2MDE1ZTBhYzdiYTBmMzlkOTY1ZTZjMmY1YTczZjlkZDVmYTkifQ"
- },
- {
- "resource": "repo://src/web_page.html#L534-L577",
- "version": "repo-lines-v1:sha256:f288c654dec0232c30b73b2211301190731dcaa22175fa8f43cdc6415fa9fd0a:eyJzZWxlY3RlZExpbmVDb3VudCI6NDQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImVhZjIyY2YwNzMyNTkyYzI0NzE0MWNiZTYxZWZhMTEwMTI2MTJmNWEzMTIyYjlhZjliYmFmNTJmNTcyNGQxOTQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImUwNTY3M2NkNWYxZWYwNGEyMTJhOTRmZjljNWU4ZThmZjg2OTI1MzRiMjU5ZGVkYTYyMTNjYjhlMGE5OWRlZGYiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6IjhjMjA2ZGQ2YzMwMmIxNGFiOTBhYzI0NjM5YzgzNGExNDhlMGMxMDZmMDAyMWRjZjYxZGMyODVhNjk1OThhZGQifQ"
- },
- {
- "resource": "repo://src/web_page.html#L612-L635",
- "version": "repo-lines-v1:sha256:54837e3c49fb90fcadbee23744b947ae4f8ab37b1f75712831b41a54ad5bc7b0:eyJzZWxlY3RlZExpbmVDb3VudCI6MjQsImZpcnN0U2VsZWN0ZWRMaW5lSGFzaCI6ImVhZjIyY2YwNzMyNTkyYzI0NzE0MWNiZTYxZWZhMTEwMTI2MTJmNWEzMTIyYjlhZjliYmFmNTJmNTcyNGQxOTQiLCJsYXN0U2VsZWN0ZWRMaW5lSGFzaCI6IjQxMmNhMzQ1Y2NmNzViZjljMDgwNmJjZTY5NWJlOGRlODA4Yjc5OTg0MjUxYTdhNTRkMjAyY2Y2MTAxZGQ0NTEiLCJwcmVjZWRpbmdDb250ZXh0TGluZUNvdW50IjozLCJwcmVjZWRpbmdDb250ZXh0SGFzaCI6ImZiNTgwZTk2NGY4M2E0NzNmNDNkNDQzODQ2Mjk0OWQ2OGI1NjAwZmRhNzg3ZjE2Mzc0NWQwMGRlODljYmYzNmEiLCJmb2xsb3dpbmdDb250ZXh0TGluZUNvdW50IjozLCJmb2xsb3dpbmdDb250ZXh0SGFzaCI6Ijc0YzRlNDU1MWQ1NTYyYjdkNzM1OThiMTYzOTIyNmEyOTE2MDJmYmRjZDE4OWM0NTliYThiMmQ3OTkwYjIzOGIifQ"
- }
- ]
- }
- ],
- "verification": {
- "by": "openwiki/0.7.2",
- "at": "2026-10-20T20:27:06.515Z"
- }
- }
|