Skip to content

computer-mcp 0.2.2: the box, the stop button, pop-ups stay shut, screenshots in place - #8

Merged
GLouv merged 132 commits into
mainfrom
proeve/0.2.2
Oct 23, 2026
Merged

GLouv merged 132 commits into
mainfrom
proeve/0.2.2

Conversation

@GLouv

@GLouv GLouv commented Oct 12, 2026

Copy link
Copy Markdown
Member

computer-mcp 0.2.2 - the first npm release since 0.1.0. It includes everything listed under 0.2.1, which was held back in its last live test and never published on its own. The full list is in CHANGELOG.md under 0.2.2.

What changes for the person at the Mac

  • A box in the corner of the screen you work on shows which agents are working and what they do. A waiting question appears there in full, with Allow (Touch ID) and Deny.
  • A screen loan shows in the box with Take the screen back now.
  • Pop-ups behind your work stay shut. A press on a pop-up, menu button or combo box is refused in the background, and so are keys while the focus is on one.
  • A screenshot of one app shows its windows where they are, also on a non-Retina display, so the blackout covers password fields.
  • macOS's own password signal stops typing and pasting. A search that ran out of time no longer picks for you.

Proof on this SHA (df906cd)

  • Full local suite 59/59, and the mutation gate catches 231 of 231 mutants (screen unlocked throughout).
  • CI 38259096408 is green. Fremmed Mac 38241012093 is green on attempt 2; attempt 1 flaked in one concurrency check, where a switch to the simulated person's TextEdit was attributed to an agent.
  • A two-model review panel approved it (rounds R28-R30).

Before merge: the live F1 test with the maintainer at the screen (box answers + Touch ID). Supersedes #6.

🤖 Generated with Claude Code

Gustav Louv and others added 30 commits September 28, 2026 16:52
…e port

- ci/release/udgiv-npm: macos-14 -> macos-15 (SCRecordingOutput mangler i 14-SDK, CI rød på main)
- README + vejledning: fjern 'nothing comes to the front'; sig at forgrunden gives tilbage
- menu-needs-front: 'may be' i stedet for påstået årsag; peg ikke paa en vej der afvises bagfra
- brugsscenarier: skærm taget (selv med tilbagegivning) = 'delvist', ikke 'bevist' (MANDAT)
- fremmed-mac: samlende port fejler jobbet hvis suite/mutant/scenarier ikke bestod

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…skets at give

Gustav 28/9: modellen skal vide den kan alt et menneske kan, og enten finde vejen
eller spørge (computer_ask_user) frem for at stoppe. Login/kodeord, afsendelse til
et rigtigt menneske, og forgrund er menneskets; aldrig taste kodeord, aldrig omgå
en afvisning.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…laim 45 groen)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fandt af batch-2-hærdningen (29 bekræftede huller): programlaas.js:45 kørte
handlingen alligevel ved enhver ikke-EEXIST låsefejl (ENOTDIR/EACCES). To agenter
kunne skrive i flæng i samme program - netop det låsen skal forhindre. Nu:
kan låsen ikke tages, sker handlingen ikke, med en ærlig grund (infra, ikke contention).
Prøve test/laas-fejler-lukket.mjs tvinger ENOTDIR frem; revert af M1 gør den rød.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fandt af batch-2-review'et: givTilbage() gav forgrunden tilbage naar maalprogrammet
kom frem UANSET nyligt menneske-input - klikkede mennesket selv over i dét program,
rev vi det tilbage. Nu gaelder menneske-tjekket i alle grene, og et forgrunds-skift
vi lader staa rapporteres aerligt (took_screen:true, gave_back:false) i stedet for
et tavst false. Paa en maskine uden menneske (køreren) er adfaerden uaendret, saa
giv-tilbage-mutanten verificerer fortsat.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
M4-ændringen fjernede den linje den gamle mutant patchede (efter.forrestPid==maal
|| !menneskeRoerteNetop()), saa mutanten kunne ikke anvendes og 'overlevede'
falsk. Ny mutant: faa menneske-tjekket til altid at fyre -> forgrunden gives
aldrig tilbage -> proeven bliver roed. Beviser M4's invariant paa en maskine uden menneske.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…kert

Baggrunds-doeren fra batch-2-spec'en, foerste skive. Modellen giver et intent
(open_app/play_track/open_chat) + EN typet parameter, ALDRIG en URL - serveren
bygger en fast app-URL og validerer parameteren strengt (kun cifre/bogstaver).
Helperen aabner den med NSWorkspace .withoutActivation og dobbelt-tjekker mod en
haardkodet scheme-allowlist (spotify/whatsapp/claude). Doeren navngiver sit maal
via intent'et, saa porten ikke kalder den 'ukendt maal'. Baerer navigation, ALDRIG
et send. test/doer.mjs (8 tjek) beviser: intet url-felt at injicere i, bad
id/phone/bundle/intent afvist, praecis app-URL bygget. Swift-open-url + funktionen
verificeres paa hhv. koereren og Gustavs Mac.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Tilfoej computer_open til vaerktoejslisterne (README, llms.txt, tools.html,
capability-matrix), bump tool-tallet 30->31 (14 laesende, 17 skrivende) paa alle
tekstflader + gemini-extension.json. Udvid ORD-ordlisten i baade sync-tal.py og
claims.mjs forbi 'thirty' (crashede/parsede undefined ved 31). Ret to test-hygiejne-
fund: doer.mjs saetter fake osascript (vagt 26), og open-url's fejltekst hejser
join'et ud i en variabel saa lintens streng-udtraekker ikke eksponerer et dansk
variabelnavn (vagt 27). claims.mjs groen. Ingen kode-logik roert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ut-bug

- main.swift: computer_open's open-url smed sem.wait-resultatet vaek -> en TIMEOUT
  rapporterede 'aabnet' i stedet for fejl. Nu er timeout en fejl (open-timeout).
- tools.js: doeren lovede 'without bringing it to the front' (umaalt) + 'the person
  confirms it' (ikke haandhaevet). Nu aerligt: aktiverer ikke, men kan komme frem og
  gives tilbage; send er en separat handling uden indbygget bekraeftelse.
- CHANGELOG 0.2.1: fjern 'Only a switch to the target app is counted' (M4 gjorde den
  falsk; release.sh laver GitHub-noter af dette afsnit), tilfoej doeren + M1-laasen.
- README: 'Twenty are offered'->23, 'twelve that only look'->14 (drift claims.mjs ikke fanger).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…owlist + udvid release.sh ord-liste forbi thirty

