Raw commit messages, newest first. Auto-generated on every production deploy. · TREAD audit log · Repo
a776c90b61 Merge remote-tracking branch 'origin/main' into staging93f68f2891 Document the two layers of monitor file change warnings61be727886 Merge remote-tracking branch 'origin/main' into stagingdfc5e7e227 Warn only about recent monitored-file changes in the browser1864ca2c92 Merge remote-tracking branch 'origin/main' into staging602af9aadd Merge remote-tracking branch 'origin/main' into stagingf8c7b15be9 Run analysis and stamping off the event loopeb982d8a0c Pin deploy runner and bound dependency install time14382cd451 Merge remote-tracking branch 'origin/main' into staging048a9372f0 Warn before sealing on the test network8caba3c966 Retry transient Gemini errors during analysis1942a802eb Merge remote-tracking branch 'origin/main' into staging073ab4ea91 Log swallowed analysis failures and explain AI quota errorsd59f47466e Merge remote-tracking branch 'origin/main' into staging9d09c36e8f Run blocking URL fetches off the event loop0f446b8b43 Explain accessible evidence collection and neutral verification1f76ab217f Merge remote-tracking branch 'origin/main' into stagingec9323bbbf Explain long-term storage economics behind Arweave seals8876d81f16 Explain evidence access and permanent seals on landing pageac3192886c Merge remote-tracking branch 'origin/main' into staging67a79d8b10 Soften landing headline typography3bac332c10 Restore original landing width and application navigationaa8a4eff97 Reframe landing page around verifiable evidencea7707701dd Merge remote-tracking branch 'origin/main' into staging84146aa9c0 fix(tread): hae tuotannossa oleva commit suoraan tuotantodeploymenteista4dada71a1d docs: note signed agent cross-review attestations72befb31dc Propose private evidence repositories for research review702163f1c7 Document evidence package contributions through pull requests607e160ab2 Fix malformed and stalled source package transfers76f8b53a1a feat: record scoped research reviews and add contributor entry guide533bf30eae feat: add bounded research tasks and review verification scope1cd2ebc910 docs: add research criticism PR workflow for agents and humans0d5dd26c0f feat: record research activities and human decisions in RO-Crated4457ba9f8 fix: normalize research input line endings for reproducible manifests865df25d45 feat: versioned research package with RO-Crate, renderers and criticism trackinge6c0fd194d docs: Research Appliance READMEen ja MOBILE_APP.md:henb7eaa062cd feat: Research Appliance vaihe F — puhelimen capturejen leimaus (device_captured)34cfef18a2 fix: katselmoinnin löydökset — luovutuksen ohitus, kehysten peitto, muuttuneet elementit, iso kuvakaappausa69c5947b7 feat: Research Appliance vaihe E — vientikäytännöt ja salaisuuksien pyyhintä21978ec6e8 feat: Research Appliance vaihe C — ihmiselle luovutus ja puhelimen ohjauspaneeli04935f1d23 Merge remote-tracking branch 'origin/main' into staging4f0f51e7a9 Merge remote-tracking branch 'origin/main' into staging33700d9a44 feat: Research Appliance vaihe B — agentin ohjaama puhelinselain ja selain-capture8647f46b47 fix: uusintasiirto tarkistaa arkistokopion tiivisteen ennen puhelimen kopion poistoa9b26f55fbc feat: Research Appliance vaihe D — pakettien siirto puhelimesta PC:n arkistoon2b34394a97 fix: PC-paritusten poisto mitätöi myös avoimet USB-istunnot091a99b485 feat: Research Appliance vaihe A — USB-silta, paritus ja device_status80dc180299 Merge remote-tracking branch 'origin/main' into staging566b21d188 feat: MCP-palvelin (/mcp) ja stamp_citation-työkalu agenttiliitännöille7429999828 Merge remote-tracking branch 'origin/main' into stagingf1cba34824 feat: valikkolinkit avaavat oikean välilehden (/app#<välilehti>)a9d38f21b4 fix: palauta päävalikko etusivulle (landing.html)8ade4761b7 docs: lisää historiallisen sähköpostitodistuksen arkkitehtuurikuvaus2dc21acbdf docs: add Bcc email notarization plane216f8fa90 docs: lisää /api/stamp-rajapinnan arkkitehtuurikuvausa601ba848e fix: korjaa neljä katselmoinnissa löytynyttä bugia historiallisessa sähköpostitodistuksessa9e1f4a20aa feat: kytke historiallisen sähköpostitodistuksen demo-endpointit main.py:hine2fb849a69 feat: lisää viestiluokan tarkistus, poista ihmistarkistusportti AI-arviosta21f914264c feat: lisää AI+haku-avusteinen allekirjoittajan luonnostelutyökalu48889922d9 fix: estä hallitsemattomat palvelinvirheet ZIP-paketin lukijassae020684550 feat: siirrä analyysileimat yhteen ZIP-pakettiin (stamp_format_version=2)f9fe7541f3 feat: lisää yksityinen todistuspaketti ja sähköpostitoimitus2a37e01db5 feat: lisää automaattinen changelog-sivu GitHub Pagesiin1b537072e4 feat: lisää Arweave-ankkurointi historialliselle sähköpostitodistukselle9d6ad24f34 feat: toteuta historiallisen sähköpostitodistuksen paikallinen pipeline337dd29aea docs: add historical email proof implementation plan55cc3d9b68 Merge remote-tracking branch 'origin/main' into staging4a427557bf Merge remote-tracking branch 'origin/main' into staginge8a248eea7 fix: selitä tab-stats-sivulla miksi vanhat painallukset puuttuvat aikaväleiltä3211fd50b6 Merge remote-tracking branch 'origin/main' into staging77d23fede4 feat: lisää aikaväli ja artikkelinäytöt tab-stats-sivulle8114c89ad8 Merge remote-tracking branch 'origin/main' into staging4c99c130e8 feat: toteuta meeting proof Vaihe 2 -- sensoritodistaja ja QR-paritus92df172707 docs: introduce Leima Mobile field evidencee4da1d6295 feat: toteuta meeting proof Vaihe 1 -- yhden puhelimen monikuvainen istunto3286a85726 test: add offline integrity and TREAD browser regressions5b0404738a feat: lisää meeting proof v2 -skeema ja jaetut ECDSA-testivektorit (Vaihe 0)a4408cae0b chore: lisää Android-sovellus versionhallintaan190b5918e9 style: pienennä etusivun hero-otsikon fonttikokoa667ecc842d redesign: etusivun hero konkreettiseksi esimerkkiraportiksi hash-kortin sijaaned7ce116b2 fix: rajoita evidence-uploadin koko ASGI-tasolla ennen multipart-parsintaa2f43b627a7 feat: lisää etusivu (landing.html), siirrä työkalu osoitteeseen /app365a632d20 Merge remote-tracking branch 'origin/main' into staging99bcd38b90 feat: estä push jos main.py importtaa committoimattoman paikallisen tiedoston8afa62e6d6 Merge remote-tracking branch 'origin/main' into stagingb0759289eb fix: lisää puuttuva browser_session.py — korjaa tuotannon 500-kaatumisen345bc1d1b1 Merge remote-tracking branch 'origin/main' into staging28c4ef7884 fix: näytä varoitus kun tread-monitor ei tavoita GitHubiab011541a70 fix: korjaa SSRF-aukko correspondence-checkissä, EML-rajanmerkin täsmäys ja PDF-allekirjoituksen verifiointiteksti707919d475 feat: lisää tab-klikkausseuranta (/track-tab, /admin/tab-stats)c0727d9427 feat: lisää EML-tiedoston lataus sähköpostivälilehdelle7269c1d9e6 feat: lisää verkkosivun vastaavuustarkistus — source-index.json + /check-correspondence20131ff9bd feat: tyylitellään verdict-PDF muistuttamaan enemmän UI:n HTML-korttia8bb3f3e942 fix: korjaa neljä bugia — PDF-allekirjoitusverifiointi, notary-liitteen hash, IMAP Seen-lippu, formaattihashjit manifestiin0960a35f4f feat: lisää all.zip-lataus, joka pakkaa source+verdict+manifest yhteen119369d4d8 chore: POIDE audit 2026-0854d327b4c7 chore: POIDE audit 2026-0720f0cbaf1f refactor: Arweave stamp sisältää vain hashit, web search queries verdictiina96c85ecd4 feat: lisää TURVALLISUUDEN-HINTA.md docs-reitteihin2882c4e889 docs: täydennä COST-OF-SAFETY.md — lisää puuttuva luku 6 ja laajenna käytäntö-lukudd2ce6dc70 docs: uusi luku 6 (LLM tilastollinen järjestelmä) + lukujen numerointi päivitettyb90fe8dfbb docs: korvaa optimaalinen turvattomuus → turvallisuuden optimointiee75742f14 fix: tallenna session-alun commit ankkuriksi localStorageenb71796e94c fix: laske KV-monitor-baseline TTL 7 päivästä 1 tuntiinade46e4ef5 fix: accept hiljentää github_monitor_changed-modaalin 24h kun kvChanged557e20c9ed Revert "refactor: poista pitkäaikainen varoitusten pysyvyyslogiikka"7eee9b4afa refactor: poista pitkäaikainen varoitusten pysyvyyslogiikka8bb1e0a409 fix: älä hiljennä kvChanged-vaaraa clientpuolelta77fc62035d revert: poista /api/reset-monitor-baseline — turvallisuusaukko9378213444 fix: älä re-triggeroi kvChanged-vaaraa hyväksynnän jälkeen + reset-baseline endpointf11467949a fix: lähetä pre-deploy signal ennen code reviewia, nosta TTL 15 minde399387d3 chore: add trailing newlineff3c53863d chore: whitespace4c6b6e691e fix: älä re-triggeroi sys_env_mismatches-vaaraa hyväksynnän jälkeenbc3ceebe38 feat: näytä deploy SHA footerissa cache-tarkistusta varten982bdf1f6e fix: NameError 'v' in sys_env_mismatches comprehension37ebf55c62 fix: wrap tread-monitor in try/except so Python exceptions return JSON295e206697 style: poista uppercase email-guide h4 -väliotsikoistab439c74243 feat: expose API error flags in tread-monitor, show specific warnings in UIacbebefbe5 Revert "revert: palauta tread_mismatch-triggeri ilman monitor.ok-tarkistusta (c5ca1baff)"a11c3259d3 Revert "revert: poista Vercel Web Analytics (3c1fc7cf0)"054718751c revert: palauta tread_mismatch-triggeri ilman monitor.ok-tarkistusta (c5ca1baff)ef157f008f revert: poista Vercel Web Analytics (3c1fc7cf0)f568dcb5b6 docs: päivitä CLAUDE.md push-ohje — staging ei ole merge-gated511a94d0c refactor: Jinja2 template inheritance — base.html, index ja doc perivät sen3070b3a0c3 Remove bundle_source section, renumber 20-22 → 19-21fb8c9191b1 Simplify bundle_source.py description — it's just a bundler02389b0624 Remove Data policy and ZKSE links from README contentscf3b441dfd fix: päivitä doc.html TREAD vastaamaan index.html:ää (modaali, JS, värit, analytics)1a984f8428 Add cost-of-safety and insurance-for-agents to docs routes3c1fc7cf0e feat: lisää Vercel Web Analytics index.html:äänc5ca1baff2 fix: älä triggeroi tread_mismatch jos monitor.ok on truea826df6148 fix: intro-teksti merkkimäärä-pohjainen (300+ merkkiä) eikä kiinteä paragrafiluku158956b4b9 fix: ota headingit mukaan intro-tekstiin, renderöi boldinabfc17b5e00 fix: muunna heading-tagit boldiksi intro-teksteissä936ba1c1ca refactor: yhteinen _md_intro, poistaa h-tagit ja hr:t kaikista intro-funktioista21b42a8a61 feat: ZKSE-lohko footeriin8f7d56badc fix: poista hr-tagi usecases_intro:sta8f5c9ed00d feat: Use cases footer-lohko, grid pysyy repeat(5/3)62f5517dbd feat: Use cases -lohko footeriincbd6299688 fix: piilota deploy_incoming-banneri heti kun ok:true98f481db3a fix: deploy_incoming TTL 900s → 300s700b3fc62c chore: poista ANTHROPIC_API_KEY env checkistä — ei käytössä0bbccd53c2 chore: startup env check kaikille kriittisille muuttujille24a4e1d9c1 chore: varoitus käynnistyksessä jos KV ei konfiguroituf5e0f29a20 chore: poista debug-kentät deploy-incoming vastauksesta0c0af8c6cb chore: poista temp workflowe9cf33321b temp: päivitä KV env vars PATCH:lla3000b816da temp: lisää KV env vars Verceliinfc3459e25a chore: poista temp workflowd187355e76 temp: add KV env vars to Vercel8207df5faf debug: lisää kv_configured tarkistus deploy-incoming vastaukseenbc10ee14bd fix: stripaa base64url padding KV URL-pathista, lisää takaisin luettaessabb231461f3 debug: deploy-incoming readback — tarkistaa tallentuiko KVc1197e276e fix: inject live deploy_incoming myös cache-hitissä084d7fd8b3 fix: Links-kolumni viidenneksi footerissacfe9488668 fix: ignoreCommand oikein (exit 1 = build), poista vercel deploy --prodbc1b635e01 fix: aseta VERCEL_GIT_COMMIT_SHA ja _REF=main deploy-steppiin79f8c634c2 fix: poista vercel alias set deploy-staging.yml:stä — domain päivittyy automaattisestifeb4265ab7 chore: whitespaceaa65803db6 feat: vercel deploy --prod + merge origin/main ennen pushia753b97250d refactor: push_status.py käyttää Trees API:a — kaikki tiedostot yhdessä commitissa13098de6a1 Merge remote-tracking branch 'origin/main' into staging5ea9a07552 fix: poista --yes vercel alias set -komennosta63eed7c49d chore: whitespaceebe5a6324e feat: alias staging.leima.io uusimpaan staging-deploymenttiin247f73ee87 fix: VERCEL_ORG_ID eikä VERCEL_TEAM_ID Vercel CLI:llee6234f9ce7 fix: käytä Vercel CLI:tä deploy hook -kutsun sijaan stagingissad6e67727e8 fix: vercel.json ignoreCommand — exit 0 = build, exit 1 = skip72eb1956d3 feat: trigger Vercel staging deployment on push4b95257be6 feat: Proteus article, privacy note, tread A-E → single workflow9c38a27eac fix: poista tooltippit tab-napeista, submit-napista ja validate-linkistä3530ac8024 revert: poista main.py MONITOR_FILES-listastad1b19b8f96 feat: client-side SHA-ketjun seuranta + main.py monitorointiinc8055519c7 Add contact information for Teemu Lanttae833b852ba fix: review_in_progress näkyy vain kun deploy_incoming on asetettu941ac26212 fix: deploy_incoming TTL 5min→15min9ad4def127 fix: poista tooltippit sub-row-napeista72cca2c09a refactor: poista TREAD_DISPATCH_ENABLED — VERCEL_ENV riittääd0f63c8636 feat: TREAD_DISPATCH_ENABLED=false poistaa cron-dispatcin käytöstä5db9b2fd9d fix: deployment history limit 10→20773d2765e5 fix: check_deploy_history limit 100→10 + palauta commit-tarkistusf475800dca fix: poista per-commit GitHub API -kutsut check_deploy_history():staf92f6bb96a revert: tread-monitor cache takaisin 10sb96389c09b fix: tread-monitor cache 10s → 60sddbc882b66 fix: korvaa gh run watch omalla pollaus-loopilla (30s välein)934d8167ad fix: code review workflow_dispatch eikä workflow_call9f291e475f fix: lisää actions:read tread.yml-permissioihin025325a1ea debug: lisää github_authed /version-vastaukseen342e7ddc92 refactor: code_review.yml reusable workflow, deploy.yml kutsuu sitädc21889b00 fix: PRE_DEPLOY_TOKEN pakollinen — ei auki ilman tokenia53534441e6 fix: /version lukee status.json eikä status-log.jsonl9fd6f72576 fix: deploy.yml checkout ref: staging — push stagingista mainiin2490bfddc0 fix: poista 2min sleep deploysta — code review on se odotusaikab4fe32164c refactor: TREAD A-E → tread.yml + code review deploy-flowhin7ff0762f4a fix: /tread-cron ei dispatcha staging-deploymentistaf395f96771 fix: TREAD rate limit + yksittäinen tread.yml + cooldowncf61738d42 fix: TREAD ok:false kun GitHub API palauttaa null expected_commite0e28059d5 feat: notify-claude kuuntelee myös deploy.yml:ää — deploy_done ja deploy_failed eventit08b8bcb469 feat: deploy-incoming signaali — 2 min varoitus ennen tuotantodeployta4cd1bd19a6 feat: erota code review ja deploy — tuotantoon vain käyttäjän pyynnöstäe7a452c572 revert: poista versiopohjainen LocalStorage-reset kokonaan23fa217d0a fix: poista leima_unauthorized_deploy version-resetistä — vain käyttäjä voi hyväksyäd03378d35b feat: versiopohjainen LocalStorage-reset — security_model-version vaihto tyhjentää sticky-liput5b33fd0082 docs: lisää kolme esseetä tekoälyagenttien etiikasta ja vakuuttamisesta930bcf1853 chore: poista kertaluonteinen set-vercel-env workflow6eb4189388 chore: kertaluonteinen workflow PRE_DEPLOY_TOKEN:n asettamiseksi Verceliin607e5f6ecd feat: staging-preview Vercelissä + pre-deploy signaali TREAD false alarm -korjaukseksi550c909907 docs: lisää staging-suunnitelma ja 2026-06-02 muutokset SUGGESTIONS_DOCS.md:äänab67cb7c7a refactor: poista Render-riippuvuus, Vercel cron joka minuutti0f035e5e79 fix: tread_mismatch auto-clear kun ok palautuu true:ksied7ae0ad54 docs: päivitä CLAUDE.md webhook-arkkitehtuuri ja SHA-tarkistusohje8a6ef61d15 feat: notify-claude lähettää myös onnistuneesta code reviewstad9a44ca3ef security: HMAC-SHA256 webhook allekirjoitusverifikaatio237f8d6b1f feat: post-push tallentaa SHA:n push_log.json:iin agentti-koordinaatiota varten39ead65584 test: notify-claude lähettää myös onnistuneesta ajosta (tilapäinen testi)0146acc0e8 fix: poista node_modules commitista, lisää .gitignore7c024aabdb feat: Channels-webhook GitHub Actions -ilmoituksille6fa11c8e48 revert: poista claude-fix.yml — korvataan Channels-integraatiollab2e20df1d5 feat: Claude Code Action analysoi ja korjaa code review -feilit05de783837 docs: täsmennä että ajastin asetetaan heti pushin jälkeen92983b847b Merge remote-tracking branch 'origin/main' into stagingb8c335952c fix: 24h vanhenemisaika TREAD-danger LocalStorage-lipuille41014a60de fix: tread_mismatch pysyy LocalStoragessa refreshin ylib338df7045 fix: unauthorized_deploy pysyy LocalStoragessa refreshin ylia8e507ea93 docs: lisää SHA-eheys-sääntö CLAUDE.md:hen3de0468b32 fix: poista rebase merge-stepistä — SHA ei saa muuttuaac6542d7c4 fix: nollaa localStorage-baseline v3:een584868c42b fix: nollaa localStorage-baseline v3:een34e864f1b6 fix: vaihda ignoreCommand buildaamaan vain main-branchista0c8c75b3fd fix: vaihda ignoreCommand buildaamaan vain main-branchistab55e91ccb8 Rajaa TREAD-modaali max-height 85vh + overflow-y autob1d96027e5 Rajaa TREAD-modaali max-height 85vh + overflow-y auto583e1c4c6e docs: päivitä push-ohjeet stagingiin siirtymisen jälkeen5d7a29b3c6 fix: lisää localChanged debug-infoon TREAD-modaalissa0c9fea1f6c fix: nollaa TREAD-baseline vaihtamalla KV-avaimen versio3e0532a84d fix: fetch + rebase origin/main ennen merge-pushia55f55f89cb Korjaa debug-info: textarea eikä modal-body, ei riko layoutia09c859a59d feat: vaihda natiiviin Vercel GitHub -integraatiooncd1a8a3d80 fix: tarkista deployment source-kenttä meta-kenttien sijaan62cf0564e6 Lisää debug-info TREAD-modaaliin: trigger + monitor-vastaus06440cb080 feat: tarkista Vercel deployment-lähde meta-kentistä ja system env -muuttujistaafe6638b1a Revert "fix: lisää githubCommitSha Vercel-deployyn, poista review_in_progress-bypass"675ab9e4b2 Revert "refactor: poistetaan unauthorized_deploy — ei suojaa petolliselta ylläpidolta"785c8ee199 refactor: poistetaan unauthorized_deploy — ei suojaa petolliselta ylläpidolta5227037258 fix: lisää githubCommitSha Vercel-deployyn, poista review_in_progress-bypass52909a6617 fix: vaihdetaan leima_git_tree -> leima_git_tree_v2feb457886f fix: treadMismatch ei palaudu ennen kuin TREAD ajaa uuden tarkistuksen1f218e06d2 refactor: pysyvät liput tarkistetaan ensin, return estää syrjäyttämisen1ef48d0ef4 feat: How to dismiss this? kaikissa Danger-modaaleissa8f1eaaed2b fix: älä näytä mismatch-Dangeria heti deployn jälkeen02800c0a20 ui: isompi fontti ja tummempi inaktiivinen väri päävalikossa419682af02 feat: git tree -varoitus pysyy kunnes käyttäjä verifioi ja kuittaab29cfbef65 fix: checkGitTree päivittää localStoragen vain kun TREAD ok22f5d6b1d4 refactor: poistetaan kaikki Render-viittaukset5e103ebbea feat: check_deploy_history tarkistaa myös Vercel-deployt73f7e0388b fix: lisää VERCEL_TEAM_ID Vercel API -kutsuihin, palauta mismatch-Dangerd3c0705f5d fix: älä näytä mismatch-Dangeria jos tread-monitor ok293f73c5f8 docs: yksityiskohtainen kuvaus /version vs /tread-monitor -arkkitehtuurista42fe2a84aa refactor: yksinkertaista /version ja frontend-logiikka8c5c2b2ad7 docs: lisää tuntematon deploy-commit -tapaus muistiinpanoihine1b4b48feb fix: tuntematon deploy-commit -> unauthorized_deploy suoraanf859466dec docs: lisää unauthorized deploy -tarkistus muistiinpanoihin9b526abc80 feat: havaitse luvaton Vercel-deploy ilman code review -merkintää2fa4cb94ac feat: /tread-monitor hakee code review -statuksen GitHub API:stad1f304de89 feat: /tread-monitor hakee Vercel deploy-tilan 10s välein016a0e731f fix: Deploying-tila poistuu kun TREAD ok, ei vaadi deployment_ok4e5587b80a docs: päivitä SECURITY_MODEL muistiinpanot toteutuksen mukaisiksiec1059467a refactor: korvaa checkMonitorFiles checkGitTree:llä, lisää localStorage-baseline2c3ce906d9 fix: älä näytä Deploying jos ok ja deployment_ok molemmat true418b089e10 TREAD: lisää /tread-monitor endpoint ja frontend GitHub tree -pollaus9b99ef88ae SECURITY_MODEL.md: muistiinpanoja tarkennettavaksi3a074d1be1 TREAD: lisää Vercel-tuki tread-run.yml:ään ja /version-endpointtiin18b2eaace1 Poista temp Render redeploy workflowed72fca0ae Temp: Render redeploy workflow7ff415c818 Testi: Vercel CLI pipelinef95a6e9142 Vaihda Vercel CLI:hin, estä auto-deploy ignoreCommandillac6417f9fbb Lisää raw API response -loggaus debuggaukseen4fba3b7339 Lyhennä deploy-timeout 4 min, fail fast jos hook ei vastaa61899e95fb Lisää teamId Vercel API -kutsuun: tiimiprojekti vaatii sen89f29cda53 Testi: seuraa deployta40d25408a7 Poista git.deploymentEnabled: blokkasi myös deploy hookita4cb514afb Poista target=production suodatin Vercel-pollauksesta5d818000b9 Estä git auto-deploy: git.deploymentEnabled false140096a935 Poista vercel.json auto-deploy-esto väliaikaisesti04dc4bbe1f Käytä git.deploymentEnabled:false auto-deployn estoon7658861d3c Korjaa Vercel deploy-seuranta: pollaa projektin viimeisin deploye511106221 Käytä Deploy Hookia Vercel-deployn triggeröintiin865b123719 Estä Vercel auto-deploy: ignoreCommand exit 0f22ce0293b Päivitä DEPLOY.md: Render → Vercel89d5e908b2 Vaihda deploy-kohde Renderistä Verceliin110d5da852 Korjaa kaksoislaatikko: piilota [data-tip]::after .help-btn:ltäc07e2743e3 Pehmennetään 'proves' → 'strong evidence'/'records'/'establishes' dokumentaatiossac0c8f4173f Korjaa mobiili sivuttaisvieritys: col-frame overflow-x hidden4413805e42 Korjaa mobiili-tooltip ja vaakascrollaongelma871bf4846d Mobiili: lisää margin-top ohjelaatikoille (erottuu lomakkeesta)48389505f1 Korjaa mobiili-tooltip ja vaakascrollaongelma84bc8f9db8 Lisää /docs/policy ja /docs/inspection — puuttuvat linkit kuntoonafbc938ce5 Lisää /docs/zkse — ZKSE.md oli sanakirjasta puuttuva1c1e6b7f45 Vercel KV -cache /version-endpointille, pollaus 10 sekuntiin72a5b92146 Poista pyproject.toml — Vercel käyttää requirements.txt + main.py autodetect25130ebb4c Vercel: ei käynnistetä tread_dispatcher-threadia serverless-ympäristössäada49e9ba2 pyproject.toml: lisää [project]-taulu (uv lock vaatii sen)d666794553 vercel.json: cron kerran vuorokaudessa (Hobby-plan max)5fa5d22897 vercel.json: cron kerran tunnissa (Hobby-plan rajoitus)662d2f6eaf chore: POIDE audit 2026-059bb3bb47ac Mobiili: lisää padding lomakkeen ympärille (erotus muusta sisällöstä)b8f003fb4e README: numeroi sisällysluettelo (1-22)5c285ff265 README: lisää numerointi osioihin (1-22)ca9a3279a4 Footer: siirrä Links-kolumni viidenneksi9b1418c5c0 TREAD.md: pehmennetään ZK-analogia ZKSE.md:n linjaanbc7607a930 TREAD.md: poista XZ-esimerkki, lisää huomio ylläpitäjien valvonnan vaikeudesta0ece4ae829 TREAD-palkki hiukan tummempi: #1a3a5c -> #122840f234b31450 Vaalenna TREAD-palkkia: #07111e -> #1a3a5c, dot #2a4a62 -> #3d6a8a916f8b6bc8 Revert "tread-bar z-index 9001: palkki ei tummu modal overlayn alla"377a1ad4f3 tread-bar z-index 9001: palkki ei tummu modal overlayn alla7f332f0a78 Keskitä footer-bottom teksti3700da78a9 TREAD-palkin taustaväri footer-väriseksi (#07111e)d9fde1f8f3 Scope: poliittinen faktantarkistus sallittu, poliitikkojen yksityiselämä kielletty702a400790 GitHub-ohje: lisää koodin laadun arviointi -kappale4cbee8c115 Text-tab: PDF ekana sub-menussa, ohje due diligence -esimerkillä ja hash-selityksellä83c6be9265 Bundle-esimerkki: ferrarigarage.com laskut 87k, VIN, 2025e664875967 Bundle-esimerkki: email records from ferrarigarage.com3567e0b613 Bundle-esimerkki: Ferrari 488 GTB moottorirekonstruktio5cba98b740 Korvaa Privacy -> Redaction prompteissa76860ce89d Prompti: verdict nimeää aina eksplisiittiset tunnisteet (nimi, email, firma jne.)3fbf7d1a44 Verkkohaun läpinäkyvyys: grounding_metadata manifestiin, lähdeluonnehdinnat prompteihine3b1254c4e Bundle: stamps -> Leima files, korjaa esimerkki kysymys2cd5d78cba Prompti: tulkitse kysymysmuotoinen väite vastaavaksi väitelauseeksife341fa7d1 Lisää tooltip-teksteihin: lähteen uskottavuus arvioidaanb29c6488ef Päivitä tooltip-tekstit: source on yksi todiste muiden joukossa (opt 2 ja 3)d64a8bca5a Vaihda help-btn tekstistä ?-pallukka-SVG:ksi (sama kuin ohjelaatikot)97f21bfd41 Lisää ?-help-napit evaluate-optioille: hover tooltip + tap/click pinnaus307dcfee79 Bundle-nappi: Add manifest + verdict -> Add verdict0de4b2bf57 Korjaa Bundle-napin teksti: Add manifest -> Add manifest + verdict20174952ab Lisää tooltips: CSS data-tip -systeemi + kaikki tabit, sub-napit, Validate, Analysefff7e2e72f Lisää checkmark-symboli Validate-nappiin6448b8d7c4 Pienennä ohjelaatikon headerin padding: 0.65rem -> 0.4rem890a1700ff Suurenna ?-pallukka: 22px -> 28px8a805c8518 Korjaa ?-pallukan musta täyte: lisää fill=none path-elementeille4c660fe403 Vaihda ohjelaatikoiden i-pallukka ?-pallukaksid296cf6101 Lisää Vercel API -pollaus TREAD-tarkistukseen4fe50ada67 Korjaa Vercel entrypoint: main.py -> main:app53972dd5d3 vercel.json: ohita gh-pages-haaran buildit1a33257e43 Korjaa Vercel Python-entrypoint: poista @vercel/python buildere5550106ac Muuta modal-snooze 1 tunnista 2 minuuttiin0757914bf6 Lisää modal kaikille Danger-tilanteille (ok===false puuttui)cdcc706bf4 Vercel-deployment: vercel.json, tread-cron endpoint, poista playwright1d256087c1 Show more/less sama väri kuin otsikko (--blue-deep)8fc7290360 Otsikko tummemmaksi: --blue-deep (#1a4b7c) vs pallukka --blue-mid (#5a8fb0)5004101f8a Vaihda i-pallukka ja otsikko footerin siniseen (--blue-mid #5a8fb0)0717bf8db1 Vaihda i-pallukka vaaleampaan vihreään (#4ade80)582e40364f Muuta tab-ohjeiden otsikko mustaksi (#0f1c2e)399ae522df Muuta tab-ohjeiden i-pallukka vihreäksi (#16a34a)40db871cdb Revert "Muuta TREAD-palkin info-linkki vihreäksi (#4ade80)"4f19167cec Muuta TREAD-palkin info-linkki vihreäksi (#4ade80)97bbb3a8e4 Vercel-yhteensopivuus: CDN-fallback /version-endpointille, email-data selaimeenfa0291ad47 Päivitä CLAUDE.md: push-yhteenveto heti pushin yhteydessä4af8119e75 Lisää Open source -sivu, footer yhdistetään, contact-tiedotac92db860c Korjaa doc-footerin puuttuvat sarakkeet (About ja TREAD)8930a185e0 Docs-sivu käyttää nyt normaalia Leima-headeria38560e9bc9 Lisää /docs/-sivut: md-tiedostot renderöidään Leima-sivunaf97c89b4af Korjaa JS-bugit: välilehdet, confirm-dialogi, submit-suojausbd853b490d Korjaa fade+nuoli: näkyvä väri, 4x leveämpi TREAD-fade, aktivoituu hetid5f0419402 Korjaa Generate files -napin katoaminen ja web search -järjestysbugi8d9ee9c665 TREAD-palkki: fade ja nuoli-indikaattori mobiilissa1b145552fd Korjaa tab-järjestys: Text ekana2b3726fa69 TREAD-palkki: vaakasuuntainen vieritys mobiilissa4346fd3a7a Lisää ohjeboksit kaikille välilehdille, Text oletukseksied4e9c5891 Korjaa footer-kohdistus, Bundle-välilehti, Claim only -järjestys, email-ohjeb056bd6458 Lisää ohjelaatikko Email-välilehdelled6c37690e0 Footer: 3/5 kolumnin grid-moodi, mobiilissa 1 kolumni2047e6d4a0 Säädä footer: kolumnit 232px (3 = sisältöleveys), yläpadding 2rem5650414235 Korjaa footer-kolumnit: täsmälleen 3 sisältöalueelle, top-align, TREAD tekstia7638eeeab Uudista footer: 200px kolumnit, tupla korkeus, TREAD-kolumni82f45c78b1 Näytä credibility-optiot GitHub-tabilla (ilman content only)0bc1f56ab7 Lisää scroll-indikaattori tab-riville3f05cbf1f3 Tee tab-rivi vaakasuunnassa skrollattavaksi mobiilissa366316575c Päivitä credibility-options ja Claim only -tabc47195ec78 Lisää Claim-tab ja web search radio-optiona2d97d581ed Korjaa tab-initalisointi: aktivoi oletustabi sivun latautuessa3f3a7d961f Lisää web search -optio kaikkiin analyysitabeihinaa91d1f741 Yhdistä scope check p1-passiin, säästää yhden API-kutsun per analyysif6ee5da8a9 Footer-linjaus: modulaarinen kolumniasettelu jakojäännöslaskennallabdb21952f1 Korjaa footer-linjaus: ei jakojäännöstä sisältöalueen kanssa276d344087 Korjaa footer-padding: kolumnit aina 2rem vasemmasta laidasta431cfb721c Korjaa footer-linjaus: kolumnit linjautuvat sisältöön, ei max-widthe6b5da9117 Linjaa footer-sisältö pääsisällön kanssa (max-width 680px)f88b40d31d Korjaa footer-logo: samat etäisyydet kuin headerissa88bf438ad0 Poista live-browser-ominaisuus kokonaan94cd333e66 Korjaa footer-linkit osoittamaan dokumentaatioon403f903c4a Lisää lähteen uskottavuuden maininta synthesis-promptiin68f7f63356 Lisää Bundle-tab: meta-verdict useasta Arweave-leimatusta todistuksesta46bba5bb50 Nimeä poide→tread, korjaa TREAD.md-faktat, lisää INSPECTION.md ja CONTINUOUS_DD.mdcf4b0dc2d5 Korjaa TREAD.md: deploy-historia 20 -> 100517d76f539 Korjaa vanhat poide_*-tiedostonimet TREAD.md:ssab2b382525b Lisaa ristilinkitys SECURITY_MODEL.md <-> TREAD.md <-> README.md17b2ac91ba Lisaa bundlet gittiin, poista gitignorestaf027b04945 SECURITY_MODEL.md: uudelleenrakenne kolmeen paälukuun, korjaukset, tiivistykset7557bea3eb code_review.yml: korjaa YAML-syntaksivirhe python-onelinerilla4b01573133 code_review.yml: hae deploy ID GET-kyselystä jos POST body tyhjac16f7cce5c SECURITY_MODEL.md: dispatcher paivitetty, suorat tarkistukset ja cron-ajojen kaynnistys9a2f653654 Dispatcher: vertaa Render live-commit vs GitHub head suoraan, riippumatta TREAD:sta446e78b8dc Dispatcher: suora Render API -pollaus deploy-statukseen, ei TREAD-riippuvuutta891ff1ea2e SECURITY_MODEL.md: kaikki tiedostot kohdan 1 otsikkoona3129cdc92 SECURITY_MODEL.md: tread-run.yml esitellaan osiossa 1523db6784b SECURITY_MODEL.md: luottamuksen rakentuminen johdantoon8f7a0c1344 SECURITY_MODEL.md: johdanto turvallisuusmallin filosofiasta ja aikaviive-periaatteestac8b6110251 SECURITY_MODEL.md: tiedostot muuttuvat harvoin, skripti omalle koneelle071a1423b6 SECURITY_MODEL.md: arweave-epailys voidaan ristiin tarkistaa githubista363f9ffc29 SECURITY_MODEL.md: selita miksi 5 workflowta, GitHub 5min cron-rajab7f6d8e1c0 SECURITY_MODEL.md: Arweave omaksi osioksi, repo ei ainoa totuuden lahded1af69bdf0 SECURITY_MODEL.md: Render API -valvonta omaksi osioksi, deploy-historia, viittaukset5aad175b96 SECURITY_MODEL.md: status.json selvennetty, arweave-vaaristys mainittu307e579c63 SECURITY_MODEL.md: tread_check.py hashaa myos itsensaf5e19027f1 Lisaa security_model versiointi: /version-endpoint + TREAD-hälytys3dab2bc76b SECURITY_MODEL.md: code review -takuu maltillisempaan muotoon17afb2cb27 SECURITY_MODEL.md: dispatcher-osio alkaa selkokielellabee0df6455 SECURITY_MODEL.md: kohta 1 alkaa toiminnankuvauksella18c83e377f SECURITY_MODEL.md: tread_check.py otsikkoon, selita miksi ei voi muokata hiljaisesti9ddac6f151 Dispatcher: riippumaton git tree hash-tarkistus, TREAD-palkki reagoi, dokumentoitu5e050f593f SECURITY_MODEL.md: korjaa pollausviiveet, molemmat komponentit valvovat jatkuvasti0f151a56a3 SECURITY_MODEL.md: cronien sammutus ja status.json tuotantoketju91bbc19740 SECURITY_MODEL.md: tarkenna TREAD-palkin kuvaus, paranoidin kayttajan suoja2e8f515ae3 SECURITY_MODEL.md: lisaa code review -portin ohitustavat ja kiinnijaaminen898334fef4 Lisaa puuttuvat tiedostot Tampermonkeyhin, dokumentoi valvottavat tiedostot247c282c5f SECURITY_MODEL.md: halytys/varoitus, dispatcher omaksi osioksi, korjaa ulkoinen hyokkaaja8ba7893ccb SECURITY_MODEL.md: tarkenna yllapito-hyokkaajan ainoa havaitsematon aukkob951d1a1e1 SECURITY_MODEL.md: poista viittaukset hosting-ympariston heikkouksiina059f987ff Tampermonkey: pollaa hashit minuutin valein koko session ajan7236f166b1 Dokumentoi code review -portin turvaominaisuus: ohitus -> valitton Danger97496e4ffe SECURITY_MODEL.md: lisaa suojausaika-analyysi, yleista hosting-viittaukset87728b354c Lisaa leima_bundle.txt gittiin3ae2ceaeba Lisaa SECURITY_MODEL.md: kattava kuvaus turvamallista1d0fb96b07 Tampermonkey v3: tarkista hashit git tree API:lla itse, status.json GitHub API:llaeee700b0ad Tampermonkey: lisaa cache-bust status.json-urliin8c9fe9965d DEPLOY.md: paivita seuranta loopiksi, vaihda Browserless, poista vanhat tiedot506845d3af Browserless 429: lisaa retry backoff ja logi close-virheet91e32c465c Koe push: CLAUDE.md paivitys68ea4e991a Fix live browser flicker: preload screenshot before swapping img.src454f9ae2ff CLAUDE.md: lisaa code review -seuranta ajastimilla pushin jalkeen2b86361823 Lisaa push.py: push + code review -seuranta831acb91f2 Poista push_review_hook.ps1 — hookki-idea hylattiine6080ea851 Browserless: keep-alive ping every 20s, clear error on expired session5d86c00be0 test: lisaa push_review_hook9b5b560322 Fix Browserless 429: close old sessions before opening new oned90ee3e0c2 teste4d3c7a0bb Vaihda Browserbase -> Browserless remote browseracb99b904a TREAD: expose monitor_files via /version, add bar-level warning08f9dfd98c TREAD: show modal when surveillance files change14a5d4f558 Test: push pipeline smoke teste8a66f4557 Remove ptrace test, update DEPLOY.md security notes, add push.ps1cf79f282e6 Add /debug/ptrace-test endpoint2616e18cc3 Remove temp check-events workflowb95f67d9f9 Temp: check Render events APIefca223990 Deploy pipeline: pre-push block + gh run watch + asyncRewakec2284471b2 Add DEPLOY.md: deploy pipeline documentation8092e9d2c9 Revert to Browserbase CDP, keep screenshot/click/key frontend5cc0701b4b Top bar: 'Server or network error' shown as orange warning, not gray892d6cda79 Top bar: 'Offline' → 'Server or network error' on fetch failurefc1a1c9fb6 Migrate from Browserbase to local Playwright0efe1397b2 Top bar: fix unreadable #555 text — use #aaa, rename Unavailable→Offlinedfc74ec392 Top bar: remove link from 'TREAD check:' label, info link is enough602ca770b6 Persist deploy timer in localStorage across page reloads2e55ae8eeb README: document TREAD userscript installation including Chrome stepse3ea8897c8 tread.user.js: silent by default, centered modal only on real dangerc2466532e8 tread.user.js: fix banner height — use all:initial, append to html elementb12a3d1be5 Trigger deploy for TREAD banner test #28aaf8899b6 Trigger deploy to test TREAD userscript deploy banner12f06e6324 tread.user.js: warn on any deploy, English text, TREAD brandinge00ac2d50d tread.user.js: add leima.io to @match (was only onrender.com)f592203d15 Top bar: 'Please note' → 'Notice!', revert circled ? experimentf7c85ec254 Top bar: 'info' + light blue circled ? both link to TREAD.mdb6a3bb2f9a Top bar: circled ? → 'info' text link to TREAD.md0dfa678121 Top bar: 'audit log' → 'log', add circled ? linking to TREAD.mdf7301446cc Top bar: 'deploy matches git' instead of 'git = deploy'bacfadf60b Top bar: replace 'OK match' with 'git = deploy'8fa194a83f Align poide bar dot with col-frame left edge (680→760px container)7f7190fd2a Top bar: 'TREAD check:' label, remove spaces in time displaye75dbaa020 Hide submit-btn and credibility-options on initial load (live is default tab)edb8c8c61b code_review.yml: add concurrency group, cancel-in-progress856521bd89 Fix deploy hook: capture HTTP status, handle 429/409 from Rendered215a53ef Top bar: remove 'read more', add deploy elapsed seconds counterd8cd42c429 Offline indicator replaces TREAD text instead of adding new element1b337973b9 Add offline indicator to top bar3982cef22b Hide Analyse button until browser session is open6eb413bd89 Fix default tab mismatch: tab-live active on load, not tab-web7ccf8b40f3 Redesign navigation: 5 categories with sub-pills, image from URL5cf7ab8fda Live tab: render verdict HTML, English textsc1a231a5b1 Fix Part.from_text -> Part(text=...) for page text in browser capture083e1ea67d Fix 'Failed to fetch': add Playwright timeouts, show status immediately12633a0fe1 README: document hosting provider logging and suppression66ba734e01 Policy + auditor: document logging suppression requirementec77a4f9a5 Replace browser-capture streaming with polling architecture612cf12496 Suppress uvicorn access logs and noisy library loggingac8bfdc948 Live tab: remove draggable scroll thumb, keep arrow buttons onlyd6b9320ff4 Fix browser capture: buf flush, ticker cleanup, no-buffer header54eaf1f233 Live capture: heartbeat every 8s to keep Render connection alived6838b365a Live tab: fix text size (600px viewport), add draggable scroll thumb82c1b79418 Live capture: fix timeout, add JS failsafe and console.log debug04af28f675 Live tab: fix horizontal overflow, restore scroll panelbd03d8a2bd Live tab: show 'Processing click' toast on iframe click7134ba8330 Live tab: fix Analyse status, 800px width, English text, analysis timeout745406dc2d Live tab: custom scrollbar, remove nav/claim fields, fix Analyse button214faea02b Fix memory: single shared Playwright instance, cap sessions at 10b6e281b9e6 Persistent Playwright connection cache + page text in capture1372a8784d Change browser viewport 390x844 → 1280x800 (desktop)3d6df2861e Add scroll controls and in-session navigate to live tab3a942ebacb Fix screenshot: full_page=False + JPEG to stay under Gemini 4MB limitb237a4de43 Add data-stampd-* attributes + current URL display to live tab31ae823970 Fix navigate: don't call pw.stop() — keeps DevTools iframe alived5c384738f Redesign live tab: URL-first flow with inline claim inputaff4315fab Fix: remove browser.disconnect() — not in Playwright Python API92f8722e3d Add mobile viewport + real-time status streaming for browser capture4b0b6e1c62 browser-navigate: use disconnect() instead of context manager to preserve session8624fdb067 Cleanup: untrack leima_bundle.txt, ignore playwright-mcp and bundle filesb1a7739f64 Fix browser-navigate: remove browser.close() to preserve DevTools connectioncb27d9d192 Fix Browserbase 400: remove unsupported startUrl field, restore navigate flowe768f9f2c9 Fix Live tab: pass startUrl to session creation, add playwright to requirements664baf02fe Live tab: move status span outside hidden wrap so errors are always visibleb4bd15ee2c Header: all bar text white, TREAD link → "TREAD — read more"ff7ea3bee0 Header: fix ticker to use ago() and shorten status texts to match/mismatch181ee0f188 bundle_source.py: rename POIDE_* variables to TREAD_*805b09211f Fix TREAD dispatcher: poide-a.yml → tread-a.yml8d0acae808 TREAD bar: clarify OK status text and clean up formatting74a2336739 Add Browserbase live browser integration: /browser-session, /browser-navigate, /browser-capture068caac5ce Header: add Business · Finance · Research tagline; remove prefilled demo valuesb38b1acd20 Update policy TX to EenhCycs7RSe (clean version without self-ref notice)f0bfb24332 Fix policy canonical TX and strip self-ref notice before Arweave upload4f2157c0f6 Update RULES_URL to new policy Arweave TX (CGGdQ3mqWWjm)737a5de21a Add workflow to upload POLICY.example.md to Arweave and update RULES_URL655cff778d USECASES.md: add bring-your-own-AI stamping as planned feature891f877f78 USECASES.md: add service entry and exit as standard practiceb4567d90e1 USECASES.md: add planned service availability and latency monitoringec2fc13bf4 Strip PII and plaintext from all Arweave manifestsde5d66de03 Add Planned features section to USECASES.mdd5d4bfa95e Rename POIDE workflows to TREAD (phase 2)f551a9bd6d Rename POIDE scripts to TREAD (phase 1)05d8e12aaf Update code review bundles460e2509b9 Redesign validate.html: match index.html style18e5f6d05d ZKSE.md: add section on real-world imperfect guarantees2a08be04bc Add SAIA framing, ZKSE.md, and threat model updatesea43fe1243 TREAD.md: clarify freeze window violation must be treated as hostilea669cc7c51 TREAD.md: document planned deployment freeze windows feature352892adda Redesign index.html: two-blue palette with red accent932a54562b Fix deploy reliability: verify commit hash after live, add retry; update threat model9476cac820 Design: light content area with dark institutional headerbf6650d053 Fix TREAD status bar links: read more -> TREAD.md, add status linkf0dcc5be13 Fix TREAD.md: correct logic errors, scope, and incident examples8a52e0d053 Rename POIDE -> TREAD (Transparent Record of Evaluation, Attestation and Deployment)8bb089ebc4 Remove noisy GEMINI_API_KEY warning from pre-push hook29631a11e4 Add ZK analogy section to POIDE.md, fix footer links, improve post-push hookddc3b858c2 Fix Gemini timeout: 120ms -> 120000ms (SDK expects milliseconds)f48c371fc7 Show actual exception in analysis error response for debugginga4911fd653 Rewrite post-push.py: use POIDE status log instead of GitHub Actions API8aef5c0361 Add debug output and secret checks to Render deploy stepdd592d3a95 Fix Render deploy ID parsing: handle both flat and nested API responseb5525d95d2 Fix YAML parse error: move Python inline script to env vare820d2c128 Add push.ps1 wrapper that waits for deploy after pushe8c8c3785d Fix post-push hook encoding and Unicode on Windows63e72176f3 Add post-push hook that waits for deploy to complete5e60ebc100 Pre-fill web tab with Wikipedia WWW exampleb620f0fb63 Add C2PA to image tab hint examplea08a217217 Treat API errors as warnings not failures in code review workflow433b4d2fcf Fix code review bundle: exclude html and md to stay within token limitsd708bdd593 Halve form section spacing89280a8c1b Add spacing between form sectionsca04dd6fa5 Move tab navigation above question form468cfa2c2e Revert "Move tabs above question form"fffb13c1eb Move tabs above question formfa0c580a17 Remove code review mode from GitHub tab UI4484e00590 Revert format options to hidden by default7ffcfd6852 Show format options by default, hide credibility options on GitHub tab9f4667772f Add more top margin above submit row033260b80c Place radio buttons inline to the right of Analyse button8b60b20822 Disable Analyse on IMAP tab until fetch done, remove web URL hint7363096409 Move question title and input to top of form, Analyse button stays at bottomae0f1abecc Remove question label titlec9e325d9c5 Add coordinates to image tab examplea699b37f7b Remove permanence disclaimer from question hint6b2df71385 Fix domain leima.ai → leima.io everywhereea9f2fa257 Restore read more text in POIDE status bar399f9c552b Remove POIDE header link33b3069bc4 Add POIDE link to header, fix status bar read more link1ab16e91fa Fix four minor bugs from code reviewee4fea6b3b Improve question examples per tab and make Web the default tab9abbb62627 Remove source_bundle.txt, replaced by leima_bundle.txt and poide_bundle.txt5b3a1a5347 Split source bundle into leima_bundle.txt and poide_bundle.txt6179bfd2fb Add files via uploade12faff2b4 Strengthen POIDE.md: auditing vs visibility, commit ID insufficient alone6811d074a6 Expand hosting platform attestation vision: the loop closing completelyf04fc3c0e0 Add poide-b/c/d/e workflows for 1-minute polling resolution5cf955cda9 Fix two audit findings: include workflow YAMLs in code review, fix docsf0b17f02a2 Rename POLICY.md to POLICY.example.md, update all referencesea6f94b8b7 Add canonical Arweave notice to POLICY.mdc664201207 Add Arweave policy TX link and document DD/security monitoring use cases0808943b2c Document POIDE adoption for closed-source projects via /api/code-review40c9e628f7 Fix 5 bugs: C2PA GPS, SSRF IPv6, POIDE cron silent-fail, IMAP leak, PDF double-fetch389acb6140 Expand source bundle: all .md files, workflow YAMLs, remove .github exclusion2f4acbb5fb Fix NameError: move session eviction thread start after function definition20cde13e5e Update default URLs from leima.fi to leima.aide667671b8 Fix LEIMA_URL to leima.aicf92eac01b Wire code_review.yml to Leima /api/code-review instead of direct Gemini call7477d1eaa4 Add /api/code-review endpoint for programmatic code compliance checks64a7be11d4 Fix code review mode: question field optional, server-side validatione116ede2a4 Add code review mode to GitHub tab62f4afc002 Security hardening batch 4: IMAP injection, Gemini timeout, GitHub auth, deploy burst warning, userscript fixdcd2b142ef Security hardening batch 3: IMAP SSRF, session eviction, exception leak, PDF validationab93d3df3b Security hardening batch 2: XSS in HTML export, API size limits, validate guards, IMAP error leak190ddeb3d3 Security hardening: upload limits, XSS sanitization, GPS removal, full SHA comparison, SMTP header injection fixcf6b25b368 Include HTML templates in source bundle29273d4c2e Validate GEMINI_API_KEY and POLICY.md exist before running code review8d68900396 Fix SSRF redirect bypass: check each redirect hop with _check_ssrfbcf52abf43 Reject notary emails without valid DKIM to prevent open relay abuse12e4797ac8 Update SUGGESTIONS_CODE.md, add SUGGESTIONS_DOCS.mde93eeb7a25 Fix SSRF: add _check_ssrf helper with DNS resolution check4c7048127f Fix NameError in _poide_dispatcher: hdrs -> api_hdrs6ef6009360 Wait for Render deploy to complete before waking POIDE5db31cd0e1 Switch deploy trigger from hook URL to Render API1177e53ceb Fix false Danger when POIDE-verified commit is live but GitHub has newera88e027cd9 Keep POIDE bar orange throughout deploy, never red mid-deploy0f11818582 Show OK when POIDE stale but commit matches verified899aee5d10 Remove 3-min POIDE staleness warning; clean up bar textdc5f82658d Document GitHub API calls in POLICY.md76ed9a698f Add GitHub file tab: verify files against git commit blob SHA550ea4a6e6 Fix modal frequency; add 5-min POIDE cron schedulee11c30c248 Show only Deploying during deploy — suppress staleness warnings165b61b540 Fix POIDE status text: Please notify → Please note5acfb6d7d6 Replace alert() with persistent modal with 1-hour suppress option16f6034b79 Fix code_review.yml: add actions:write permission for POIDE dispatchf97d1f464c Strip filenames from Arweave manifest — store MIME type only5a18887dac POLICY.md: document actual Arweave metadata (filenames, URLs)99ae92da6e Fix POLICY.md to match actual code behaviour166ee19b31 Surface code review failures in POIDE: track consecutive failures7828acd1fa chore: retrigger deploy after code review rate limitf3df488368 Alert when stale checks reveal an unverified commit is live2a85164823 Use commit_matches_poide to differentiate benign vs unverified stalenessc0af03f9b2 Restore two-level stale check: warning >3min, danger >10min9ac249ac5a Replace pyhanko with pypdf+asn1crypto to fix requests dependency conflict3788429304 Increase Render deploy fetch limit from 5 to 20e7dc376d59 Fix _poide_dispatcher: fall back to CDN URL when no GitHub tokenb5ff3a3632 Remove redundant client-side isStale check from POIDE UI9b409b4d5f Raise UI stale threshold from 150s to 600s to match server-side MAX_CRON_AGE_MIN93fed151bd Update docs: three-layer model, RFC 3161 in DD use case and sources table71129c503d Add RFC 3161 PDF signature verification via pyhankoe33b311574 Fix pre-push hook: allow push when mismatch is explained by review gate38750bce0f Fix spurious ok=false during review windowc8e35ffb1e Remove review failed reason from validate.html and userscript2a1b4acf36 Remove review_ok from ok gate; review failure no longer alarms users22320fa101 Add unauthorized deploy alert to application UI73777fd459 Add JS alert for unauthorized deploy attempt in POIDE userscript14fc7ab496 Add deploying_commit check to POIDE; update README for new deploy flowa2f22d4b0f Update POIDE.md: deploy now gated on code review passingdd6c8e25d0 Deploy via Render hook after review passes, remove push cooldown54d77f6f79 Run code_review.py locally in pre-push hook if GEMINI_API_KEY is sete326ef3291 Add 4-minute cooldown between pushes to prevent mismatch windowsf5cf9a5435 Fix mismatch resolution logic and date parsing in audit.html02af439b3b Document bundle_source.py self-characterisation use case in README4b7d5a550c Add requirements.txt to source bundlebaba323835 Include README.md and POLICY.md in source bundle43b4378cfd Add privacy directive support to AI prompts and claim hint983e38f302 Raise text input limit from 20k to 500k charactersc989517d23 Add .txt file upload to text tab82796a11a0 Add bundle_source.py for Leima self-characterization demobeb942b369 Add hooks/pre-push.py to code review architecture note93d1a89074 Remove rapid_deploy_warning — mismatch history is the direct signal748bbfadc4 Update pre-push hook install docs to reflect shell wrapper + .py split185bb550c1 Split pre-push hook into shell wrapper + Python script1d3c6e7196 Fix pre-push hook encoding for Windows cp1252207dab4e54 Add pre-push hook and audit page source link09e2221a3a feat: show last commit mismatch duration and resolution time in audit log52eb1871e6 feat: code review checks newly added dependencies for suspicious packages4abc193ebe fix: bottom pagination also scrolls to top on page change73f6c3f020 docs: link verify.py in POIDE.md78bc41cb05 docs: add verify.py section to POIDE.mdb0c936e78a docs: add verify.py section to README58d4f5835b feat: pagination at bottom of audit log, verify.py explains guarantees46fddf413b refactor: verify.py uses git history as primary trust sourcefe63e5b889 feat: verify.py shows last commit mismatch and when it resolvedc5d80021f9 feat: add verify.py — independent POIDE integrity check9c15bf6fc7 feat: paginate audit log (100/page) and trim log to 500 entriesbdd1269bd9 fix: show POIDE deployment status and Arweave status separately053a6fb5f0 fix: always write log entry even when Arweave upload fails825d4ab5ec fix: distinguish deploy-in-progress from commit mismatch in audit logc0865ac837 feat: add fail reason column to audit log table1b74434014 feat: show latest monthly Arweave summary on audit log pagea5be7dc0cb Add GitHub Actions run link to audit log table452ddd6895 Add POIDE audit log page (audit.html)1258e85af3 Add provable record of intent paragraph to Economic case990b6b4d5d Add Economic case section to READMEf4bd10f959 Add gray border to contradicting evidence section5870ed322e Specify format and placement for analysts' own observations6a20ee139e Remove language detection step from pass prompts9304461b10 Allow all three analysts to draw on own knowledge in truth eval modefa58cad481 Revert to 3-pass structure, keep verdict-first display and own-knowledge prompt23a8925b1b Fix critical review skipped for text and PDF upload tabs84a7e23e8b Focus critical review on the area named by the claim7633792de1 Teach verdict judge to fairly evaluate critical review findings847d40d3b9 Replace independent assessment with concrete critical review pass304eb84386 Increase pass section heading size for readabilityf5aad7ae5f Add independent assessment as third pass before verdict54697f2116 Move AI own-knowledge assessment to verdict only, strengthen promptcb29a7c495 Style support block as bordered box; add AI self-assessment note to passes25a9705493 Add light gray background to supporting evidence sectionb8571b6a08 Show verdict first in results, then supporting/contradicting evidence3275c5e68e Allow AI to use training data in truth evaluation mode1823220661 Fix deploying status color to orange with warning dota87934fcae Fix PDF crash on Unicode characters in AI response32058337a0 Add GPS location extraction from C2PA metadata3ac032f44d Fix silent failure on long text inpute4211b67fc UI: make verdict pass labels larger and darker5da3bfdc90 UI: update tagline to AI evaluation, forever sealed6989fb1c55 UI: Warning → Please notify, Deploying text white with prefix3c3512b5db notary: mention authenticity confirmation and forwardability7cc1cd3113 notary: clarify original.eml is attached to this email12c5ea6f6e notary: clarify verification steps — download from Arweave then validate with .eml16424f877b notary: add validator link to verification instructions8324ad2fc0 notary: simplify verification instructions44c5db4e14 notary: add independent verification instructions to notarized emaila0d87db4b9 notary: don't mark message as Seen on failurea6f82eee76 security: fix IMAP injection and weak session ID entropy0a058dd20b neutral_witness: clarify IMAP email personal data handling in prompt8328cf3bf1 README: fix pass labels, model name, and POIDE acronym88ff5044c8 UI: show commit mismatch as neutral Deploying state0f22c284f4 UI: remove trailing description from claim examples59023e6f07 UI: reorder examples and fix claim assessment descriptione42088dc47 POIDE: handle rapid_deploy_warning as orange warning in UI94121beff3 UI: show commit mismatch as warning instead of dangerfe7a401003 main: move base64 import to top level707d3b1caf UI: clarify radio button labels for evaluation modee26c64a286 dispatcher: fetch status-log.jsonl via GitHub API to bypass CDN delayfa32182baf UI: replace credibility checkbox with radio button pair43cc842cd4 POIDE: cache pip packages and poll gh-pages every 30s4a2b4a0391 POIDE: poll /version directly for real-time status without CDN delay36fb714c0c UI: poll POIDE status every 20s instead of 60s5e44658328 monthly_audit: break down failures by reason in monthly summary2320c1294b poide_arweave: include deploy_status, deployment_ok, review_ok in log entry535272cfc6 Remove cron schedules — Render dispatcher replaces GitHub crona55c9f6e79 poide_check: include actions_run_url in status.json for audit trail36d1145ffc README: add prediction markets and information credentialing use casedb7cf3d8bd POIDE.md: clarify intended vs actual deployment, open/closed source use cases317abe779f Rename PoDe to POIDE (Proof of Intended Deployment)326f921013 Add credibility checkbox, source-aware verdict categories, and content-only modececf4b7688 Add source-aware prompts, verdict category badge, and Arweave PoDe cached39a5e2c67 Synthesis prompt: require clear verdict, no hedging716cd3b16e Add PoDe dispatcher thread to Render server311cac40cf Wake up PoDe cron automatically after every push to main1bfb5d910c PoDe: check workflow states — detect when GitHub disables crons34db54f9dc Add CLAUDE.md safety rules and pode-run.yml warningsfe258c7b6a Remove monitor.py — Render B approach abandoned for nowbe077f618a Add monitor.py for Render B independent watcher1c7aeb00a4 PoDe: retry push on 409 conflict, keep workflow always green8eb54b2c25 PoDe: fail workflow if status push fails, not if service is unhealthycdcfea1e6d PoDe: always exit 0 — status in JSON, not exit codecfca9f6940 PoDe: push status via GitHub API instead of gitb3a6a557bc PoDe: replace JamesIves action with direct git pushc5a4fc5f14 PoDe: pass GITHUB_TOKEN explicitly to JamesIves deploy action28e90656aa PoDe: remove concurrency group — it serialised runs and broke 1-min cadencee2243be3a1 PoDe: serialize runs with concurrency group, make gh-pages push resilient1f182347bf Show reason in Danger/Warning bar: commit mismatch, review failed, etc.bdab301e44 Rename (explanation) link to "read more"70462b8e8f Remove c2pa-python from requirements — likely causing build failuresc1c4aa3b38 Add dash separator between status word and PoDe label840533df95 Replace "what is this" with white underlined "(explanation)" link67caca8c6b PoDe bar: white text throughout, add "what is this" link8b9b7a0339 Switch PoDe status fetch to raw.githubusercontent.com7b9bf57c97 Lighten PoDe bar secondary text to #bbb52c94f7604 Fix PoDe bar layout jump: single fading element with innerHTML27d164d59f Fix PoDe bar: "checked X ago" wording and lighter timestamp colord5068c5e0e Slow down PoDe bar transition so Retrieving text is visibleb9f2a99a56 Redesign PoDe bar: OK/Warning/Danger + time ago4e41011949 Animate PoDe bar: pulsing dot and fade transitions on text25c1c88629 Improve C2PA badge text to describe manifest status0477f17e31 Remove nested card box — white column extends edge to edge2d37433ceb Add C2PA manifest verification for image uploads51f7456e0b Remove RENDER_SERVICE_URL env var — fetch from Render API instead38c36a144a Remove personal data from IMAP analysis manifest183d6d9dea Remove claim text from manifest — store hashes only0f1f10d63a Add claim text to Arweave manifest to match POLICY.md3b965c0682 Upgrade Gemini models to 3.x series2a12beca2e Add retry logic to code review for transient Gemini 503 errors8ed7696065 Fix code review error handling and None response guarda1daa83f74 Show violation reason as GitHub Actions annotation on review failureb8ca970674 Align footer with card width (680px)af190cb3da Align PoDe bar content with card width (680px)8b135c1f9c Fix PoDe bar text color and align content with page layout1be55343fa Add PoDe status bar at top of paged63f832582 Fix code review failures: clarify SMTP in policy, scope audit to user-data path7016b0d3ec Add RENDER_SERVICE_URL env var and fix notary CC recipient handling315860085e Translate footer to English0fca774e7b Add full-width black footer with three columns509703bec1 Replace logo image with Playfair Display text logoca90546a7c Add Arweave audit trail: per-check uploads and monthly summariesdb040366d3 Fix PoDe workflow permissions for reusable workflow call03004f3384 Raise PoDe history limit to 100 and add rapid-deploy burst detectionfc24248491 Add email notary feature with one-click validate link96bfeb6380 Fix validate key mismatch, Gemini None crash, and HTML export XSS0f75d73323 Add RENDER_SERVICE_URL environment variable752547c488 Add Claude Code slash commands for code and docs review4de3f50af4 Add slash commands, move threat model after trust model, update section order97b013993b Add public good/contributing sections, Arweave permanence model, leapfrog paradox, threat magnitude context74000ffc42 Add high-value vehicle maintenance as consumer documentation use case63e4c4c370 README: clarify two-layer model — hash commitment vs AI verdict serve different purposesd6c8d5ec73 Add C2PA drone/photo use case to economic inclusion; fix /version env vars for Renderbb8c08f6e2 Add personal credentials use case: degrees, employment, institutional emails via DKIMc82f390b01 Add due diligence use cases: partial disclosure, bilateral investment verificationd5a3890810 README: expand use cases to reflect consumer, art, and economic inclusion36fbd0b122 Add USECASES.md: extended use cases including art provenance, C2PA, consumer receipts, and economic inclusion0988eabb9c README: fix source filename and update PoDe section description4250246e06 PODE.md: remove duplicate incidents section, fix Prior art linkscc0c887115 README: add deploy history check to threat model tablecc5e169fa7 PODE.md: document deploy history check and reputation track record4bb676737c Add deploy history check: verify all recent Render commits exist in gitde83ed117b PODE.md: caveat on current code review; describe ideal multi-reviewer model9d8a91484d README: mention incidents and prior art in PODE.md referencef1860a308a PODE.md: add real-world incidents section6fe59855b2 Add Tampermonkey userscript for automated PoDe checking8e569b0667 PODE.md: document cron freshness check41b559879e Detect stale crons: ok:false if no workflow ran within 10 minutes6eaac989f4 PODE.md: add monitor_files check to verification steps0889017589 Hash monitor files in status.json; document meta-loop in PODE.mde43ee731d6 PODE.md: add prior art and landscape section33ae458f97 Update threat model to reflect PoDe + code review coveragec251e98c50 Update PODE.md: code review as part of the trust chain762355be2d Add automated policy compliance code reviewaacf524373 Link POLICY.md from Trust model sectionf68003b65e Link POLICY.md from README contents32ec3f52bb Add POLICY.md: verifiable data policy for automated auditing5491e9dd78 Detect in-progress deploys and add versioned consent visione7825b037a Add PoDe deployment integrity monitoringe25d6e1f4b Replace all Stampd references with Leima, remove render.yamld3984ec268 Rename Stampd to Leima, replace Render with Railway3c34155b47 Rename Ask button to Analyse2ede512dbd Rewrite pass prompt builder to avoid format-string chaining68aeff6f4b Fix NameError: _LANGUAGE renamed to _LANGUAGE_TEMPLATE in synthesis prompta3fed49fac Inject claim text into language instruction for reliable language detection5142f1e3e3 Clarify language instruction: claim language takes priority over document45a076dd5e Permit testing and trivial claims in scope check15e60d0ec0 Fix validate page: accept any source file format0857b4a88c Bring README up to date with current features9b4f790f56 Update README to reflect stamp record naming86d32904d8 Add image tab, verdict format options, and stamp record naming6f88ee843a Include email identity prompt only for IMAP source0724b01eab Render markdown in verdict PDF using fpdf2 write_htmlee33de21ae Server-side markdown rendering and /version endpoint9111ad7b2b Render markdown in verdict output — allow bold, lists, headers from AIe11c90bb57 Prohibit markdown formatting in AI responsesf2fcc5cca7 Move scope check to refutation pass — simpler support prompt, cleaner cons analysis79199f605e Move scope check to pass 1 only — passes 2 and 3 trust it already passed145e12814b Clarify Stampd is not a law enforcement or dispute resolution tool in scope definition7cbf192b16 Replace allowlist scope with abuse-focused blocklist in neutral_witnesscee21160ad Add language detection to all prompts: respond in claim language, never translate quoteseb590c17a0 Improve synthesis prompt: check refutation targets the actual claim before weighing it6fe2421401 Broaden scope to include encyclopedic and reference content for web use caseb9eeabe15a Add Web tab: fetch HTML, record URL and timestamp in manifest; rename Email tab to IMAP6f59a057cf Clarify Stampd produces both proof and expert opinion, not just authentication46e5c3084b Remove redundant secondary taglineb67527f091 Add primary tagline to README headerae75c51023 Restore hosting provider threat row, honest No coverage, Render named1eae32b657 Remove hosting provider threat row — outside scope of what Stampd can mitigatedebcdc8b8b Add threat model table to READMEc76a647015 Document DKIM validation and LLM identity assessment in trust model91856151a9 Add email sender identity assessment to analysis promptsa5f199a883 Add real DKIM signature validation via dkimpy (valid/invalid/none)a5807139df Soften absolute claim in intro: bottleneck no longer absolute006e227741 Introduce neutral witness concept in Why this mattersad7e93aa09 Mention neutral_witness.py in What it does section33656443a1 Extract AI analysis into neutral_witness.py for independent auditability5b311b082b Add planned privacy-committed AI providers note to trust model77c78e89d2 Remove private AI option and detectable-conspiracy sentence from trust model9906c2c387 Remove self-hosting reference from trust model — cross-instance monitoring is the answer4ca639a418 Document planned PII filter for email input in trust model65340b3962 Expand trust model: open source auditability, hosting provider assumptionff843c4cef Include system prompts verbatim in verdict PDF; document in README1642e34a4d Tone down AI witness claims in Why this matters — add honest caveats7499aa18f3 Replace vague wording with C2PA standard name in Why this matters2fcc138e03 Add low-trust societies paragraph to Why this mattersdbd4062039 Rewrite intro, move Why this matters after Use cases66fb8e3c50 Add Why this matters section and table of contents to READMEddac4db2e1 Add Trust model section: AI reliability, data sensitivity, Arweave guarantees, roadmap649469b231 Expand use cases and fix document storage wording in README60f7250cdb Explain triple-pass design rationale in README4b27413526 Replace always-visible URL input with toggle link in PDF tab475a36c019 Fix mobile layout: stack question row, upload rows, email split on narrow screens2b7c4fa58b Fix README: document is not stored permanently, not "never uploaded"7cd1325ad4 Update README: clarify only manifest goes to Arweave, add API docs, fix pass namesdbe68650e4 Add /api/stamp JSON endpoint for agent use346667cfe0 Redesign Pass 3 as synthesis judge: compares Pass 1 and 2, gives verdict51011505a9 Expand document scope to include scientific and research work01d73d7f96 Add comprehensive README221c354b61 Implement triple-pass stateless evaluationdaa87d30ae Add PDF URL input with 10 MB limit and SSRF protectionedbb325807 Increase tagline font size and weight on validate page5e5df2c28e Add render.yaml for Render.com deploymentd53a4b5d04 Add question label and subtitle above ask inputa7ede23712 Remove Stampd h1 heading from header8c2625aa3b Make logo a home link and update tagline79cf232a6f Fix source.pdf 500 error and support legacy irys field in validate20f5ee94d1 Add /validate endpoint with three-file integrity checke2a6fdd2dc Simplify stamping: only manifest goes to Irys on Generate140671c1aa Redesign result UI: Generate files button reveals downloadsde8e8c6f75 Add economic activity filter via system promptafaf98e286 Add email metadata fields to manifest for stronger evidencedad88bcc7c Replace Arweave library with Irys SDK for document stamping36820c97ce Add wallet.json and .env.txt to .gitignore21bc3b3209 Merge branch 'main' of https://github.com/fxg55647/stampd051940688c Initial commit: Stampd document verification app78007dcc1d Initial commit