Repository navigation
Přestavba na upstream T3 Code v0.1.5 #148
Description
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
- Nová báze:
v0.1.5=6d450a4284852af137b2f3407fddd89eb76e7644(lehký tag, ověřeno protipingdotgg/t3codepřesgit ls-remote) - Stará báze:
v0.1.3=d2c440312e5f39d59827ed466838a623516454d6;main=409b1b09c322746b5972343f640f9d7357cc76e9(včetně řádku 33, Buddy's chat: a message sent while Buddy works must steer his running turn (Hermes session.steer), never stop it #138) - Zachycení
main: stablev0.1.3-lazurio.1vyšel 2026-10-30 v 15:07:06Z a jeho tag ukazuje na409b1b09c322746b5972343f640f9d7357cc76e9, tedy na špičkumain(ověřenogit ls-remote). - Candidate: branch
lazurio/rebuild-v0.1.5, Draft PR Rebuild the Lazurio overlay on upstream T3 Code v0.1.5 #149, head2d22c87f3506165365918f9e4ae4d24dd154b668(Lazurio Fork CI zelené v běhu 41087160726, review vyžádané 2026-10-30 16:21 UTC). Výchozí stack:lazurio/rebuild-v0.1.4naee235605301cee077a794191a0db9171bca1a1dd(head Rebuild the Lazurio overlay on upstream T3 Code v0.1.4 #144, který review schválilo; dřívější candidatebe4df21b7cstál na1252de8e30).
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 CIje 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é,mainje 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.Nproš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.1je 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) adocs/user/updating.mddostane 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: falsea 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.ymlzů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.tsmusí 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-verifya 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
VýměnaZachycení existuje; výměnamainčeká na stable0.1.3-lazurio.1(zachycení staréhomain).mainčeká na APPROVED na přesném headu Rebuild the Lazurio overlay on upstream T3 Code v0.1.5 #149.- Managed Environments: upstream's ChatGPT handoff runs a Codex sign-in outside the row 18 guard #145 (správa přihlášení spravovaného Codexu) musí být před canary/stable opravené, nebo ho Admin výslovně přijme. Issue triage from the command palette compares against pingdotgg/t3code, not Lazurio/t3code #147 potřebuje rozhodnutí před zpřístupněním funkce, Queued messages from Buddy show as 'Agent' instead of 'Buddy za …', and Delegace wake-ups show in the queue #146 neblokuje.
- Electron se posouvá z 44.9.3 na 44.10.0 (
pnpm-workspace.yaml); Node 26.12.1 a pnpm 12.14.0 zůstávají. Staged hook veVyřešeno rozhodnutím E.vite.config.tsnově spouští iknip:check.Nezávislý audit Rebuild the Lazurio overlay on upstream T3 Code v0.1.4 #144 proti starémuOpravy z něj nese stack zmainběží.ee23560530; nezávislá kontrola Rebuild the Lazurio overlay on upstream T3 Code v0.1.5 #149 a její vyřízení jsou v komentáři s výsledky kontrol. Nové nálezy mimo záběr: Buddy: a steer into Buddy's turn gets upstream's page-context projection, not the Czech page block #150 a Managed Folder guard: refuse thread.project.adopt-folder explicitly, not only through ScratchThreadPromotion #151 (neblokují). Next rebuild: prefersCzech lives in row 9's threadTabs.ts, so rows 6 and 18 compile only after row 9 #102 je znovu odložené na další přestavbu.
Activity
immakermatty commentedon Oct 30, 2026
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:
advertisedServerUpdateVersiondowaitForNpmnejde, výjimka je vupdateEverything.logic.tsa pokrývá jiserverUpdateOffer.test.ts.useUpdateEverything.tsje zase upstreamu a z allowlistu vypadl.docs/user/updating.mdmá větu, že distribuce Lazuria Nightly nevydává (rozhodnutí A).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).providerTurnCapabilitiesz projekce. Stub v testu řádku proto dostal prázdnéproviderThreadsaproviderSessions. Kontrola otevřené otázky z overlaye běží před novou větví a platí dál.patchelfpřed sestavením archivu, piny v0.1.5 a0.1.5-lazurio.0, runbook (tabulka Overlay, Cílový stack, výměnamain, etapa 3) a skill.Lokálně na
be4df21b7c: kontraktní test 49/49,vp fmt --check, lint iknip:checkčisté, typecheck webu a serveru čistý,managedFolderGuards.test.tsaThreadManagementService.test.ts29/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
maindál čeká na stable0.1.3-lazurio.1.— T3 Release (bot)
feat: in-app update from the configured release channel
release: Lazurio distribution
immakermatty commentedon Oct 30, 2026
Candidate na v0.1.5 je přehraný z opraveného #144 a má nový head
2d22c87f3506165365918f9e4ae4d24dd154b668. Stack vychází zee23560530(head #144, který review schválilo), ne z1252de8e30, takže nese všechny opravy z nezávislé kontroly #144: rozdíl1252de8e30..ee23560530je 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ěmainv konfliktu, proto spuštěný přesworkflow_dispatchna 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
overlay-delta.sh d2c440312e 409b1b09c3 6d450a4284 2d22c87f35→ 90 z 280 souborů overlaye má jiné úpravy než na starémmain. 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:apps/server/src/cloud/selfUpdate.ts(importcrossesReleaseTrackvedleCLI_RELEASE_REPOSITORY_ENVoverlaye),apps/web/src/components/sidebar/useUpdateEverything.ts(ServerUpdateTargetawaitForNpmupstreamu, server z kanálu Lazuria na npm nečeká),packages/shared/src/cliRelease.ts(importcompareSemverVersionsupstreamu),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);.github/workflows/lazurio-cli-archives.ymlinstalujepatchelfpro Linuxový archiv slibatomic.so.1;apps/server/src/lazurio/{actingSender,actingSenders,buddyPrompt,buddySurface,buddySurfaceDays,buddySurfaceStartup,cli,holders,questionTool}.ts,apps/web/src/lazurio/{buddySurfaceProtocol,environmentPairing}.ts;actingSenderVisibility.tsna serveru i ve webu dostává@public;apps/server/src/lazurio/environmentBrowserConnection.ts(privátníENVIRONMENT_BROWSER_ENDPOINTpodle E a novécloseWindowpřesTarget.closeTarget) a novýenvironmentBrowserConnection.test.ts„closes a window it opened“ (oprava Greptile, níž);managedFolderGuards.test.tss testem „turn no No project thread into a project“;ThreadManagementService.test.tsdává stubu prázdnéproviderThreadsaproviderSessions, protože steer nově čteproviderTurnCapabilitiesz projekce.SidebarUtilityMenu(fix(web): undo notice moves to the sidebar footer so it never covers a thread pingdotgg/t3code#26874) se ověří na canary.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)thread.project.adopt-folder(feat: turn a No project thread into a project pingdotgg/t3code#26767). Jediný výrobce jeScratchThreadPromotion.ts:119a 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áthreadDetailsUsageEnabledathreadDetailsItems. Nové soubory serveru:persistence/databaseMigrationHead.ts(brána Databáze) aproject/ScratchThreadPromotion.ts. Nové sdílení, nový druh sezení ani nová žádost na člověka nepřibyly.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í.git grep -n 'type: "steer_active"' -- apps/server/src→ stejných 5 výrobců jako naee23560530, posunuté jen řádky:CommandPolicy.ts:164a:183projdouresolveMessageDispatchIntent, kde strážwaitsOnPendingRequeststojí před novou větví fix(server): queue Copilot follow-ups without killing background agents pingdotgg/t3code#26715 (CommandPolicy.ts:109);Orchestrator.ts:5410má stráž na:5381;Orchestrator.ts:8801je odpověď na samotnou žádost;ThreadManagementService.ts:795jde dál přesresolveMessageDispatchIntent(Orchestrator.ts:5248). Mimo stráž žádný.git diff --stat 783581d461 6d450a4284 -- apps/server/src/mcp→ jen jeden řádek v integračním testu; volající overlaye (agent CLI, token zt3 auth session issue, ACP vlákno, peer link) dostávají totéž.C. Testy drží kontrakt
75b7d644mut1–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.tsaserverUpdateOffer.test.ts(seznam serverů, verze z kanálu serveru,waitForNpm). Na2d22c87f35dvě mutace opravy v řádku 10: beztapError(closeWindow)selže 1 z 33 testů (closes a person's new window again…), bezthreadTabs.holdselžou 2 z 33 (iopens a person's page in a new window the thread holds and shows).Effect.provide/Layer.providenepřidal. Jediný nový vgit diff ee23560530 2d22c87f35jelayerScratchThreadPromotionProvidedupstreamu (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í.409b1b09c3a75b7d644→ 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ý;2d22c87f35př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:řádekna headu. Rozpočet kontextu agenta (rozhodnutí řádku 22 z #143 platí): upstreamAgentContextBudget.test.tsna75b7d644naměřil 5135 / 8186 / 46089 B proti 5135 / 6865 / 45907 B vagentContextBudget.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 na75b7d644: 5556 prošlo, jediné selhání je tento rozpočet.E. Veřejné repo:
grep -n -i -F -f <seznam>přesgit diff 6d450a4284 2d22c87f35→ 21 nálezů, přesgit 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é issueHumanAndMachines/Lazurio#648(rozhodnutí 0210, repozitář je veřejný), podřetězec vawaitCommandReadya obecné adresy LAN192.168.1.50a192.168.1.23v testech stejného druhu, jaký používá upstream (DesktopServerExposure.test.ts:26).F. Kontroly repozitáře (na
2d22c87f35ve worktree přestavby, Node 26.12.1, pnpm 12.14.0):vp fmt --check(celý repozitář)vp lint250 změněných souborůvp run typecheckvp run knip:checknode --test scripts/lazurio-release-contract.test.mjsG. 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:react-effect-budget): opraveno. O2 (servicePreflightblokuje návrat na starší vydání po novější migraci) už je v bráně Databáze.isBuddySurfaceje v řádku 23 privátní a nepoužitý): neopravuji, řádek sám typecheck neprojde a zpráva řádku 23 to uvádí. F5 (překlep v názvu testu): planý nález, název pokračuje větou blokudescribe(„T3's own project folders in a managed Environment … turn no No project thread into a project“) jako sousední testy (managedFolderGuards.test.ts:451-498). N1 (stráž spravované složky pustíthread.project.adopt-folderpřes výchozí větev): Managed Folder guard: refuse thread.project.adopt-folder explicitly, not only through ScratchThreadPromotion #151. N2 (t3 request listneukáželink_request, stejně jako nikdy neukázalsecret_request): poznámka bez změny.LAZURIO_BUDDY_ENVaisBuddySurfaceprivatizuje řádek 23 a jeho zpráva je jmenuje.Oprava nálezu Greptile z #144 (řádek 10).
EnvironmentBrowserPages.openotevř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.holdTabje 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í.