Fable-review: 'claude' var i helperens open-url-allowlist uden at noget intent byggede
den (død angrebsflade) - fjernet. release.sh's WORDS stoppede ved 'thirty', saa ved 31
vaerktoejer blev $WORD tom og regex'en matchede alt (samme fejlklasse som sync-tal/claims,
allerede rettet der) - udvidet til forty. Ikke-blokerende, defensivt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ny ledende differentiator-bullet: Claude Code/Cursor/VS Code/Codex/Windsurf/Zed/egen
agent - samme npx-server overalt, ikke bundet til én leverandørs desktop-app eller plan.
Universaliteten stod kun i install-sektionen, ikke i overskriften.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Anthropics mcpb-CLI (v2.1.2). Manifest 0.3 + scripts/build-mcpb.sh bygger en
self-contained bundle: server-filer + node_modules + vendor (helper+status-app),
node ekstry_point (ikke npx, matcher MCPB-designet). Bygget+valideret+pakket lokalt:
computer-mcp-0.2.1.mcpb, 4,3 MB, 2377 filer, mcpb validate grøn. Artefakten gitignored
(bygges on demand). Indsendelse til Smithery + notarisering forbliver Gustavs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ikke ikonet/Touch ID

dcf361a lovede «computer_ask_user: question waits in the menu bar icon and the person
answers with Touch ID». MÅLT: ask_user er i TAGER_SKAERMEN (afvises i baggrund) og dens
handler kalder askHumanToDo = en osascript-boks, ikke ikonet, ingen Touch ID. Teksten er
nu sand: ask_user er en forgrunds-prompt (afvist i ren baggrund), mennesket taster selv
hemmeligheder, og ikon-consent-porten (computer_pending) er en SEPARAT mekanisme for
skrivehandlinger. Samme ærligheds-klasse som forgrunds-løfterne i 47c80f2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Panelet 29/9 (Astra + Fable): kun set_value naegtede sikre felter. type faldt
tilbage til tastetryk og tastede i kodeordsfeltet, og «bruger<Tab>kode» hoppede
ind i feltet midt i teksten. Nu spoerges foer hvert tegn; efter Tab/Enter ventes
der paa fokusskiftet.

Proeve: skriv-ankommer 3/3k/3b (ingen tekst) + 3c (fokus flytter undervejs,
SIGUSR1 i fixturen). Mutationsbevis M5 (opslaget siger aldrig sikkert) og M6
(tjek kun ved start) skal begge give roedt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Panelet 29/9: protokollen klippede teksten ved 200 tegn og Touch ID-arket ved
80, uden at sige det. Et ja daekkede noget mennesket aldrig saa.

- serveren sender teksten hel (op til 4.000 tegn); en laengere spoerges ikke
- ikonet viser den ombrudt i undermenuen lige over «Allow…», i sort
- Touch ID-arket siger naar det forkorter, og hvor resten staar
- ikonet laeser op til 64 KB (16 KB kunne klippe)

Proever: ikon-godkend A14 (hel tekst) + A15 (over loftet: ikke spurgt),
ny test/ombryd.mjs (intet tegn falder ud, ingen linje over 64). Mutationer af
alle tre vagter giver roedt (koert lokalt).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Panelet 29/9: porten er brugt 3 gange paa ni dage - bevis fejlvejene foer
den udvides. Ny F-blok i ikon-godkend (falsk ikon, ingen skaerm):
F1 ikonet gaar ned midt i spoergsmaalet -> nej · F1b naeste spoergsmaal virker
straks · F2 ulaeseligt svar -> nej · F3 svar i to stykker -> ja · F4 ikonet
vaek -> afvist uden at haenge · F4b nyt ikon -> porten virker igen.

Og en instrumentfejl: «sent-ja» brugte `sock` uden at closuren fik den, saa
det sene ja blev aldrig sendt (ReferenceError slugt af try{}). A13 maalte
kun «intet svar».

Mutationer (lokalt): venter aldrig nulstillet, buffer overskrevet, lukket
forbindelse = ja - alle tre giver roedt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e-ikonet

Panelet 29/9 (Fable): vejledningen lovede at ask_user venter i ikonet med
Touch ID; i virkeligheden var den skjult i baggrund og en osascript-boks i
forgrund. En agent der ramte et kodeord eller en 2FA-kode kunne kun give op.

- ny spoergsmaalstype «goer-selv» i ikonet: hele teksten, hvor det lander
  (skrevet af serveren), «Take me there» (MENNESKETS klik henter frem),
  «Done — I did it» og «I won't do this»
- «Done» er et signal, ikke et samtykke: godtages KUN paa et goer-selv-
  spoergsmaal, saa det aldrig kan blive et ja til en anden handling
- i baggrund kraever den `app`; uden ikon afvises den, aldrig en dialog
- 24 af 31 tilbydes nu i baggrund (fra 23); README, site og vejledning rettet
  (capability-matrix bar ogsaa S1's nu usande «every password field gets
  keystrokes»)

Proever: ikon-godkend del E (E1 goer-selv + serverens «hvor» + done:true +
ingen dialog · E2 nej · E3 «done» paa et samtykke = nej), baggrund-stille 2b.
Mutationer (lokalt): «done» godtaget overalt -> E3 roed; modellen skriver
«hvor» -> E1 roed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dommen 28/9 (D4 + trin 7): foer fandtes intet beskedapp-begreb, og Send i
WhatsApp gik igennem i allow uden at nogen blev spurgt.

- BESKED_APPS (WhatsApp, Messages, Mail, Slack, Telegram, Signal, Discord,
  Teams, Outlook, Messenger, Spark, Superhuman, FaceTime)
- afsendelse = Send trykket (press --dry: samme element som trykket) eller
  klikket (at: navnet under punktet), Return/Enter med enhver modifikator,
  Mails cmd+shift+d, et menupunkt der hedder Send/Reply
- spoergsmaalet viser modtager og tekst LAEST AF SERVEREN fra skaermen (ny
  hjaelper-kommando `samtale`), aldrig modellens ord; ulaeseligt siges aabent
- linjeskift i computer_type i en beskedapp afvises (det sender)
- genkontrol under laasen: aendres modtager/tekst efter ja, sendes intet
- kan det ikke afgoeres om noget sender, spoerges der (fejler lukket)

Proeve: test/sende-port.mjs (a/a2/b x6/c x3/d/d2/d3/g/u, falsk ikon + falsk
hjaelper med scriptede skaerm-svar, ingen skaerm). (e)+(f) = ikon-godkend
A7/A13/E3. Mutationer lokalt: ikke spurgt · return ikke send · linjeskift
slipper · ingen genkontrol · modellen skriver modtager - alle fem roede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… den tilbage

