Skip to content

Přestavba na upstream T3 Code v0.1.5 #148

Open

Description

@immakermatty

Upstream T3 Code vydal stabilní vydání v0.1.5 (commit 6d450a4284852af137b2f3407fddd89eb76e7644). main stojí na v0.1.3. Postup: Nové stabilní vydání upstreamu.

Ostrá přestavba. Organization Admin rozhodl 2026-10-29, že přestavba na v0.1.4 (#143, PR #144) proběhne nanečisto a ostrá přestavba půjde na v0.1.5 celou cestou, etapami 2–9. Proto je to samostatné issue a #143 se nepřejmenovává, jak by jinak runbook chtěl u dalšího stable během přestavby. Candidate staví na opraveném stacku z #144: ten je zkontrolovaný na v0.1.4 a na v0.1.5 se přehraje skoro čistě. Výměna main čeká na zachycení starého main přes stable 0.1.3-lazurio.1 na Ring 0.

Přestavba overlaye Lazuria na nové stabilní vydání upstream T3 Code. Postup
a příkazy:
Nové stabilní vydání upstreamu.
Issue je veřejné: žádná jména klientských Organizací, lidí ani soukromých
hostů, jen Environmenty a role.

Vstupy

Etapy

  • 1. Sledování: issue je přiřazené Stewardovi a vstupy jsou vyplněné.
  • 2. Inventura a rozhodnutí: tabulka rozhodnutí je vyplněná a rozhodnutí,
    která mění chování nebo kontrakt, mají schválení Organization Admina
    (s citací zvolené možnosti).
  • 3. Přestavba candidate: jeden commit na řádek v pořadí Cílového stacku,
    řádek 5 poslední.
  • 4. Kontrakt a stráže: Lazurio Fork CI je zelené na přesném headu PR;
    posunuté piny kontraktního testu a změny allowlistu jsou v PR.
  • 5. Kompatibilita s Lazuriem: každá brána má zápis.
  • 6. Výměna main: zachycení je ověřené, main je vyměněný
    (expected_old_main → candidate_head) a nové upstream workflow jsou
    vypnuté.
  • 7. Náhled na canary: preview X.Y.Z-preview.YYYYMMDD.N prošlo na Ring 0
    kontrolami i kontrolou v prohlížeči.
  • 8. Stable a nasazení: změny Platformy a Machines jsou nasazené, oznámení
    lidem je venku, X.Y.Z-lazurio.1 je vydané, Update tlačítkem
    z předchozího stable je ověřený a plán dalších vln je předaný Adminovi.
  • 9. Po vydání: návrhy upstreamu jsou podané, runbook a skill jsou
    doplněné a issue se zavírá.

Rozhodnutí po řádcích Overlaye

Jeden řádek na každý řádek tabulky Overlay. Rozhodnutí: ponechat, přestavět,
zmenšit nebo odebrat; k tomu případně nabídnout upstreamu (s odkazem).

# Řádek Co upstream změnil v jeho souborech Rozhodnutí Zdůvodnění a dopad Schválení
1 hosted: configurable client session TTL nic ponechat Upstream TTL sezení klienta nastavit neumí; přehrání čisté. Admin podle mandátu
2 hosted: serve behind an explicit HTTPS external origin nic ponechat Šev beze změny; přehrání čisté. Admin podle mandátu
3 hosted: explicit environment label nic ponechat Upstream štítek Environmentu nenastavuje; přehrání čisté. Admin podle mandátu
4 feat: in-app update from the configured release channel Tři PR mění selfUpdate, updateEverything.*, useUpdateEverything, UpdateEverythingDialog, cliRelease.ts, environment.ts a docs/user/updating.md. pingdotgg#26288: přepnutí stopy Stable/Nightly s kontrolou migrací databáze. pingdotgg#26917: cíle, které čekají na npm (waitForNpm, releaseArchivesPublished). pingdotgg#26921: testy a dokumentace. přestavět Konflikt v 6 blocích. Řešení každého bloku popíše PR přestavby. Povinné: do waitForNpm dávat jen cíl bez advertisedServerUpdateVersion. releaseArchivesPublished se odvozuje z kanálu desktopu, ve webu Lazuria je vždy false, a vydání -lazurio na npm nejsou, takže bez výjimky by každý stroj čekal donekonečna. Přepnutí stopy z upstreamu ponechat celé. Ve webu Lazuria je skryté (výběr stopy je jen s desktop bridge nebo VITE_HOSTED_APP_CHANNEL). Serverová kontrola crossesTrackUnsafely kanály Lazuria nepovažuje za přechod. Brána continuesThreads zůstává, protože collectRestartingMachines upstream nezměnil. Do updating.md sloučit oba odstavce a doplnit větu, že distribuce Lazuria Nightly nemá. Nový test: cíl z kanálu Lazuria nečeká na npm ani při releaseArchivesPublished = false. Admin podle mandátu
5 release: Lazurio distribution Žádný soubor řádku upstream nezměnil. Sémanticky ho ovlivňují tři PR. pingdotgg#26912/pingdotgg#26932: build-cli-archive.ts na Linuxu přibalí lib/libatomic.so.1 s licencí a nastaví patchelf --set-rpath $ORIGIN/lib; smoke test přibalenou knihovnu vyžaduje. pingdotgg#26893: release.yml s AI poznámkami k vydání. vite.config.ts: staged hook nově spouští i knip:check. přestavět Do .github/workflows/lazurio-cli-archives.yml (linux-x64, ubuntu-24.04) přidat před sestavení instalaci patchelf, jinak sestavení archivu selže. Ověřit kontraktní test scripts/lazurio-release-contract.test.mjs (pořadí kroků build, cmp - LICENSE, smoke). Dál posunout bázi a verzi na 0.1.5-lazurio.0 a doplnit sloupec „Upstream a přestavba“ v runbooku. Upstream workflow zůstávají vypnutá. Nová workflow v0.1.5 nemá; agent-context-budget.yml a mobile-fingerprint-label.yml z v0.1.4 se vypnou při výměně výchozí větve. Archiv nově obsahuje adresář lib/. Stroje i launcher rozbalují celý archiv a RUNPATH nebrání systémové knihovně jako záloze. Dockerfile.lazurio archiv nepoužívá. Admin podle mandátu
6 lazurio: unsent prompt draft by link from the shell nic ponechat Úprava importu z v0.1.4 už je v commitu; přehrání čisté. Admin podle mandátu
7 feat(web): Lazurio shell slot SidebarChrome.tsx (pingdotgg#26874: upozornění na vrácení se přesunulo do SidebarUtilityMenu) ponechat Bloky overlaye (titlebar, odznak, hlavička sloupce) jsou na začátku souboru a změny upstreamu jinde. Na canary ověřit, že se upozornění na vrácení ve slotu shellu zobrazí. Admin podle mandátu
8 feat(server): each thread's provider processes get its agent-browser session nic ponechat Šev beze změny. Admin podle mandátu
9 feat(web): the right panel shows the thread's Environment browser tabs ChatView.tsx (pingdotgg#26904 položky detailu vlákna, pingdotgg#26859 sekce Usage) ponechat Upstream jen přidal prop usage={...} asi na ř. 3770; bloky overlaye jsou jinde. Admin podle mandátu
10 feat(server): T3's browser tools drive the Environment browser ServerEnvironment.ts (pingdotgg#26288 databaseMigrationHead, desktopAppChannelSwitch; pingdotgg#26767 threadProjectFromScratch) ponechat Konflikt ve 2 blocích. Řešení: ponechat oba importy; capability desktopAppUpdate a desktopAppChannelSwitch vzít z upstreamu a serverBrowser jen mimo Environment Lazuria z overlaye. Automatické řešení desktopAppChannelSwitch vypustilo, ručně ho vrátit. Oprava nálezu Greptile z #144: nové okno se nejdřív drží v pásu vlákna a při odmítnutí se zavře (closeWindow, Target.closeTarget). Admin podle mandátu
11 feat(server): a thread's Environment browser tabs live in its holder file nic ponechat Šev beze změny. Admin podle mandátu
12 feat(server): archiving or deleting a thread lets go of its tabs and stops its agent's daemon nic ponechat Šev beze změny. Admin podle mandátu
13 feat(web): "+" and the empty panel open Nová karta nic ponechat Šev beze změny. Admin podle mandátu
15 feat(lazurio): provide a managed Folder project and native model reconciliation pingdotgg#26767 „Turn into project“: runtimeLayer.ts, ws.ts, Sidebar.tsx. pingdotgg#26904: GitActionsControl.tsx, prop showActions. pingdotgg#26874: Sidebar.tsx. pingdotgg#26288: server.ts ponechat Konflikt jen v importech runtimeLayer.ts a ws.ts; ponechat oba. Na spravovaném Environmentu dostane ScratchThreadPromotion hlídaný layerProjectService a guardScratch (scratchRoot none, isScratchProject false), takže promote selže uzavřeně. Web akci nenabídne, protože ws.ts neposílá scratchWorkspaceRoot. Buddyho vlákno ve Folder projektu nemá worktreePath a je odmítnuté také. Doplnit test, že promote pod T3CODE_LAZURIO_FOLDER odmítne. Skrytí git části GitActionsControl pro Folder funguje dál; na canary ověřit, že sekce Version Control nezůstane prázdná. Admin podle mandátu
16 feat(web): the in-app name T3 Code (Lazurio) SidebarChrome.tsx (pingdotgg#26874) ponechat Bloky overlaye nejsou dotčené; přehrání čisté. Admin podle mandátu
17 feat(web): the design system's light look on a Lazurio Environment nic ponechat Úprava --update-surface z v0.1.4 už je v commitu; index.css se nemění. Admin podle mandátu
18 feat(lazurio): providers sign in through Lazurio, and the Launchpad turns them on runtimeLayer.ts (pingdotgg#26767) ponechat Blok overlaye leží jinde; přehrání čisté. Admin podle mandátu
19 feat(lazurio): the Environment pairs its own browser nic ponechat Šev beze změny. Admin podle mandátu
20 feat(server): t3 auth session issue sets an MCP client's runtime-mode ceiling nic ponechat Šev beze změny; auth.ts a RpcAuthorization.ts upstream neměnil. Admin podle mandátu
21 feat(lazurio): agents work with T3 Code threads through t3 thread, request, queue and events nic ponechat Šev beze změny. Admin podle mandátu
22 feat(server): T3's Codex threads ask the user through request_user_input nic ponechat Šev beze změny. Admin podle mandátu
23 feat(lazurio): Buddy's Hermes gets only the person's words and the page as a Czech block provider-acp/src/server/adapter.ts (pingdotgg#26876: writeTextFile v clientFileSystem je volitelné) ponechat Změny upstreamu jsou jinde než bloky overlaye a jsou na nich nezávislé. Admin podle mandátu
24 feat(lazurio): agents send once per idempotency key, and Delegace finds Buddy's thread nic ponechat Doplnění z #143 (pingdotgg#26642, odkazy t3-thread://) už je v commitu. Admin podle mandátu
25 feat(lazurio): Buddy's T3 Code is Buddy's one conversation, framed by the bubble runtimeLayer.ts, ws.ts (pingdotgg#26767), ChatView.tsx (pingdotgg#26904, pingdotgg#26859), server.ts (pingdotgg#26288) ponechat Všechny bloky jsou mimo změny upstreamu; přehrání čisté. Admin podle mandátu
26 feat(lazurio): the page Buddy is asked from travels as a chip the person can remove ChatView.tsx ponechat Viz řádek 9. Admin podle mandátu
27 feat(lazurio): a thread shows when Buddy or Delegace sent a message or decided a request runtimeLayer.ts, ws.ts (pingdotgg#26767) ponechat Bloky se nepřekrývají; přehrání čisté. Admin podle mandátu
28 feat(lazurio): Buddy's chat reads like a chat with a friend ChatView.tsx; ChatComposer.tsx (pingdotgg#26167 přesunul import PendingUserInputDraftAnswer do client-runtime) ponechat Overlay přesunuté exporty nepoužívá. Admin podle mandátu
30 fix(server): a steer waits behind a turn that waits on the person CommandPolicy.ts a test (pingdotgg#26715: u providera bez aktivního usměrnění a bez usměrnění restartem se steer zařadí do fronty; nové isActiveRun, providerTurnCapabilities), Orchestrator.ts (pingdotgg#26767) ponechat; nabídnout upstreamu Kontrola waitsOnPendingRequest z overlaye je před novou větví a platí dál. Upstream čekání na otevřenou otázku pořád nemá. Ověřit, že testy obou stran projdou spolu. Pro upstream už existuje větev upstream/steer-waits-on-pending-request. Admin podle mandátu
31 fix(server): a commit, push or pull request finishes when its connection closes ws.ts (pingdotgg#26767) ponechat Blok overlaye je jinde; upstream opravu nemá. Admin podle mandátu
32 fix(web): a saved follow-up 'queue' becomes 'steer' once on the v0.1.3 line nic ponechat Značka lazurioFollowUpSteer se nepřejmenovává. Admin podle mandátu
33 feat(acp): steer an agent's running turn through _lazurio/steer instead of cancelling it provider-acp/src/server/adapter.ts (pingdotgg#26876); nepřímo pingdotgg#26715 ponechat Doplnění z #143 (commitReplacementSession) už je v commitu. pingdotgg#26715 nemění chování Hermese: výchozí ACP capability usměrnění restartem dovoluje a agent s _lazurio/steer má supportsActiveSteering. Do fronty nově jde jen Copilot z acp-registry. Ověřit testem adaptéru. Admin podle mandátu

Řádky 14 a 29 v Cílovém stacku nejsou, stejně jako na v0.1.4. Zkušební přehrání stacku z #144 na v0.1.5: 27 commitů čistě, 4 s konfliktem (řádky 4, 10, 15 a 5 nepřímo), všechny sousedské.

Rozhodnutí na úrovni Admina

Admin dal 2026-10-29 Task Agentovi mandát brát tato rozhodnutí jako schválená. Zvolená možnost je vždy první.

  • A. Přepnutí stopy z desktopu proti serveru Lazuria (feat(updates): switch your whole fleet between Stable and Nightly in one step pingdotgg/t3code#26288). Zvoleno: nechat beze změny. Přepnutí na Nightly proti serveru Lazuria selže bezpečně (404 při stahování z Lazurio/t3code) a docs/user/updating.md dostane větu, že distribuce Lazuria Nightly nemá. Zamítnuto: výslovné odmítnutí na serveru a skrytí desktopAppChannelSwitch. Obojí by zvětšilo overlay kvůli cestě, která už selže bezpečně, a skrytí by vzalo desktopu i přepnutí na Stable.
  • B. „Turn into project“ na spravovaném Environmentu (feat: turn a No project thread into a project pingdotgg/t3code#26767). Zvoleno: nechat beze změny a přidat test, že povýšení pod spravovanou složkou Lazuria selže uzavřeně. Web akci nenabídne. Zamítnuto: hlásit threadProjectFromScratch: false a odmítat česky, protože to zvětší řádek 15 bez dopadu na lidi.
  • C. Pořadí vydání. Rozhodl Admin 2026-10-29: v0.1.4 jen nanečisto, ostře v0.1.5. Druhé kolo canary na v0.1.4 tedy nebude.
  • D. AI poznámky k vydání z upstreamu (feat(release): release notes and the update popover open with a short note pingdotgg/t3code#26893). Zvoleno: nepřebírat. Upstream release.yml zůstává ve forku vypnutý (runbook: upstream workflow nezapínat), poznámky Lazuria se dál píšou česky podle runbooku a fork nepotřebuje nový secret.
  • E. knip v pre-commit hooku (chore: make agent mistakes fail early pingdotgg/t3code#26167). Zvoleno: exporty overlaye, které nic neimportuje, jsou ve svých řádcích privátní pro modul (řádky 10, 11, 19, 21, 22, 23, 24, 25 a 27). actingSenderVisibility.ts musí být na serveru i ve webu stejný soubor a každá strana používá jen jeho část, proto jeho funkce exporty drží a pro knip jsou @public. Přehrává se s --no-verify a knip běží nad hotovým stackem jako lokální brána; Lazurio Fork CI knip nespouští. Runbook (etapa 3) a skill to popisují. Zamítnuto: vypnout hook nebo přidat overlay do ignore v konfiguraci knipu, protože by to měnilo upstream soubor a skrylo i skutečně mrtvý kód overlaye.

Brány kompatibility

Brána Co se na nové bázi mění Rozhodnutí a ověření
t3 lazurio capabilities, model, providers auth.ts, RpcAuthorization.ts ani standardní rozsahy se nemění. settings.ts přidává jen klientská nastavení threadDetailsUsageEnabled a threadDetailsItems. Beze změny kontraktu. Ověřit cli.test a spustit tři příkazy proti canary.
Kanál aktualizací a protokol launcheru serviceProtocol.ts se nemění, SERVICE_LAUNCHER_PROTOCOL zůstává 3. Nová serverová kontrola přechodu stopy kanály Lazuria nezasáhne. pingdotgg#26917 ale mění, kdy web čeká na npm. Řádek 4 přestavět s výjimkou pro waitForNpm. Na canary ověřit aktualizaci z kanálu 0.1.4-lazurio.* → 0.1.5-lazurio.0 z UI.
CLI a server na jedné verzi cli/ ani pinnedRuntime se nemění. Beze změny. Ověřit, že CLI v archivu hlásí stejnou verzi jako server.
Párování a rozsahy sezení Přibývá jen nová metoda projectsCreateFromThread s rozsahem AuthOrchestrationOperateScope. Žádné rozdělení rozsahu, nové párování není potřeba. Na spravovaném Environmentu metoda selže uzavřeně (řádek 15).
Databáze Nové migrace nejsou, hlava zůstává 72 a overlay žádnou nepřidává. Nový databaseMigrationHead.ts: servicePreflight cílového buildu (v0.1.5 a novější) zablokuje databázi s novější migrací nebo databázi, kterou nepřečte. Deskriptor vydání dostává databaseMigration. Návrat v0.1.5 → v0.1.4 je bezpečný, hlava je stejná. Upgrade z v0.1.3 (výchozí větev) přidá migrace 070–072 jako v #143. Ověřit start canary nad kopií produkční databáze.
Desktop a mobil ORCHESTRATION_PROTOCOL_VERSION zůstává 2. Mobil dostává „Turn into project“. Desktop v0.1.5 umí spustit přepnutí stopy i proti serveru Lazuria. Kompatibilní. Přepnutí na Nightly proti serveru Lazuria selže bezpečně (PinnedRuntimeReleaseNotPublishedError, 404), ale s nejasnou zprávou; viz otázka A.
Kontrakt prohlížeče Environmentu holders.ts ani browserView upstream neměnil. Beze změny. Ověřit na canary otevření karty a holder file.
Slot shellu a vzhled design systému index.css ani index.html se nemění. Upozornění na vrácení se v SidebarChrome přesunulo do SidebarUtilityMenu (pingdotgg#26874). Ponechat. Na canary ověřit slot shellu, odznak a upozornění na vrácení.
Machines a Platforma Nové proměnné prostředí nejsou. Archiv obsahuje lib/libatomic.so.1 s licencí. Na straně Machines ani Platformy není potřeba nic měnit. Ověřit rozbalení archivu launcherem a ldd na Machine.

Otevřené otázky a blokery

Activity

  1. immakermatty commented on Oct 30, 2026

    @immakermatty
    Author

    Candidate na v0.1.5 je v Draft PR #149, head be4df21b7c941b19f443de6b393adc33f28d6729. Stack má 31 commitů, jeden na řádek, a řádek 5 je poslední. Lazurio Fork CI běží jako run 41021193469; po zeleném výsledku požádám dozor o review na přesném headu.

    Co se proti inventuře změnilo nebo doplnilo:

    • Řádek 4: cíl z advertisedServerUpdateVersion do waitForNpm nejde, výjimka je v updateEverything.logic.ts a pokrývá ji serverUpdateOffer.test.ts. useUpdateEverything.ts je zase upstreamu a z allowlistu vypadl. docs/user/updating.md má větu, že distribuce Lazuria Nightly nevydává (rozhodnutí A).
    • Řádek 15: nový test v managedFolderGuards.test.ts. Povýšení vlákna bez projektu pod spravovanou složkou selže s „Only a No project thread with its own folder can become a project.“ a nic neodešle. Kontrolně jsem test pustil bez spravované složky a selhal, takže opravdu hlídá stráž (rozhodnutí B).
    • Řádek 30: po fix(server): queue Copilot follow-ups without killing background agents pingdotgg/t3code#26715 čte nová větev providerTurnCapabilities z projekce. Stub v testu řádku proto dostal prázdné providerThreads a providerSessions. Kontrola otevřené otázky z overlaye běží před novou větví a platí dál.
    • knip: rozhodnutí E výše. Dotčené řádky to mají v commit message.
    • Řádek 5: instalace patchelf před sestavením archivu, piny v0.1.5 a 0.1.5-lazurio.0, runbook (tabulka Overlay, Cílový stack, výměna main, etapa 3) a skill.

    Lokálně na be4df21b7c: kontraktní test 49/49, vp fmt --check, lint i knip:check čisté, typecheck webu a serveru čistý, managedFolderGuards.test.ts a ThreadManagementService.test.ts 29/29. Na dřívějším headu se stejným kódem (kromě typu mocku v novém testu a dokumentace) prošly testy overlaye: server 591, provider-acp 88, client-runtime 10, shared 1093, web 243 v 33 souborech.

    Výměna main dál čeká na stable 0.1.3-lazurio.1.

    — T3 Release (bot)

  2. immakermatty commented on Oct 30, 2026

    @immakermatty
    Author

    Candidate na v0.1.5 je přehraný z opraveného #144 a má nový head 2d22c87f3506165365918f9e4ae4d24dd154b668. Stack vychází z ee23560530 (head #144, který review schválilo), ne z 1252de8e30, takže nese všechny opravy z nezávislé kontroly #144: rozdíl 1252de8e30..ee23560530 je 41 souborů (+938/−228) a do řádků v0.1.5 přešel celý. Nad tím jsou opravy z nezávislé kontroly #149 (níž v G) a oprava nálezu Greptile z #144 v řádku 10. Stack má dál 31 commitů, jeden na řádek, řádek 5 poslední. Push s --force-with-lease=lazurio/rebuild-v0.1.5:75b7d644… v 16:07:22Z. Lazurio Fork CI běží jako run 41087160726 (PR je kvůli výměně main v konfliktu, proto spuštěný přes workflow_dispatch na branchi); o review požádám až po zeleném výsledku.

    Kontroly podle seznamu před pushem, na přesném headu 2d22c87f35 (logy v pracovní složce přestavby, ne v repozitáři):

    A. Úbytek overlaye

    • A1 delta: overlay-delta.sh d2c440312e 409b1b09c3 6d450a4284 2d22c87f35 → 90 z 280 souborů overlaye má jiné úpravy než na starém main. 67 z nich je rozdíl už vysvětlený v Přestavba na upstream T3 Code v0.1.4 #143 (přestavba na v0.1.4, schválená v Rebuild the Lazurio overlay on upstream T3 Code v0.1.4 #144). Nových 23 proti Rebuild the Lazurio overlay on upstream T3 Code v0.1.4 #144:
      • řádek 4 (fix(web): update everything no longer waits on npm for service hosts pingdotgg/t3code#26917, cíle čekající na npm): apps/server/src/cloud/selfUpdate.ts (import crossesReleaseTrack vedle CLI_RELEASE_REPOSITORY_ENV overlaye), apps/web/src/components/sidebar/useUpdateEverything.ts (ServerUpdateTarget a waitForNpm upstreamu, server z kanálu Lazuria na npm nečeká), packages/shared/src/cliRelease.ts (import compareSemverVersions upstreamu), apps/web/src/lazurio/serverUpdateOffer.test.ts (nový test „does not wait for npm for a release a server advertised from its own channel“), docs/user/updating.md (věta o Nightly podle rozhodnutí A);
      • řádek 5 (fix(cli): t3 starts on a fresh Ubuntu server without libatomic pingdotgg/t3code#26912): .github/workflows/lazurio-cli-archives.yml instaluje patchelf pro Linuxový archiv s libatomic.so.1;
      • rozhodnutí E (knip): z exportu na privátní konstanty modulu apps/server/src/lazurio/{actingSender,actingSenders,buddyPrompt,buddySurface,buddySurfaceDays,buddySurfaceStartup,cli,holders,questionTool}.ts, apps/web/src/lazurio/{buddySurfaceProtocol,environmentPairing}.ts; actingSenderVisibility.ts na serveru i ve webu dostává @public;
      • řádek 10: apps/server/src/lazurio/environmentBrowserConnection.ts (privátní ENVIRONMENT_BROWSER_ENDPOINT podle E a nové closeWindow přes Target.closeTarget) a nový environmentBrowserConnection.test.ts „closes a window it opened“ (oprava Greptile, níž);
      • řádek 15 (rozhodnutí B): managedFolderGuards.test.ts s testem „turn no No project thread into a project“;
      • řádek 30 (fix(server): queue Copilot follow-ups without killing background agents pingdotgg/t3code#26715): ThreadManagementService.test.ts dává stubu prázdné providerThreads a providerSessions, protože steer nově čte providerTurnCapabilities z projekce.
    • A2 viditelné texty: mezi v0.1.4 a v0.1.5 upstream změnil z komponent, do kterých overlay dává data, jen tok aktualizací (řádek 4, fix(web): update everything no longer waits on npm for service hosts pingdotgg/t3code#26917). Seznam serverů a verze z kanálu serveru hlídají testy mut4 a mut5 v C8, nový test výš hlídá, že server z kanálu Lazuria nečeká na npm. Upozornění na vrácení v SidebarUtilityMenu (fix(web): undo notice moves to the sidebar footer so it never covers a thread pingdotgg/t3code#26874) se ověří na canary.
    • A3 zprávy commitů: odstavec „On v0.1.5“ jmenuje každou adaptaci z A1. Po auditu opravené zprávy řádků 6, 9 a 13 (název pravidla lintu), 20 (premisa o odkazech vláken), 25 (premisa o zápisu nastavení) a 10 (oprava Greptile). git range-diff 75b7d644… ukazuje u řádků 6, 9, 13, 20 a 25 shodná patch-id, změnila se jen zpráva.

    B. Nové cesty upstreamu kolem stráží (v0.1.4 → v0.1.5, 783581d461..6d450a4284)

    • B4 inventura: nový typ příkazu jen thread.project.adopt-folder (feat: turn a No project thread into a project pingdotgg/t3code#26767). Jediný výrobce je ScratchThreadPromotion.ts:119 a ten pustí jen vlákno bez projektu ve vlastní složce pod kořenem scratch (ScratchThreadPromotion.ts:76-84). Na spravovaném Environmentu selže uzavřeně (rozhodnutí B, test v řádku 15). Buddyho vlákno žije v Buddyho projektu, ne ve scratch, takže povýšení odmítne stejná podmínka (doloženo kódem, testem na Buddyho povrchu neověřeno). Výslovné odmítnutí ve stráži spravované složky je Managed Folder guard: refuse thread.project.adopt-folder explicitly, not only through ScratchThreadPromotion #151. Nastavení: jen klientská threadDetailsUsageEnabled a threadDetailsItems. Nové soubory serveru: persistence/databaseMigrationHead.ts (brána Databáze) a project/ScratchThreadPromotion.ts. Nové sdílení, nový druh sezení ani nová žádost na člověka nepřibyly.
    • B5 noví volající: git diff 783581d461 6d450a4284 -- apps/{web,server,mobile}/src packages/client-runtime/src | grep -E 'serverBrowser|preview_open|guest-share|signIn|providerAuth|peerLink…' → jeden nález, testovací položka guest share bez vztahu k overlayi. Nový volající upstream preview ani přihlášení providerů není.
    • B6 výrobci steer: git grep -n 'type: "steer_active"' -- apps/server/src → stejných 5 výrobců jako na ee23560530, posunuté jen řádky: CommandPolicy.ts:164 a :183 projdou resolveMessageDispatchIntent, kde stráž waitsOnPendingRequest stojí před novou větví fix(server): queue Copilot follow-ups without killing background agents pingdotgg/t3code#26715 (CommandPolicy.ts:109); Orchestrator.ts:5410 má stráž na :5381; Orchestrator.ts:8801 je odpověď na samotnou žádost; ThreadManagementService.ts:795 jde dál přes resolveMessageDispatchIntent (Orchestrator.ts:5248). Mimo stráž žádný.
    • B7 výstupy MCP: git diff --stat 783581d461 6d450a4284 -- apps/server/src/mcp → jen jeden řádek v integračním testu; volající overlaye (agent CLI, token z t3 auth session issue, ACP vlákno, peer link) dostávají totéž.

    C. Testy drží kontrakt

    • C8 mutace: na 75b7d644 mut1–mut6, každá zčervenala: SteeringCompletion.integration.test.ts (steer za čekající otázkou), buddySurfaceGuards.test.ts (propojená Prostředí vypnutá i při zapnutém uloženém nastavení), threadServersPanel.browser.test.tsx (otevření v prohlížeči Prostředí, ne v preview upstreamu), updateEverything.logic.test.ts a serverUpdateOffer.test.ts (seznam serverů, verze z kanálu serveru, waitForNpm). Na 2d22c87f35 dvě mutace opravy v řádku 10: bez tapError(closeWindow) selže 1 z 33 testů (closes a person's new window again…), bez threadTabs.hold selžou 2 z 33 (i opens a person's page in a new window the thread holds and shows).
    • C9 zastíněné dvojníky: proti Rebuild the Lazurio overlay on upstream T3 Code v0.1.4 #144 overlay v produkčním kódu žádné nové Effect.provide/Layer.provide nepřidal. Jediný nový v git diff ee23560530 2d22c87f35 je layerScratchThreadPromotionProvided upstreamu (feat: turn a No project thread into a project pingdotgg/t3code#26767, runtimeLayer.ts), soubor mezi 23 novými rozdíly z A1 není. Mutace dvojníků z Rebuild the Lazurio overlay on upstream T3 Code v0.1.4 #144 platí.
    • C10: rozhodnutí „ukáže / skryje“ v této přestavbě nepřibylo.
    • C11 ubrané testy: porovnání názvů testů v souborech řádků mezi 409b1b09c3 a 75b7d644 → 7 chybí; všech 7 jsou testy upstreamu, které existovaly na v0.1.3 a upstream je sám odstranil do v0.1.4 (783581d461). Overlay neubral žádný; 2d22c87f35 přidává 2.

    D. Premisy: každé „upstream změnil“ v tabulce řádků a v zprávách commitů nese číslo PR upstreamu a soubor; nová tvrzení v tomto komentáři mají soubor:řádek na headu. Rozpočet kontextu agenta (rozhodnutí řádku 22 z #143 platí): upstream AgentContextBudget.test.ts na 75b7d644 naměřil 5135 / 8186 / 46089 B proti 5135 / 6865 / 45907 B v agentContextBudget.json, tedy přesně stejný nárůst overlaye jako na v0.1.4 (+1321 B text nástroje na otázky, +182 B seznam nástrojů MCP). Plný běh testů serveru na 75b7d644: 5556 prošlo, jediné selhání je tento rozpočet.

    E. Veřejné repo: grep -n -i -F -f <seznam> přes git diff 6d450a4284 2d22c87f35 → 21 nálezů, přes git log --format=%B 6d450a4284..2d22c87f35 → 2, přes tento komentář, tělo PR a issues #150 a #151 → jen tytéž výrazy. Všechny mají důvod: veřejné issue HumanAndMachines/Lazurio#648 (rozhodnutí 0210, repozitář je veřejný), podřetězec v awaitCommandReady a obecné adresy LAN 192.168.1.50 a 192.168.1.23 v testech stejného druhu, jaký používá upstream (DesktopServerExposure.test.ts:26).

    F. Kontroly repozitáře (na 2d22c87f35 ve worktree přestavby, Node 26.12.1, pnpm 12.14.0):

    Kontrola Výsledek
    vp fmt --check (celý repozitář) 6500 souborů, exit 0
    vp lint 250 změněných souborů exit 0
    vp run typecheck 36/36 balíčků, exit 0
    vp run knip:check exit 0
    node --test scripts/lazurio-release-contract.test.mjs 50/50
    Testy overlaye podle brány (prohlížečové s Chromiem Playwrightu) server 1048 (14 skip), web 1981, client-runtime 10, contracts 8, effect-acp 28, shared 5, scripts 8; vše prošlo
    Stráž allowlistu nic neočekávaného ani zastaralého; vložený soubor mimo allowlist stráž odmítne

    G. Nezávislá kontrola (tři skupiny řádků podle zadání, každá samostatně a jen čtením, na 75b7d644). Nálezy a co s nimi:

    Oprava nálezu Greptile z #144 (řádek 10). EnvironmentBrowserPages.open otevřel okno, zapsal ho a teprve potom ho svázal s pásem vlákna; když pás odmítl (moc karet, nezapisovatelný holder file), zůstalo okno, které nedrží žádné vlákno. Teď se okno nejdřív drží v pásu (environmentBrowser.ts:545) a při odmítnutí se zase zavře (closeWindow, Target.closeTarget); otevření selže s důvodem pásu. holdTab je idempotentní (threadTabs.ts:309), takže pozdější zápis nic nezdvojí. Testy: „closes a person's new window again when the thread's strip refuses to hold it“ a v reálném CDP „closes a window it opened“.

    Otevřené: #145 před canary, #147 před zpřístupněním funkce, #150 a #151 neblokují.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions