Repository navigation
0.4.1: Chrome pages through the accessibility layer, honest consent text, and the browser hand-off - #12
Merged
Conversation
…; work inside pages is Browser MCP's, or name it once Gustav 29/10: computer-mcp should always use the person's normal, signed-in Chrome for the web, and hand in-page work to browser-mcp when it is in the session. This server does not see inside pages (its own instructions say so), so the in-page part is browser-mcp's; without it, the agent names Browser MCP once with its install line and never installs. test/laering.mjs 1c-1f pin the text; each check mutation-proven. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… in its extension's profile (P183) Opus P183: GODKENDT MED RETTELSER - C1 applied verbatim, checks 1g/1h added (each proven red when its phrase is removed). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r (C19), stille-vej giver scroll et punkt, LICENSE med i pakken - policy.js:623: i baggrund afvises adgangskode-programmer (maaIkke) - boksen sagde «still always ask». :632 (forgrund) er sand. ikon-godkend D2 fanger loeftet; mutationsbevist (gammel tekst -> 1 DUMPET, ny -> 60 OK). - stille-vej.mjs:293: hjaelperen kraever et punkt sammen med --app siden ed09c85 (main.swift:1020) - midten af forreste vindue, som index.js:1325-1328. Gjorde Fremmed Mac roed paa 0.4. - mcp-server/LICENSE + "LICENSE" i files: MIT-teksten fulgte hverken npm- eller MCPB-pakken. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t 5 -> 0) SDK'en selv uaendret (1.32.1). zod 4.6.7, body-parser 2.4.0, @hono/node-server 2.1.5, fast-uri 3.1.9, qs 6.17.1 - samme versioner som en frisk npx-installation faar i dag, saa proeverne maaler det brugerne koerer (som f808150). Gulvet holder 1.30.x (1 hoej advarsel) ude af en cachet installation. "LICENSE" i files, saa MCPB-bundtet faar den. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0.4.1-LISTE #4: baggrund-mus og stop-alle var roede umuteret paa Fremmed Mac (39986282787), men groenne alene lokalt - porten smed outputtet vaek, saa aarsagen kunne ikke ses. Proevet med en roed og en groen attrap-proeve. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t laeste den som serverstartende Fremmed Mac 41045721377: tilstand-isoleret DUMP «stille-vej.mjs» - maaleren kalder en fil serverstartende ved spawn( + index.js, og 9828cf2's kommentar «index.js:1325-1328» udloeste den. Foer: 1 DUMP, efter: alle tjek bestaaet (lokalt). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Versionen 0.4.1 i package.json, server.json (x2), bundle/manifest.json, gemini-extension.json og HELPER_VERSION. README-loggen genereret med scripts/log-uddrag.mjs (test/readme-log.mjs groen). CHANGELOG: samtykketeksten (D2), LICENSE, underpakkerne (audit 5 -> 0), flere agenter paa macOS 15.8 (Finder kom kort frem i 2 af 5 koersler, som forsidens optagelse viser; skrivningen foran holdt i alle) og proeverettelserne. claims-offline + tjek-forside groenne lokalt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sh ser 100 CI-koersler, laasefilen = en frisk npx-installation Panel R1 1/11 (Astra + Opus, efterproevet): - parallel.mjs: menneskeArbejder var EGEN, saa paa GitHubs Mac fik et rent laesende scenarie skylden for Finder-momentet (41128683401: «101 laese Finder 1», kun computer_windows + computer_find, Finder foer -> TextEdit efter). - release.sh:163 saa kun de seneste 20 CI-koersler; 627b710 er nr. 7 - 13 koersler paa en anden gren afviste udgivelsen. - package-lock.json = en frisk opløsning af package.json i dag (SDK 1.32.2, express 5.3.0 ...): npx har ingen laasefil, saa proeverne skal koere det brugerne faar. npm audit --omit=dev: 0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ync-tal.py) - Underpakker: beskriver vores laasefil, ikke brugerens (npx opløser selv; de 5 fund var kun i vores trae). - Flere agenter: Finder kommer frem to gange paa hvert niveau i alle seks koersler, 15.7 og 15.8, op til 2,8 s - ikke «2 af 5». - LICENSE: npm maalt, MCPB via samme filliste. Mutationsporten «viser de sidste linjer», ikke «hvorfor». - Rettet: 0.2.1-saetningen «Password managers ask every single time, in every mode». Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rter med Script Editor forrest som suiten Panel R2 1/11: et svar der aldrig kom braendte 5,5 t (41077418047 forsoeg 1). baggrund-mus bestaar i suiten (Script Editor forrest) men ikke i portens baseline (Finder forrest efter «Mange agenter»): samme udgangspunkt afgoer om det er tilstanden. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ilen dateret, kendte graenser - README/npm-README/forside/kapabilitetsmatrix: «handed straight back» faar maalingen med: 1 af 65 momenter (41266330474) kunne ikke gives tilbage, svaret sagde gave_back:false. - CHANGELOG: hovedet lovede datoer der ikke staar der; laasefilen beskrevet som fornyet 1/11 (ikke varig lighed med npx); mange agenter med alle fire udfald; kendte graenser: baggrund-mus/38 mutanter, F2b 3 af 11 (F2 bestod i alle). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…giv-tilbage-mutanterne), trinfrist 30 min Panel R3 1/11 (Opus): giv-tilbage-mutanterne koerer foer baggrund-mus' baseline og efterlader Finder forrest; i suiten koerer giv-tilbage efter baggrund-mus (run-all.sh:134/140). Kommentaren om haenget rettet (Astra R3): mutationsbeviset blev sprunget over, og slutporten afviste koerslen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- «longest such moment» -> «longest one that was handed back» (det ikke-tilbagegivne varede mindst 40 s); elleve koersler hele vejen (32 af 33 niveauer, 4.939/4.939); haenget: aarsag ikke fundet; proeverne navngivet. - Kendte graenser i datid (porten er aendret) og «these menu checks», ikke hele proeven. - README/npm-README: give-back lader forgrunden staa efter klik, rul eller en tast som Shift inden for 1,5 s (Skaerm.swift menneskeRoerteNetop); launch-saetningen og matrixens launch-saetning melder gave_back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…runs) - begge GODKENDT b og c Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pt Editor-linjen fjernet; rettelse af 0.4.0's menu-loefte Fremmed Mac 41270352704 (1003f89): portens baseline havde Script Editor forrest (5c «Script Editor -> Script Editor») og 5a/5b/5g fejlede alligevel. «Finder forrest» var ikke aarsagen (panel R2 B). Linjen gjorde ingen forskel og er fjernet. CHANGELOG: kendt graense uden aarsag, F2b 4 af 12 (517-546 ms, F2 uden DUMP), Corrected-note til «A click behind never leaves a menu over your work». Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… foer porten (2. falsifikation), F2b 4 af 13, nutid Fremmed Mac 41271247500 (605c70e): suiten groen, mange agenter groen; portens baseline for baggrund-mus stadig roed med Script Editor forrest (2c/5c). Placeringen betyder intet; linjens fjernelse i 0178a66 staar. Tal genoptalt fra 13 logs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t give laanet straks Gustav 2/11: computer-mcp skal tage skaermen uden at spoerge, naar den skal. Med CMCP_SCREEN_ASK=0 sender serveren ask:false, og et «standing»-svar fra ikonet giver laanet. Uden kontakten er «standing» et nej. Laanet er ellers det samme: hvert skridt venter mens mennesket bruger tastatur eller mus. Proeve 14 i skaerm-laan.mjs (4 varianter, 14 tjek). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t (ask:false) giverUdenSpoergsmaal (Tekst.swift): kun et skaerm-laan, kun ask:false, kun naar ingen anden agent har skaermen, og ikke i 120 s efter at mennesket tog den tilbage eller stoppede alle. Svaret hedder «standing», ikke «owner». Intet banner og ingen lyd for et laan uden spoergsmaal. Proeve 3f i ikon-menu.mjs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- tik() giver et ventende laan uden spoergsmaal (hvert sekund), saa husets kildekontrakter for laanOpdateret, tagTilbageNu og stopAlleNu staar uroert - spaerringen efter tag-tilbage / stop-alle saettes foer tik() i begge - computer_request_screen sender ikke agenten hen til Allow, naar CMCP_SCREEN_ASK=0 (proeve 14 maaler beskrivelsen) - README + den udledte npm-README Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lig log - spaerringen efter tag-tilbage/stop-alle maales i systemUptime (et vaegur der springer, loefter den ikke) og gemmes i skaerm-spaerret.json, saa et ikon der genstarter inden for pausen holder den; en vaerdi laengere fremme end pausen er ugyldig - et laan uden spoergsmaal gives tidligst 3 s efter at det forrige sluttede (den forriges hjaelpere faar SIGKILL 2 s efter SIGTERM) - loggens «asked» foelger svaret: et aeldre ikon der spoerger og svarer owner, logges asked:true Proever 3g (5 tjek) og 14b (2 tjek). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… kontrakter paa kaldestederne - beskrivelsen med CMCP_SCREEN_ASK=0: tager mennesket skaermen tilbage (knap, Esc, ⌃⌥⌘.), stopper agenten og spoerger i chatten - aldrig selv igen - en udloebet ventetid i koeen uden spoergsmaal er ikke et nej: «ask again» - afvisningen i baggrund siger, at serveren laaner uden spoergsmaal - README: «no question» (boksen staar der stadig), nej/fra, Esc-forbehold, tillidsforbehold; undtagelsen ved «a yes without your fingerprint is a no» - CHANGELOG 0.4.0 (in progress) - ikon-boks 5z: kildekontrakter for givStaaendeLaan, tik, tagTilbageNu, stopAlleNu, spaerringsfilen og overdragelsespausen (Opus' MA/MB overlevede) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sten i en kommentar MB1 (udkommenteret spaerStaaende) overlevede, fordi indexOf fandt teksten i kommentaren. Nu draebt sammen med MB3 og MB4 (spaerring efter tik). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…en faar SIGTERM En server der fik SIGTERM midt i et skridt, lod hjaelperen skrive videre - ogsaa efter at skaermlaanet var givet videre. exit-handleren kalder nu afbrydSkaermKald (SIGTERM til skrivende hjaelpere, SIGUSR1 til paste). Proeve 15 i skaerm-laan.mjs: roed foer rettelsen (hjaelperen levede), groen efter. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t, spaerringen holder paa tvaers af genstart - tager mennesket skaermen (laanet slutter foer tid uden at agenten gav det tilbage): afvist i 2 min med «stop og sig det i chatten», et ventende skridt svarer det samme (ikke «call it again»), og agentens naeste laan SPOERGER - et laan uden spoergsmaal der venter: kun Deny i menu og boks, og serverens tekst siger at tavshed giver skaermen (ikke «If you allow it») - spaerringsfilen: opstartens id + monoton frist, hoejst pausen, ulaeselig = fuld spaerring (falder lukket); anden opstart = ingen spaerring - overdragelsespausen 8 s (2 s stop + 5 s noedslip) og ogsaa efter ikonets start - kontrakter paa kaldestederne (Opus M1/M2), regex-escaping i proevens hjaelper - README, CHANGELOG, server.json (CMCP_SCREEN_ASK) efter koden Proever: skaerm-laan 16 + scope, ikon-menu 3g/3h, ikon-boks 5z. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lpere, spaerringen paa en stabil opstart
- ikonet sender {ended: taken-back|stopped-all|expired} foer det lukker et laan, og
{queued:true} naar et laan uden spoergsmaal maa vente; serveren laeser linje for linje
- en udloebet ventetid uden «queued» er UKENDT (et aeldre ikon kan have spurgt):
asked:null og «do not ask again» - ikke «ask again»
- et stop efter «tag tilbage» vinder over enhver anden afvisning i svaret; stoppet
maales monotont og nulstilles, naar mennesket selv bekraefter et laan
- lukkesignal (og vagten, naar klienten er vaek): stop hjaelperne og VENT - SIGKILL efter
2 s og noedslip af et traek - foer serveren gaar (stopOgVent); status.js' exit(0) erstattes
- spaerringsfilen: kern.bootsessionuuid (kern.boottime flyttes med uret); en fil der
findes men ikke kan laeses, og en ulaeselig opstart, falder LUKKET
- husets kontrakter S4 og 5o kraever nu afslutLaan med grunden (samme kald, samme sted)
Proever: skaerm-laan 14d, 15b, 16b, 16c, 16e · ikon-menu 3g · ikon-boks 5z · vagt 5c.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ble) - P10 overlevede uden Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…aerlig usikkerhed i stop-teksten - 16f: et laan der udloeber, og et agenten selv giver tilbage, giver det naeste uden spoergsmaal - Opus' M-Op1 (tagetTilbage = !laanAfgivet) overlevede foer - sagde ikonet ikke hvorfor (aeldre ikon, eller det doede), siger stop-teksten «(or the menu bar icon closed)» - spoerge-tilstandens tekst for et ventende skridt er som paa main igen Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d i klientens vindue - serveren lukker paent allerede naar stdin slutter (klienten: stdin -> 2 s -> SIGTERM -> 2 s -> SIGKILL); stopOgVent 600 ms med nyt oejebliksbillede hver runde, og ingen NY skrivende hjaelper starter under nedlukningen; release-mouse med killSignal - 15c: en RIGTIG MCP-klient (SDK) lukker - traekket draebt, knappen sluppet, serveren gik selv (672 ms; foer 4003 ms med traekket i live). 15b uden kravet om >= 1,5 s - «tag tilbage» foer laanet var registreret er stadig et stop (16g); stoppet vinder ogsaa ved en programlaas der udloeber (16i) - kun kendte «ended»-grunde, den staerkeste vinder, forkert nonce taeller ikke (16h); loft paa 64 KB over ikonets svar - opstarts-id skal vaere et UUID, ellers ukendt = spaerret (3g) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…g stdin-lytteren Q3 (flaget fjernet) overlevede, fordi nedlukningens nye oejebliksbillede draebte den nye hjaelper alligevel; nu kraeves afvisningen. Q1 (stdin ignoreret) overlevede, fordi SIGTERM- vejen ogsaa naaede det paa 600 ms; nu kraeves at serveren gaar foer klientens SIGTERM. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ste opslag» er nu roed; vault-proevens tjek 4 skriver forsoegstallet ogsaa ved OK Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… under laasen, og spoergsmaalet naevner knappen 13w: ja til «Delete», «Erase all» under laasen - intet klik. 13x: uaendret «Delete» klikkes, dialogen naevner «Delete». Mutanter: genmaalingen fjernet -> 13w roed; navnet fjernet fra dialogen -> 13w og 13x roede. 15 suiter groenne. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ntrol» i afvisningen (13y; mutant -> roed) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…trol), seks browsere i begge lister, search-incomplete naevner sprungne adgangskode-sider, secure-rects siger windows_scanned Server: 13z1/13z2 (mutant «forfader ignoreres» -> begge roede). claims-offline: browserlisterne (mutant: Comet fjernet -> roed) og hjaelperens tre nye felter. Hjaelperen er IKKE bygget - kildeaendringerne kraever en ny kandidat, kvittering og panel. Bundle-id'erne er laest i Homebrew cask-data (bevis/browser-ids-2026-11-06), ikke maalt paa en installeret app. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mebrew, ikke maalt), teksten i en knap doemmes som knappen, farlig knap navngives og maa ikke skifte Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ds or pays» - reglen kender slet/ryd/fjern/nulstil/afslut/log ud/afinstaller, ingen betaling. Teksten siger nu det, koden goer Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…kke blot paa processen - kapløb, ikke produktfejl Maalt 6/11: 15c roed 3 af 7 under belastning; de roede lukkede paa ~50 ms uden release-mouse, de groenne paa 650-730 ms med. Attrappen satte sin SIGTERM-handler EFTER at have laest svarfilen - et SIGTERM i hullet draebte den, og serveren sendte (rigtigt) ingen release-mouse, fordi en rigtig hjaelper slipper selv ved SIGTERM. Kalibreret: FALSK_TERM_FORSINK=500 aabner hullet - den gamle proeve roed paa 15c+15b, den nye groen (ogsaa uden knappen). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ne stod under 0.4.0, men er nye i forhold til main - intet indhold tabt (linje-sammenligning) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…me-sporet i samme instruktioner - nu: serveren laeser Chrome-sider gennem tilgaengelighedslaget, Browser MCP arbejder bedre inde i siden laering (#10's proeve) og claims-offline groenne. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…on one line Opus R18 (O1, O3): the button's own name decided first; an ancestor without a dangerous name could turn a nameless AXImage inside AXButton «Open» into «not a sender». Now the element and its ancestor are each judged on their own, and either can make it dangerous (monotone). The name in the question is collapsed to one line. Tests 13z3/13z4, each red under its mutant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0.2.1, 0.2.2 and 0.4.0 were never published to npm; the 0.4.0 section is marked as included. Adds the monotone send verdict and its known cost (Opus R18, R1). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
FORVENTET_HJAELPER (sha1) and FORVENTET_IKON (tree sum of the .app) are required. A rebuild with other bytes stops the release, unless the archived candidate (HJAELPER_FIL / IKON_APP) matches; it is then copied in with ditto and measured again. No deletion in the script. Opus R18 (R3). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…SIGKILL Under load the server could read the new calls before it handled the signal (Opus R18: 8 of 30 red). 15b now waits until a writing call is refused with «shutting down» (at most 500 ms per reply, only while the server lives). The fake helper records the SIGTERM it ignores, so stopOgVent skipping the gentle step (mutant M13) turns 15b and 15c red. M11 (no flag): 5 red, no hang. The precondition now also requires the fake's «klar». Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ge is made Opus R19 B1: helper/.build/ is gitignored, so the copy into it failed in a fresh clone and release-fejlmatrix was red 8/8, which would have stopped the dialog receipt and step 2. B2: the fingerprints are measured again, measure only, right before the tag and right before npm publish (a swap after step 1 was packed with the lock green). The archive fallback now requires HEAD:helper to be the tree the candidate was built from (HJAELPER_TRAE) and refreshes the timestamps, so run-all.sh does not call the proven binary older than its source. The failure matrix sets the fingerprints per scenario and adds S7-S12; each new guard turns exactly its scenario red when removed. Notes that the GitHub asset and .mcpb are CI-built. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Opus R19 B4: a space, a line break or an invisible mark (U+200E, aria-label=" ") counted as a name, which switched off the «we don't know what this is» rule. One shared rule (harNavn) now decides it for the danger gate, the send gate, the unnamed check and the name in the question. Danger words are words, so this can only make a verdict stricter. Tests 13z5-13z8, red under the old filter. CHANGELOG also names the new known cost: a named element inside a nameless button is now asked about. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Opus R19 Q3: counted after the wait loop, a writing helper started inside the window would land in the zero point. Now any such helper counts as a breach. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…o files Opus R20 (measured twice): npm packs the working tree, so another mcp-server/index.js was published under the proven tag with both binary locks green. The tree's state (names and content) after step 0 is now a snapshot that fastholdt requires unchanged before the tag and before npm. The script now packs the release itself, measures the helper and icon inside the tarball (bytes, x-bit, no symlink) and publishes exactly that tarball; package.json has no prepack or prepublishOnly, so nothing is skipped. An unknown second argument stops: «—tjek» with a long dash gave a full release. The matrix's npm stub now passes through to the real npm («env -u PATH npm» never found it) and measures inside the tarball; S13-S16 cover the tree, the long dash, a symlinked helper and the archive's timestamp against a real stale-binary guard. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Opus R20 (measured): a recipient or a message that is only U+200E counted as read from the screen, so the person approved something blank. Now each needs a visible character (not only spaces, control or format marks); «👍» is still a message and is asked about. Tests u2 in sende-port, red under each old line. CHANGELOG names the known limits for 0.4.2 (press asks nothing about a nameless or icon-only button; its question shows the search, not the element) and that the GitHub asset and .mcpb are built by CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…file must be HEAD's Opus R21 (measured in the real release tree): vendor/ held two old helper backups, and npm packs the folder, so they would have shipped under the proven tag with every lock green; git status cannot see gitignored files. files now lists vendor/cmcp-helper and vendor/ComputerMCPStatus.app (19 entries, a stray stays out). After npm pack, every file in the tarball must equal HEAD's - the files step 0 itself changed (sync-tal) as they stand in the tree - which also stops an ignored file in bin/ and an assume-unchanged edit. Calibrated both ways on a clean simulated release. Matrix S17-S20: icon without x-bit, ignored key file, assume-unchanged index.js, stray in vendor/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Opus R21 (measured): Hangul fillers, the braille blank, variation selectors and lone accents still counted as visible, and a browser window titled only U+200E skipped the send gate entirely. synlig now treats them as blank (never milder than before; «👍», «🇩🇰» and «é» stay visible), harNavn ignores default-ignorable «letters», and browser titles are cleaned of invisible marks before they are judged. Tests u2, r6b and 13z9, each red under its old line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Six broke in the merge (the Chrome track moved the anchored lines), one in 785a174. All 401 anchors are found exactly once; the seven were run through the port: 0 survived, 0 errors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nothing Opus R22 (measured through the real server): deleting the marks removed the word boundary, so a Send press in Chrome titled «Gmail»+U+FEFF+«Inbox» or «WhatsApp»+U+FEFF+«Web» went through without asking (asked before 0c7ecdb). A space keeps the boundary: 0 milder of 54,491,136 measured titles. Tests r6b (U+FEFF between words, braille blank title) and u2 (a lone accent), each red under its old line (deletion, no \p{M}, !x instead of !synlig). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Opus R22: awk '{print $2}' split a name with a space and kept git's quoting of non-ASCII, so such
a file would be measured against HEAD and stop the release (fail-closed, latent: none of today's
15 files has either). Matrix 23/23 unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0c7ecdb rewrote the two browser-title lines that five mutants anchor on, and 1604a6c's message claimed all anchors were found - measured before that edit. Each anchor now carries the same mutation as on main. All 401 found exactly once (checked in the commit's own command); the five run through the port: 0 survived, 0 errors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…return CI on the 0.4.1 PR (run 42304416072): the screen track (2/11) put an early return before tik() for a standing screen loan (kind=screen, ask=false: a loan without a question is not a question, so no sound). Check 13 required tik() as the first line. It now allows that return - with exactly that condition - and nothing else: Astra's R10 mutant (nyAnmodning calls tik) and an unconditional early return both turn check 13 red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
One release that combines three tracks that touch the same files, merged in this order:
proeve/0.4.1): honest background consent text, LICENSE in the npm package, patched dependencies.feat/browser-overlevering): instructions for handing web work to the Chrome the person already uses.before anything leaves the machine, refuses to type into a password manager's own page, and asks before any click that sends.
0.4.0 was never published to npm (npm has 0.1.0), so 0.4.1 is the first npm release since 0.1.0. See CHANGELOG.
Merge fixes made here
scripts/release.shputs only the helper and status icon that the receipt proved into the npm package (sha1 / tree sumrequired). The working tree is a snapshot after step 0 and must be unchanged before the tag and before npm, and the
script packs the release itself, measures the helper and icon inside the tarball, and publishes exactly that tarball.
An unknown argument stops (
—tjekwith a long dash was a full release). The GitHub release asset and the.mcpbare built by CI from the tag, not the proven binary.
«we don't know what this is» rule in the danger gate; in the send gate, recipient and message must be visible, and an
invisible mark between or after words in a browser window's title is read as a space, so it cannot remove the gate there.
(A mark inside a name, such as «Wh»+U+00AD+«atsApp», is not caught - the same as in 0.4.0.)
line and with exactly that condition, before the sound. It checks the condition, not the rest of that line (tightening it
is listed for 0.4.2).
Evidence
27d9fc0(which only changes test/ikon-lyd.mjs overe9ca16a): the 56 tests of run-all.sh that do not take the screen oruse Chrome: 55 green, and
optagelse-udelukkerfailed once under heavy load and passed when run alone.ikon-lydwas red one9ca16a(this PR's first CI run) and is green on27d9fc0. The teststhat take the screen or Chrome run in the dialog receipt. Page check green;
sync-tal.pyidempotent. New guards mutation-proven (each mutant turns exactly its scenario red).5a3784bd: six live Chrome tests passed twice, nine mutants all red, Chrome's screen-reader switchmeasured off afterwards (on
cbfc2a96 Nov 16:51 CET; on4ac27976 Nov 17:53 CET; one9ca16a6 Nov 22:51 CET; on27d9fc06 Nov 23:35 CET)Known and accepted
O4, O5 (need a new helper), O7, O8, and a policy.js comment, as listed in review R18.
🤖 Generated with Claude Code