Panelet 29/9 (B2 + B5): forgrund kunne kun slaas til med CMCP_BACKGROUND=0
og en genstart, pr. server - 21 servere kunne vaere uenige om én skaerm, og
syv vaerktoejer var uden for raekkevidde for en agent der manglede ét traek.

- nyt vaerktoej computer_request_screen (request/release/status): mennesket
  godkender i menulinje-ikonet med Touch ID, hoejst 15 minutter, én agent ad
  gangen («optaget» er ikke et menneskes nej)
- laanet ER den aabne forbindelse til ikonet: tiden gaar, «Take the screen back
  now», ikonet doer eller serveren doer -> forbindelsen lukkes -> slut. Intet
  paa disk en agent kan pille ved. Serverens eget ur gaelder ogsaa.
- vaerktoejslisten meldes aendret (tools/list_changed) ved start og slut
- B5: under laanet pauser hver skaerm-tagende handling, naar mennesket bruger
  tastatur/mus; input FOER vores egen sidste handling taeller ikke (ny
  hjaelper-kommando `idle`). Kan det ikke laeses: intet sker.
- CMCP_BACKGROUND sat er et loft: intet laan, ikonet spoerges ikke
- ét samtykke-spor: ogsaa i forgrunden spoerges ikonet (Touch ID) foerst;
  osascript-boksen er kun faldbag naar ikonet ikke koerer
- 32 vaerktoejer, 25 tilbudt i baggrund; README, site, llms, gemini rettet

Proeve: test/skaerm-laan.mjs (19 tjek, falsk ikon + falsk hjaelper). Mutationer
lokalt: laan virker ikke · tilbagetagning ignoreret · menneske ignoreret ·
loft ignoreret · ikonets ur ignoreret - alle fem roede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Panelet 29/9 (B6, «sikkerhedskontrol uden for agenten»): koden indroemmer
selv at porten ikke er et faengsel - en agent med shell under samme bruger kan
klikke med osascript, og browser-automation kan sende fra webmail, helt uden
om serveren. Intet i pakken kan forhindre det (alt er skrivbart for samme
bruger). Kontrollen der ligger uden for agenten, er klientens tilladelser.

- computer_permissions laeser Claude Code's settings (kun laesning) og naevner
  KUN de regler der er omveje: aaben Bash, osascript, browser klik/udfyld/
  naviger/eksekver. Andre klienter laeses ikke - og det siges.
- SECURITY.md: «What the consent gate is, and is not»; README + CHANGELOG

Proeve: test/omveje.mjs (8 tjek, midlertidig indstillingsfil). Mutationer
lokalt: osascript overset · alt naevnes (laek) - begge roede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ring

MANDAT: hver vagt skal kunne blive roed. De 20 mutanter jeg koerte i haanden
for S2, S3, B3, B4, B2/B5 og B6 staar nu i .github/mutanter-porte.json og
koeres af .github/mutant-porte.py i «Mutationsbevis»-trinnet. Hver fil
gendannes fra en kopi (aldrig fra git) og hash-tjekkes bagefter.
Lokalt: 20 af 20 roede, 0 overlevede, 0 gendannelsesfejl.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Goer-selv, skaerm-laanet og den fulde tekst var kun kompileret i ikonet.
Undermenuens indhold bygges nu af én ren funktion (spoergsmaalMenu) som baade
menuen og `cmcp-status --dump-question` bruger - uden at ikonet vises.

Proeve: test/ikon-menu.mjs (samtykke Allow/Deny + hel tekst + tegn-antal +
Touch ID-arkets «forkortet»; goer-selv uden Allow; laan med minutter, loft 15,
«Take the screen back now»; linjeskift kan ikke tegne knapper). Vaelger den
nyeste binaer og draeber efter 10 s: en aeldre ville starte det rigtige ikon.
Mutation lokalt: goer-selv faar Allow -> roed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Panelet 30/9 (Astra + Fable, begge IKKE GODKENDT):
- R1 (Astra 7, Fable F1): osascript-boksen var faldbag for ALLE «ikke spurgt»
  - ogsaa efter et nej, over loftet, med et ventende spoergsmaal. Under et laan
  er serveren i forgrund, saa et nej i ikonet kunne omgaas. Nu kun naar ikonet
  ikke koerer (`ikkeKoerer`).
- R2 (Astra 4): et skaerm-kald der ventede paa laasen, mens laanet sluttede,
  blev udfoert. Nu genmaales under laasen; og skaerm-tagende hjaelpere der
  koerer, draebes naar laanet slutter.
- R8 (Astra 5, Fable F2): pausen gaelder ALLE skrivende kald under laanet
  (ogsaa stille med app); menneske = input nyere end vores egen sidste handling.
- R9 (Astra 8): en laanegrund over 4.000 tegn spoerges ikke (klippedes tavst).
- R12 (Fable F5): intet laan uden at loggen kan skrives.
- R13 (Fable F6): udloeb paa eget ur meldte ikke vaerktoejslisten.

Proever: ikon-godkend G1-G3; skaerm-laan 5c, 5d, 6b, 7b, 9b - og proeven
scripter nu «hvem er forrest» og «hvem ejer punktet», saa den aldrig laeser den
rigtige skaerm (6b var groen af forkert grund; 5 koersler i traek groenne).
Mutanter lokalt: R1, R2, R8x2, R9, R13 (oprindelig fejl) - alle roede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Panelet 30/9 (Astra + Fable, begge IKKE GODKENDT):
- R4 (Astra 2): genkontrollen koerte kun naar foerste dom var «send»; nu doemmes
  der ALTID igen hvor noget kan sende, og dommen skal vaere identisk
- R5 (Astra 3, Fable P4): fingeraftryk af hele aflaesningen (vindue, alle
  overskrifter, tekst); ulaeselig modtager ELLER tekst -> intet sendes; modtageren
  laeses i feltets kolonne over feltet (ikke sidebarens oeverste navn)
- R6 (Astra 1, Fable F3/P3): send-ord paa 8 sprog (Afsend, Besvar, Envoyer ...);
  en navnloes KNAP er en mulig send; mellemrum paa en knap; webchat/webmail i en
  browser genkendt paa vinduets titel; flere apps paa listen
- R7 (Fable F8/P6/F4): chat og mail adskilt - i mail er Return en ny linje og en
  mail med afsnit kan skrives; i chat afvises alle styretegn undtagen tab
- R14 (Fable F7): FaceTime ud - et opkald er ikke en besked
- R3 (Astra 6): kodeordsvagten fejler LUKKET - ukendt fokus/rolle stopper skrivningen
- R10 (Astra 9): mutationsporten kraever rc 1 + en DUMP-linje; alt andet er en
  instrumentfejl, ikke et bevis; mutanter med flere aendringer understoettes
- R11 (Astra 10, Fable P1): README «Twenty-four» -> 25, og claim 42d vogter tallet
- R15 (Fable P5): omvejs-listen fanger skaller/fortolkere (bash, zsh, python3,
  node ...) og hele browser-servere - tre stod i husets egne indstillinger

Og to fund undervejs:
- et navnloest MENUPUNKT (Apple-menuen i en chat-apps menulinje) er ikke en
  send-knap - claim 35 blev roed paa Gustavs Mac fordi WhatsApp var forrest
- privatliv: den falske hjaelper sendte `samtale` videre til den rigtige, saa en
  proeve kunne laese en udviklers rigtige chats; uscriptet svarer den nu tomt

Proever: sende-port 37 tjek, skaerm-laan, ikon-godkend, omveje 4b/4c, claims 42d,
skriv-ankommer 4/4b (kolonne-aflaesning mod proevemaalet - kun paa CI).
Mutanter lokalt: 33 af 33 roede, 0 overlevede, 0 instrumentfejl.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Astra R2 (IKKE GODKENDT) + Fable R2 (GODKENDT m. anbefalinger):
- Q1 (Astra 1): laanets nummer blev talt op FOER spoergsmaalet, saa en samtidig
  anmodning gjorde det godkendte laans slut ugyldigt - laanet sluttede aldrig.
  Nu faar kun et ja et nummer. En skrivning doemt under et laan sker ikke, hvis
  laanet er slut lige foer udfoerelsen (efter alle opslag). Ved laanets slut
  draebes ALLE hjaelper-processer der ikke er rene opslag (Fable 3: stille type,
  paste, launch, vindueskald fortsatte), og svaret siger «took the screen back».
  Et laan der ikke kan skrives i loggen efter ja'et, gives ikke.
- Q5 (Astra 5): kun handlinger der poster input flytter «vores sidste handling».
- Q6 (Astra 6): loft, pause og ventende spoergsmaal tjekkes FOER det afgoeres om
  ikonet koerer - ellers blev et manglende ikon til en boks lige efter et nej.
- Fable 9: afvisninger i forgrund havner i computer_pending (koe); release
  logges én gang.

Proever: ikon-godkend G3a/G3b/G3c (G3c i frisk proces), skaerm-laan 6c/6d/6e
(falsk hjaelper kan nu «arbejde» i _vent ms; falsk ikon kan svare langsomt).
Mutanter lokalt: ingen binding, stille draebes ikke, oprindelig nummerfejl
(to aendringer) - alle roede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…Q4 Q7 Q8 Q9

Astra R2 (IKKE GODKENDT) + Fable R2 (GODKENDT m. anbefalinger):
- Q2 (Astra 2): kodeordsvagten tabte opslagsfejl paa underrollen (`string()`) og
  AX-indsaettelsen skrev foer tjekket. Ny `sikkerStatus`: «findes ikke» ≠
  «fejlede»; ukendt stopper BEGGE skriveveje. `samtale` laeser kun vaerdien af
  et felt der VIDES ikke at vaere sikkert.
- Q3 (Astra 3, Fable 4): uden kolonne (feltets ramme) intet send; et soegefelt
  er ikke en besked; Send-knappen skal ligge i samtalens vindue (press --dry og
  at melder nu vinduet); kun foerste overskrift vises som modtager.
- Q4 (Astra 4, Fable 7): browser med ulaeselig titel = chat (fejl lukket); chat
  foer mail («Gmail - Slack»); forankrede navne, signal ude, Google Chat ind;
  flere browser-id'er.
- Q9 (Fable 2): ved et KLIK er et navnloest element kun send hvis knap/billede.
- Q8 (Fable 1): omveje fanger sudo, fuld sti, npx playwright, env/xargs, Claude in
  Chrome, computer-use, remote-devices; README/SECURITY: «the rules it recognises».
- Q7 (Astra 7): M5 var brækket af min egen R3 (anker 0 traef - CI ville vaere
  roed); genankret. Shell-runneren fejler nu ved manglende anker og kraever rc 1
  + DUMP. Hver JS-mutant har `forventet`: kun DENS prove taeller som bevis.
- To overlevende mutanter afsloerede dublerede vagter (loftet to steder; «laanet
  sluttede mens kaldet ventede» to steder). Én vagt pr. regel nu.
- Svage tjek skaerpet: «spoerger ikke» kraever nu ogsaa at handlingen skete.

Proever: sende-port 49 tjek (q3, q4, q9, Cmd+Return i mail, webmail), omveje
4d/4e. Mutanter lokalt: 44 af 44 roede i den forventede prove, 0 overlevede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-kontrollens binding

Astra R3 (IKKE GODKENDT, 6) + Fable R3 (IKKE GODKENDT, 1):
- Fable R3: `isSecure` (set_value, sloeringen, focused, inspect) tabte stadig en
  fejl paa underrollen. Rettet i ÉT sted: isSecure = sikkerStatus != false, saa
  alle syv kaldesteder er fejl-lukkede. skriv-ankommer 3s/3sw: set_value i et
  kodeordsfelt afvises (M5 daekker nu ogsaa den vej).
- Astra R3 1: laanVedDom blev taget 40 linjer efter baggrundsporten; nu i samme
  synkrone oejeblik.
- Astra R3 2: Send-kontrollens vindue SKAL kunne laeses, og kontrollen skal ligge
  paa beskedfeltets raekke (samtale/at giver nu rammer).
- Astra R3 3: en ukendt rolle ved et klik er en mulig send (kun kendt ufarlig
  rolle som AXGroup er undtaget).
- Astra R3 5: en skrivning via tilgaengeligheds-laget flytter ikke «vores sidste
  input»; computer_space gør. Laanets tekst + README siger aerligt: hvert trin
  venter mens du bruger tastatur/mus; et trin der koerer, bliver faerdigt - eller
  stoppes naar du tager skaermen.
- Astra R3 4 (browser, ukendt side): IKKE aendret - et produktvalg (se tråden).
  README siger nu praecis hvilke sider der genkendes. X tilbage paa listen.
- Astra R3 6: shell-runneren binder nu ogsaa til den forventede prove.
- Smaat: press --dry og paste draebes ikke ved laanets slut (paste ville tabe
  udklipsholderen); aerlig besked «the screen loan ended»; env bash i omveje;
  kommentaren i spoerg fortaeller hvorfor venter/pause tjekkes igen efter await.

Mutanter lokalt: 47 af 47 roede i den forventede prove, 0 overlevede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… Swift-mutanternes forventede tjek

GitHubs Mac, 2485a66: Suiten failure paa «klik rammer ejeren» tjek 6 - sende-
porten afviste et almindeligt klik i Chrome, fordi prooevens stub ikke svarede
paa `samtale`, og Q4 goer en ulaeselig browsertitel til chat (Fable R3 h
forudsagde det). Og hvert klik i en browser koerte hele samtale-aflaesningen
(op til 4.000 elementer) bare for titlen.
- `samtale --title-only`: kun vinduets titel, billigt; bruges til browserens klasse
- klik-ejer-stubben svarer med en almindelig sidetitel
- Swift-mutanterne M1-M4 blev roede paa tjek 2b/2/3 (ikke 4b som jeg satte i
  9370f0d); FORVENTET rettet efter CI-loggen

Lokalt: 9 stub-prover groenne, 47/47 JS-mutanter roede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, AX-stemplet, paste

Astra R4 (IKKE GODKENDT, 4) + Fable R4 (IKKE GODKENDT, 1 - = Astra 3):
- Astra 1: laanets tilstand tages ved KALDETS START, foer den foerste vagt der
  afhaenger af det; aendres den undervejs (sluttet, begyndt, skiftet) sker intet.
- Astra 2: Send-kontrollen skal ligge VED SIDEN AF beskedfeltet (samme raekke og
  hoejst 160 pt til hoejre); et opslag der fejler, afviser (erKontrol foer
  opslaget); i en browser doemmes ogsaa kontrollens vindue - naar det er LAEST
  (en manglende titel er ikke en chat: klik-ejer 1/9 var roed af det).
- Astra 3 / Fable 1: min runde 3-rettelse var DOED KODE - den ledte efter
  «method» i svarets prosa. Nu et struktureret, ikke-talt felt; stemplet flyttes
  kun efter en handling der lykkedes og postede input. Prove 5e + mutant.
- Astra 4: paste var undtaget fra afbrydelse; nu faar den SIGUSR1 og stopper FOER
  Cmd+V og laegger personens udklipsholder tilbage. Prove 6f.
- Fable 2/3: CHANGELOG og SECURITY siger det samme som README (titel-afgraensning
  under «Out of scope»); ikonets tekst: «messages in the apps and web chats it
  recognises». Shell-runnerens match er forankret til DUMP-linjer.
- CI b626996: skriv-ankommer 3s ledte efter ROLLEN AXSecureTextField; et native
  kodeordsfelt har den som UNDERROLLE. Rettet.
- Prover: forudsaetninger tjekkes nu (laanet blev givet, flytningen skete); 5d
  og 6b var TIMING paa en belastet maskine, ikke kodefejl; CMCP_MENNESKE_SEK
  (standard 1,5) giver proeven brede marginer.

Mutanter lokalt: 52 af 52 roede i den forventede prove (en fuld koersel + 5
genkoert efter instrumentfejl under belastning, som runneren korrekt ikke talte
som bevis; browser-mutanterne genkoert efter titel-rettelsen).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e-signalets opstart

Fable R5: GODKENDT. Astra R5: IKKE GODKENDT (3) - alle tre maalte og rettet:
- Astra 1: «intet laan -> laan -> intet laan» under ét kald saa ud som «uaendret»
  (0 === 0). Nu et generationsnummer der taeller hver aendring (laanOejeblik);
  enhver aendring under kaldet -> intet sker. Prove 6g + mutant (den gamle
  nul-binding goer praecis 6g roed).
- Astra 2 = Fable 1: en browser-Send-kontrol hvis vindue ikke kan laeses, blev
  ignoreret foer navnet blev doemt. Nu doemmes et ulaeseligt vindue som ukendt
  (chat, fejl-lukket). Prove r4d + mutant. klik-ejer-stubben giver nu vinduer som
  den rigtige hjaelper.
- Astra 3: SIG_IGN kom foer signalkilden - et SIGUSR1 i hullet blev tabt. Nu
  kilden FOERST (et signal foer SIG_IGN draeber processen foer noget er roert),
  helt oeverst i `paste`; en laas koordinerer «stop» med «tryk Cmd+V».
  Ny test/paste-stop.mjs maaler den RIGTIGE hjaelper (kun paa en fremmed maskine:
  et svigtende stop ville indsaette tekst) + Swift-mutanter M7/M8.
- Fable smaat: tools.js-teksten om «messages still ask» foelger README;
  CMCP_MENNESKE_SEK kan kun haeve graensen; shell-runnerens forventede praefiks
  skal staa forrest paa en DUMP-linje.

Lokalt: 14 stub-prover groenne; de 7 beroerte mutanter roede i den forventede
prove (fuld liste: 54, koeres paa GitHubs Mac).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gustav Louv and others added 28 commits October 9, 2026 10:24
…neregel

Astra (IKKE GODKENDT) og Opus (rettelser) MAALTE at f5066ef/c3bb330 kunne lade
porten og leveringen vaelge forskellige programmer: Swifts trim fjerner U+0085
og U+200B men ikke U+FEFF, `lowercased()` paa hele strengen og Swifts kanoniske
`==` (é = e+U+0301) - JS goer det modsatte. «Computer MCP\u0085» var ukendt for
porten og menulinje-ikonet for hjaelperen.

- Navne.swift: JS' trim-maengde ordret, smaa bogstaver tegn for tegn,
  sammenligning paa tegn; bundle-id praecist, saa uden store/smaa (som
  findProgram); tvetydig er sit eget svar, og opstarten falder ikke til disken.
- Hjaelperen slaar navne op ét sted (Navne.oversaet ved indgangen, AX.appOpslag);
  alle filtre sammenligner kun id - leveringens og vinduernes navne-reserve er
  vaek. Undtagelse: adgangskode-tjekket i skaermbilledet, som kun kan afvise.
- helper.js findProgram: samme trin, smaa bogstaver tegn for tegn.
- test/usynlige-navne.mjs: 18+6 tabelraekker gennem begge sider, trim/Cf/smaa
  sammenlignet for HVERT Unicode-tegn (25/170/1488 ens), kaldestederne bundet
  med praecise udtryk, den rigtige hjaelper paa Finder (ogsaa paa CI) og
  «Finder\u0085» -> intet. 70/70.
- Mutanter U1-U22: alle roede (inkl. konsulenternes overlevende A1/A2, A13,
  A14, M1-M6). 144 ankre entydige.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, og spoergsmaalet med Allow (Touch ID)

Gustav 9/10: «flydende komponent i hoejre hjoerne ... saa man kan se hvad der
sker, naar de koerer» og «saa kan jeg ogsaa goere hvad du beder mig om»; «1 ja»
til Allow i boksen (R9 kraevede hans udtrykkelige ja). MAALT under F1: P1
udloeb, fordi boksen stod i hjoernet af den anden skaerm (x=4794 paa en
ultrabred skaerm, musen var der) og kun sagde «Needs you».

- Placering: skaermen med det forreste vindue (ellers musens), flyttes med naar
  mennesket skifter skaerm og naar skaerme saettes i/tages ud.
- Indhold: op til tre agenter med program og hvad de goer nu (+N).
- Spoergsmaal: orange, hvem der spoerger, HELE teksten (<=280 tegn) og menuens
  egne knapper. Allow gaar gennem tilladNonce -> bekraeftMenneske (Touch ID),
  samme vej som menuen; laengere spoergsmaal faar ingen Allow i boksen.
  Knapperne svarer paa det spoergsmaal boksen viste (nonce med teksten).
- Tager aldrig tastaturet (canBecomeKey false, .nonactivatingPanel);
  sharingType .none (at den holdes ude af skaermbilleder er UMAALT, derfor ikke
  lovet i README).
- Tekst.swift: boksIndhold, boksSkaerm, cocoaRamme (rene, proevede).
- test/ikon-boks.mjs 25/25 (indhold, skaerm, --dump-question, bindinger);
  ikon-menu 3c opdateret. Mutanter X1-X13 alle roede. 157 ankre entydige.
- README/CHANGELOG: boksen beskrevet; «the only thing on your screen» og
  «Allow only in a submenu» rettet. Sitets sider tages i dok-runden ved 0.2.2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…levende mutanter lukket

- Hver boksknap baerer sit eget engangsnummer; et klik fra en visning der er
  skiftet siden, goer intet (boksKnapTrykket afviser n != boks.nonce).
- boksHjoerne og forrestVinduesRamme flyttet til Tekst.swift og proevet med
  adfaerd (hjoernet inde paa skaermen; det forreste PROGRAMS forreste lag-0-vindue).
- Kroppene bundet helt: appOpslag (intet foer reglen), programURL (praecist
  filnavn, ellers HELE listen), tilladNonce (et nej er et nej), aaben (kun eget
  engangsnummer), placer (boksHjoerne), forrestVindue (forreste programs pid).
- README/CHANGELOG: over 280 tegn er det Allow der kun findes i menuen
  (Deny/Done staar stadig i boksen). Proeve 5i lover ikke mere end koden viser.
- Mutanter Y1-Y9 (Astras A17-A22 m.fl.) alle roede. 166 ankre entydige.
  ikon-boks 30/30, usynlige-navne 70/70, ikon-menu 19, resten groenne.

Ikke med her: binding af maal + proces ved levering (Astra: 0.2.2, Opus R16:
0.3) - afgoeres i R17 med Opus' svar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…g boksen viser hvor og hvor laenge

Bundet maal: har porten fundet et KOERENDE program, faar alt efter porten
(forhaandstjek, genmaaling, levering) det valgte id som `=<id>` (appArg i
index.js). findProgram og Navne.oversaet slaar saa kun det praecise id op; er det
vaek, svarer hjaelperen app-gone, og intet sker. Tekst, samtykke og log beholder
agentens navn. Opstart af et LUKKET program beholder navnet (Opus 3a: et id ville
lade Launch Services vaelge enhver kopi). «Er det programmet mennesket bruger?»
vurderes over alle processer med id'et (Opus P2: regression fra c3bb330).

Programmer uden bundle-id (fx bygget med swiftc) faar «pid:<n>» som id ved
indgangen, og alle filtre sammenligner gennem AX.passer - fundet af
test/vaelger.mjs, som var roed efter 269f9ca.

Boksen: menuens fakta (omfang + «Lands in») altid hele (Opus 4c); knapperne venter
1 s efter et nyt spoergsmaal og er fra mens Touch ID er oppe (4b, 4f); trykket
afgoeres af boksHandling (ren funktion, proevet med adfaerd). README/CHANGELOG:
hvem, hvad, hvor og hvor laenge; «you see everything a yes covers».

Proever: bundet-maal 4/4 gennem den rigtige server; ikon-boks 37; usynlige-navne
82; 40/40 skaermsikre proever groenne med suitens miljoe (CMCP_STATUS_IKON=0).
Mutanter Z1-Z16 roede (Z3/Z6/Z16 skaerpet efter de overlevede); 181 ankre.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tjenester afvises, Touch ID-nej proevet

Begge: procesbinding (levering til netop den dømte proces) hører til 0.3.

Astra (R18):
- Bindingen holder gennem hele hjaelperen: AX.kunPraecistId saettes ved
  indgangen; appOpslag tager saa kun det praecise id, og opstarten falder hverken
  til navne eller disken, hvis programmet forsvinder efter indgangen.
- Forhaandstjekkene faar den bundne form (appVaerdi: sendeportens samtale,
  vinduer), og det usloerede skaermbillede bindes ogsaa.
- «pid:<n>» ens i porten og hjaelperen og reserveret (et program der HEDDER
  «pid:5» naas aldrig ad den vej). CHANGELOG: handlinger i et program uden id er
  stadig «ukendt maal».
- Touch ID-svaret gaar gennem touchIdUdfald (ren funktion, adfaerdsproevet), og
  callbacken er bundet omkring den - «let ok = true» kan ikke stå der.

Opus (R18, maalt live): macOS' visningstjenester koerer én proces pr.
vaertsprogram under SAMME id med hvert sit navn («Autoudfyld (Google Chrome)» /
«Autoudfyld (Agent360 IDE)»); leveringen gaar til id'et. Et navn hvis id deles af
en koerende proces med et ANDET navn er nu tvetydigt og afvises - i porten og i
Navne. To vinduer med samme navn (Chrome x2) er ikke tvetydige; dem dækker
«aktiv over hele id'et». Afslaget naevner den proces mennesket bruger.

Proever: usynlige-navne 95, bundet-maal 7 (send-tjek bundet, visningstjeneste
afvist), ikon-boks 38. 39/40 skaermsikre - skaerm-laan D3 er timing under load
(groen 47/47 i foerste genkoersel ved load 12). Mutanter W1-W8, V1-V3 roede;
Z1/Z3/Z6/U2/U9/U14/U21/Y3 opdateret til den nye kode. 192 ankre.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CI 9/10 paa a6673b4 (som Opus forudsagde i R17): GitHubs Mac har Node med Unicode 17
og en Swift-runtime med aeldre tabeller - 28 nye tegn (fx U+A7CE) fik smaa bogstaver
i JS men ikke i Swift, og 3c blev roed. Reglen er den samme; runtimes kender
forskellige tegn. 3b/3c sammenligner nu de tegn begge kender (Swift: properties.age,
JS: ikke \p{Cn}) og naevner versionerne; 3d siger hvor mange der er udeladt (<= 200).
Konsekvensen er en kendt graense for ubundne laeseveje; skrivninger er bundet til
det praecise id (bundet-maal.mjs).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…este-ruten uden usynligt tegn bevogtet

computer_open {intent:"open_app", bundleId:"Passwords"} blev doemt som id'et «Passwords»
(ikke paa adgangskode-listen), mens hjaelperen startede Adgangskoder ved navn - uden
spoergsmaal i standardtilstanden. Ogsaa «com.apple.passwords» (listen sammenligner praecist;
Launch Services er ufoelsom for store/smaa - MAALT paa Gustavs Mac). Nu slaar porten
bundleId op med resolve-app, og svarer hjaelperen ikke PRAECIS samme streng, afvises kaldet
i alle tilstande. Loggen faar en fast grund, ikke modellens streng.

bundet-maal 7 (5 raekker: navn, store/smaa, praecist id paa lukket program, praecist id paa
adgangskodeprogram, fejlet opslag - afvisninger starter intet). usynlige-navne: raekken
«ThemeWidgetControlViewService (WhatsApp)» uden U+200E (navnet findes paa maskinen).
Mutanter Q1 og X1 roede. 194 ankre.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…l i proeven

Samme skaerpelser som 0.2.1 (9e583b4): open_app's id tjekkes mod leveringens formkrav FOER
resolve-app, saa ingen spoerges om noget der afvises; proeven daekker ogsaa
com.apple.KeychainAccess og com.apple.terminal (begge slap udenom med en anden stavemaade,
maalt af Opus) og at et ugyldigt id ikke slaar noget op. Mutant Q2 roed. 195 ankre.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Et stille laan kunne kun ses i menulinjen, og to spoergsmaal i menulinjen
udloeb 9/10, fordi ikonet ikke blev fundet. Nu holder et aktivt laan boksen
fremme - ogsaa stille og ogsaa naar boksen er slaaet fra - med hvem, hvor
laenge og stopknappen foerst. Knappen gaar menuens vej (tagTilbageNu), virker
uden pause, Touch ID og engangsnummer, og slaas aldrig fra. Boksen ligger nu
paa statuslinjens lag (isFloatingPanel nulstillede det til 3, maalt R22).

ikon-boks: 6e, 7a-7c, 4c, 5n-5q; mutanter T1-T8 roede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agentens egne tekster (computer_request_screen, computer_ask_user og
serverens vejledninger) sendte mennesket til det orange ikon i menulinjen -
den flade der fik 0 af 2 svar 9/10. Nu boksen i hjoernet af deres skaerm
foerst, og stopknappen naevnes. README og CHANGELOG ligeledes.

Fundet undervejs, roede allerede paa d40872c (maalt paa en uroert kopi):
- claims 26: bundet-maal.mjs startede en rigtig server uden osascript-
  attrappen - nu med lavFalskSpoerger, saa ingen aegte dialog kan komme.
- claims 6e: koerte i readonly (afviser nu foer opslaget, 431c159) med en
  helt falsk hjaelper (porten slaar op gennem hjaelperen siden R17) - porten
  saa derfor null. Nu standardtilstand gennem vagt-hjaelperen: opslag til den
  aegte, alle handlinger stoppet. Mutant C6e (raa navn i porten) er roed.

ikon-boks 8a-8c; claims BESTAAET; bundet-maal groen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…R23)

En browser taender Secure Event Input for et kodeordsfelt, ogsaa naar
tilgaengeligheds-laget kun ser siden omkring det (AXWebArea, som vagten
regnede for ikke-sikker). Maalt roed foer rettelsen: med signalet taendt
skrev type 12 tegn i et almindeligt felt, baade via AX og som tastetryk.

Nu: Skrivevagt.swift (ren funktion) afgoer for type - foer AX-vejen og
foer hvert tegn - og for paste, der slet intet feltvaern havde (Astra).
Signalet er kun et nej; et ukendt fokus bliver aldrig et ja.

skriv-ankommer 5, 5k, 6a-6d groenne; mutanter K1-K6 roede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Maalt roed foer rettelsen: med CMCP_BUDGET_SEK=0 svarede find {count: 0}
som for et tomt program, og set_value/press valgte et enkelt fund, selv om
et andet, ens felt kunne ligge i den del soegningen ikke naaede (Astra).
Nu baerer find stopped_early, og vaelgTraef afviser med search-incomplete
uden et udtrykkeligt index. Serverens tryk-toerkoersel bruger samme valg og
afviser derfor ogsaa uden at spoerge.

skriv-ankommer 7-7d; vaelger, knap-ord, klik-ejer, bundet-maal, stille-vej,
claims groenne; mutanter F1-F2 roede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gate 1 sloerer et kodeordsfelt i en webside kun, naar browseren viser
siden for tilgaengeligheds-laget - Chrome goer det paa nogle Mac'er og
ikke paa andre (Opus maalte 861 noder 9/10; 23/9 var det nul). Graensen
«ser ikke ind i websider» siger nu det samme og daterer begge maalinger.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…evet paa adfaerd (R24)

R24 (Astra + Opus, MAALT): under et laan + et goer-selv-spoergsmaal var
knapraekken 465 af 336 px - «Done» og «I won't do this» faldt ud. Stop-
knappen har nu sin egen raekke. Follow og vaelgeren afgoeres af «intet
spoergsmaal» i stedet for orange (et laan er orange, og valget blev aldrig
opdateret). Synligheden er boksSynlig (ren funktion) og panelets opsaetning
boksPanelOpsaetning, som proeven koerer paa et rigtigt panel og maaler lag
25 - de to mutanter der overlevede 5n/5q (level=.floating bagefter, boks-
fra-return) rammes nu.

ikon-boks 5r-5x; alle 40 boks-mutanter roede (T4/T8/X7 flyttet, T9-T11 nye).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… tidsudloeb (R24)

R24 (Astra MAALT, Opus LAEST): key med «a», «shift+a» og cmd+v sendte tekst
uden skriveDom og uden adgangskodesignalet - R23 punkt 3 var ikke opfyldt.
kombiSkriverTekst (ren funktion) udpeger taster der skriver tekst; de doemmes
nu som type. set_value paa FOKUS (uden soegning) ser ogsaa signalet.
Valget efter en soegning er valgEfterSoegning (ren funktion), saa ÉT fund
efter tidsudloeb proeves direkte (Astra: proeven fandt 0 og beviste det ikke).

skriv-ankommer 3t, 5t, 5r, 6e-6g, 7c, 7e; 12 skrivevagt-mutanter roede
(F1 flyttet, F3/K7-K9 nye); vaelger, knap-ord, klik-ejer, bundet-maal,
stille-vej, claims, sende-port, input-maal groenne.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e uden gaet (R24)

- Laanespoergsmaal over 280 tegn (inkl. serverens «Use your screen for N
  minutes: ») afvises foer nogen spoerges, saa Allow altid staar i boksen
  (Opus MAALT: 334 tegn gav kun Deny). skaerm-laan 9b-9c; mutant L1 roed.
- Scope og Touch ID-arket naevner boksen, ikke kun menuen.
- CHANGELOG: 0.2.1 blev aldrig udgivet og ligger i 0.2.2; release.sh tager
  nu alt fra ## <V> ned til den sidst udgivne version med i noterne;
  deprecate-teksten naevner ikke en version npm aldrig fik.
- README: Chrome viste sider paa SAMME Mac 9/10, og aarsagen er umaalt;
  aabningens og graensens Chrome-paastande er betingede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
R25 (Opus): README:84 paastod stadig en umaalt forskel mellem Mac'er - nu
«samme Mac, paa ét tidspunkt og ikke paa et andet». 5u kraever nu, at
Follow-vinduets panel er det eneste sted i ikonet, der saetter et lag;
mutant T12 (boks.level = .floating i tik) er roed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ligt uden at aktiveres (F1 9/10)

MAALT i F1: testikonet (startet af serveren som i virkeligheden) og Gustavs
eget 0.2.1-ikon var skjulte programmer (visible = false); boksen fandtes paa
lag 25 men var ikke paa skaermen og paa intet skrivebord. «-j» starter
skjult, og et skjult program viser ingen vinduer. Boksen er derfor aldrig
kommet frem, naar serveren startede ikonet - kun i liveproeven kl. 13:07,
hvor ikonet blev startet direkte.

visBoksen: NSApp.unhideWithoutActivation() foer orderFrontRegardless. MAALT
efter rettelsen, startet via open -g -j: boksen onscreen, lag 25, alpha 1,
foran alt; forreste program uaendret (Agent360 IDE foer og efter).
ikon-boks 5y; mutanter T13-T14 roede.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s (R24)

Fuld port paa 22a0aab: 217 roede, 0 overlevede, 3 uden svar under load
250. Genkoert ved lavere load: Q3 x2 roede; R9 forbliver uden svar, fordi
serverens nye 280-loft (index.js, mutant L1) afviser en lang begrundelse
FOER godkend.js linje 106 naas - R9 er en aekvivalent mutant. Det generelle
4000-loft (godkend.js:163) bevogtes fortsat af ikon-godkend (A15, G2, G3b).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
R26 (Astra + Opus, LAEST): LivePanel.vis kaldte orderFrontRegardless
direkte. Startede ikonet skjult og var boksen slaaet fra, kunne Follow fra
menuen aabne et vindue der ikke saas (passer med 16:2x: AX viste et Follow-
vindue, Gustav saa intet). Nu er visBoksen den eneste vej; 5y binder det,
mutant T15 roed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…erne var brudt)

Maalt 10/10 paa Gustavs Mac: brugsscenarierne gav 3 af 19, fordi vagt-
hjaelperen sammenlignede «--app =com.apple.Safari» med «com.apple.Safari»
og stoppede proevens egne programmer - siden det bundne maal (R17). Ingen
saa det, fordi fremmed-Mac-koerslerne blev afbrudt. Efter rettelsen: 10 af
19 bevist, 4 delvist, 0 fejlet bagved; selvproeven groen (foer: 2 roede).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ge plads (C2)

Maalt paa macOS 26.4.1: screenshot --app lagde programmets indhold i
billedets oeverste venstre hjoerne. Et punkt laest af billedet ramte et
andet sted, og sloeringen af kodeordsfelter laa ved siden af indholdet.
Rettelse: udtrykkelig kilde-ramme (hele skaermen). Daekkede vinduer
fotograferes ogsaa paa deres plads.

Proeve test/billede-placering.mjs (roed foer: 1, 4, 5; groen efter),
mutant C1. Suite 59/59.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Opus maalte paa Gustavs skaerm 2 (1x): laerredet var altid 2 pixels pr.
punkt, mens ScreenCaptureKit lagde kilden i 1x - indholdet laa i den halve
stoerrelse, og sloeringen ved siden af kodeordsfeltet. Nu skaermens egen
skala + scalesToFit.

billede-placering 6a-6c paa anden skaerm (roed foer: 6a, 6c, 5b), C9.
Suite 59/59.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…R28 C-minimum)

Maalt 10/10 (findes siden computer_press kom): et tryk paa en rullemenu i et
program bagved aabnede menuen paa menneskets skaerm, og den blev staaende og
fangede mus og tastatur. Begge konsulenter (R28): ret foer 0.2.2 udgives.

I baggrunden uden laan afvises tryk paa menuroller (server + hjaelper), og
taster/tekst naar fokus i programmet staar paa en menurolle. Under laan som foer.
README's loefte («stops and says so») er nu sandt for tryk og taster.

test/menu-vagt.mjs 1a-1d, 2a-2b (live, ingen menu aabner), 3. MV1-MV6 roede.
Suite 59/59.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…R29 Opus)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hatten 11/10)

Maalt 11/10: 8.041 cmcp-*-mapper i $TMPDIR; Mac'en gik ned 11/10 11.03, fordi
disken var for fuld. ryd-op.mjs ryddede kun ved bestaaet - og mutantporten
faar proeverne til at dumpe med vilje.
- ryd-op rydder altid (bestaaet, dumpet, SIGINT/TERM/HUP); CMCP_BEHOLD_PROEVEMAPPER=1 beholder
- importeret i de 38 proever der manglede den
- run-all.sh: hele suiten i sin egen /tmp/cmcp-s-*-mappe, fjernet i trap EXIT
- mutant-porte.py: hver mutant i sin egen /tmp/cmcp-m-*-mappe, fjernet bagefter

Bevis: hel suite 59/59 med 8.043 mapper foer og 8.043 efter, 0 tilbage i /tmp.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… 38230972853)

«Fremmed Mac» var annulleret paa hver 0.2.2-kandidat siden 9/10, saa ingen saa at
M9's anker ("Needs you: click the orange menu bar icon") ikke fandtes mere. Nu
mutereres boksens titel «<agent> needs you» (Tekst.swift); koert lokalt: roed paa 3c.
Alle 11 ankre i mutant-giv-tilbage.sh findes praecis én gang.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@GLouv
GLouv merged commit 33801fc into main Oct 23, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant