Skip to content

Přestavba na upstream T3 Code v0.0.46 #70

Open

Description

@immakermatty

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

Upstream v0.0.46 jako stable zatím nevydal (stav 2026-10-14). Issue je otevřené předem,
protože přestavba má známou práci. Inventura níž je proti upstream main jako zástupci
budoucího tagu (upstream vydává stable z některého nedávného nightly svého main); po
vydání v0.0.46 se příkazy etapy 2 spustí znovu proti přesnému tagu. Až v0.0.46 vyjde,
napíše sem watch lazurio-upstream-watch.yml (po merge #68).

Vstupy

  • Nová báze: v0.0.46, zatím nevydaná. Zástupce: upstream main a01c48f86
    (= 0.0.46-nightly.20261013.3080, 2026-10-13 21:38 UTC).
  • Stará báze: v0.0.45 = 6c8fed35dded9ff71c5b46807125457acbb76be6; main =
    be78113f3f5f5db3bad3a52903b68085aa852f5e (= preview 0.0.45-preview.20261013.3).
  • Zachycení main: poslední stable v0.0.45-lazurio.8 = b64117698 (immutable). main se
    od něj liší mimo docs/ (31 commitů, 77 souborů: fáze A a B plánu DEV-6646, k tomu docs, release: the procedure for a new upstream stable release, a daily upstream watch and the rebuild's tracking issue #68),
    takže před výměnou musí vyjít stable 0.0.45-lazurio.9 ze špičky main.
  • Candidate: branch lazurio/rebuild-v0.0.46, PR —, head —.

Předpoklady (plán DEV-6646, fáze C)

  • Upstream vydal v0.0.46 jako stable.
  • main je zachycený stable vydáním 0.0.45-lazurio.N (chybí 0.0.45-lazurio.9).
  • Rozhodnutí D10, D11, D13 a D14 jsou schválená (Organization Admin, 2026-10-13, níž).
  • Workflow vydání ověřuje upstream_tag proti bázi main (Release workflow accepts an upstream tag older than main's base #69), nebo se
    vydání spouští s tagem čteným z lazurio-fork-ci.yml zdroje, jak teď říká runbook.

Etapy

  • 1. Sledování: issue je přiřazené Stewardovi a vstupy jsou vyplněné.
  • 2. Inventura a rozhodnutí: tabulka níž je potvrzená proti tagu v0.0.46 a rozhodnutí,
    která mění chování nebo kontrakt, mají schválení Organization Admina.
  • 3. Přestavba candidate: jeden commit na řádek v pořadí Cílového stacku, řádek 5 poslední
    (D11), řádek 14 odpadá.
  • 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 níž má zápis.
  • 6. Výměna main: zachycení je ověřené, main je vyměněný a mobile-android-apk.yml
    je vypnutý.
  • 7. Náhled na canary: preview 0.0.46-preview.YYYYMMDD.1 prošlo na canary Environmentu
    kontrolami i kontrolou v prohlížeči.
  • 8. Stable a nasazení: změna Machines (systemd slice agentů) je nasazená, oznámení lidem
    (nové spárování, aktualizace desktop a mobilní aplikace) je venku, 0.0.46-lazurio.1 je
    vydané a Update z 0.0.45-lazurio.N je ověřený.
  • 9. Po vydání: návrhy upstreamu jsou podané, runbook je doplněný a issue se zavírá.

Rozhodnutí po řádcích Overlaye

Stav: návrh z inventury proti upstream main (plán DEV-6646, oddíly 2.2–2.4); potvrdí se proti
tagu v0.0.46. Sloupec „Schválení“ uvádí jen to, co už schválené je.

# Řádek Co upstream změnil v jeho souborech Rozhodnutí Zdůvodnění a dopad Schválení
1 hosted: configurable client session TTL SessionStore.ts má dál pevných 30 dní (DEFAULT_SESSION_TTL). Konflikt v cli/config.ts (přesunuté makeDirectory(cwd), pingdotgg#15795), triviální. ponechat Machines nastavují 365d. návrh
2 hosted: serve behind an explicit HTTPS external origin pingdotgg#18509 přidává isBrowserOriginAllowed pro požadavky s cookie; konflikt v EnvironmentAuth.ts; server.test.ts upstream smazal. zmenšit Kontrola Originu overlaye odpadne. Zůstává proměnná, Secure cookie __Host- a politika loopbacku; dva testy cookie přejdou do auth/*.test.ts. návrh
3 hosted: explicit environment label Upstream čte dál jen PRETTY_HOSTNAME a hostname. Konflikt v ServerEnvironmentLabel.ts a testu (modul HostProcess), triviální. ponechat návrh
4 feat: in-app update from the configured release channel cliRelease.ts beze změny (pevné pingdotgg/t3code, první vydání kanálu), availableServerUpdate upstream nemá, protokol launcheru zůstává 3, instalační skripty beze změny; „update everything“ (pingdotgg#18053, pingdotgg#18709) míří na npm. Konflikty: importy Effect v cli/update.ts a cloud/pinnedRuntime.ts, připojené testy v ServerEnvironment.test.ts a versionSkew.test.ts, docs/user/updating.md; vše triviální. ponechat; nabídnout upstreamu Návrh upstreamu zatím nemá odkaz. návrh
5 release: Lazurio distribution Upstream .github/SECURITY.md nezměnil; přibyl workflow mobile-android-apk.yml s hodinovým cronem. ponechat, poslední UPSTREAM_TAG, UPSTREAM_SHA, 0.0.46-lazurio.0 a piny kontraktního testu; regexy švů, které se přesunou (ProviderService.ts, makeRoutesLayer, 60_000, shouldUseRightPanelSheet, podmínka „+“, počet browserAvailable, kontrola ActivityPayloadProjection.ts); brána testů (server.test.ts a OrchestrationEngine.test.ts upstream smazal); allowlist; runbook (záloha a Rollback na statev2.sqlite, nové spárování, protokol 2 u desktopu a mobilu, pozůstatky lazurio.7). D11 (Admin)
6 lazurio: unsent prompt draft by link from the shell pingdotgg#18454 přidává odkazy /new?prompt= (text v adrese do 8 000 znaků, projekt podle repo); <ThreadLinkPrompt> stojí v _chat.tsx tam, kde <LazurioPromptDraft /> (1 konflikt). ponechat Obě řádky v _chat.tsx zůstanou. D13 (Admin)
7 feat(web): Lazurio shell slot index.html beze změny; AppSidebarLayout.tsx 1 triviální konflikt (pingdotgg#18193). ponechat Šířka značky (pingdotgg#12141) a přesunutý přepínač sidebaru (pingdotgg#18193): kontrola v prohlížeči. návrh
8 feat(server): each thread's provider processes get its agent-browser session ProviderService.ts upstream smazal (orchestrace v2, pingdotgg#2829). Proces vlákna se spouští přes AgentScope.wrap({command, args, name, threadId, env}) v adaptérech Codex a Claude v2 a v terminálech; agentDeviceEnvironment čte jen Antigravity. přestavět Šev na AgentScope.wrap nebo v adaptérech, s testem pro Codex i Claude; přenesený beze změny by AGENT_BROWSER_SESSION potichu ztratil. agentBrowserSession.test.ts importuje odstraněné moduly. Pin kontraktního testu na ProviderService.ts na naivním sloučení projde falešně (soubor zůstane jako modify/delete). návrh
9 feat(web): the right panel shows the thread's Environment browser tabs ChatView.tsx 3 konflikty, shouldUseRightPanelSheet je shouldUsePlanSidebarSheet, browserAvailable zahrnuje serverový prohlížeč; úložiště panelu v14 odebírá druh agents (neznámé druhy migrace pustí); znovuotevření zavřené záložky (pingdotgg#15207); rightPanelStore.ts 6 konfliktů. přestavět Browser, Mod+Shift+J a řádek konceptu by na webu otevřely serverový prohlížeč upstreamu, pokud je overlay nepřesměruje (D10); znovuotevření musí povrchy environment-browser přeskočit. D10 (Admin)
10 feat(server): T3's browser tools drive the Environment browser ServerBrowser (pingdotgg#15328) se registruje jako preferovaný host vždy a spouští vlastní chrome-headless-shell (asi 120 MB); broker má preferred, řazení a 660 s pro open, nepřebije živé přiřazení desktopu a důvod chyby předá jen pro server-browser; ARIA strom a playwright-core 1.60.0 má upstream; PreviewToolFailure (pingdotgg#16335); nastavení pro externí prohlížeč přes CDP upstream nemá (jen T3CODE_SERVER_BROWSER_SANDBOX). zmenšit a přestavět; nabídnout upstreamu Odpadne playwright-core (4825051), ARIA strom (81804e8) a kopie engine (ecfbf94); preferovaný host se zúží na přednost před desktopem a 60 s pro open, důvod chyby na patch; engine upstreamu se napojí přes CDP na prohlížeč Environmentu (#43) a upstreamu se navrhne nastavení pro externí prohlížeč. D10 (Admin)
11 feat(server): a thread's Environment browser tabs live in its holder file server.ts: layerMakeRoutes (2 konflikty, jeden řádek); importy Effect v threadTabsRoute.ts a testu; hold a release vyžadují preview:operate (pingdotgg#9789). ponechat Rozsahy cesta bere z requiredScopeForRpcMethod; prohlížeče spárované na 0.0.45 ztratí hold a release do nového spárování. návrh
12 feat(server): archiving or deleting a thread lets go of its tabs and stops its agent's daemon Události vláken jsou v OrchestratorV2.streamDomainEvents (thread.archived, thread.unarchived, thread.deleted); smazání v upstreamu spouští preview.cleanup, archivace ne; importovaná vlákna v1 si nechávají id. přestavět Adaptér threadLifecycle.ts na v2 (asi 20 řádků), úklid při startu přes getThreadShell; soubory držitelů zůstávají platné. návrh
13 feat(web): "+" and the empty panel open Nová karta „+“ se ukazuje vždy, když je panel otevřený; Mod+T (pingdotgg#15686) otevírá nabídku; bod rozšíření pro „+“ upstream nemá. přestavět; nabídnout upstreamu Obě cesty potřebují větev overlaye; LazurioNewTab.test.tsx předává odstraněné props Agents. Bod rozšíření „+“ v upstreamu by odstranil největší šev webu. návrh
14 feat(web): reorder right panel tabs by dragging (#17730) 4107930 je na upstream main (od nightly 20261010.2922). odebrat rightPanelStore.test.ts a routes/_chat.pull-requests.tsx odejdou z allowlistu. návrh
15 feat(lazurio): provide a managed Folder project and native model reconciliation OrchestrationEngine.ts, ProviderCommandReactor.ts a jejich testy upstream smazal (v2); projekty už nejsou příkazy orchestrace (ProjectService.bootstrap, RuntimePolicyV2); nové projekty Scratch a jen se jménem (project/ManagedProjectFolders.ts); zápis nastavení přes updateAndPersistSettings. Konflikty: bin.ts (strom příkazů v binCli.ts), cli/config.ts, serverRuntimeStartup.ts (upstream přepsal start v1), serverSettings.ts, ws.ts, VcsProvisioningService.test.ts, DraftHeroHeadline.tsx, Sidebar.tsx, useScratchProject.ts. přestavět; zmenšit Převzetí složky do ProjectService.bootstrap, stráž příkazů na ProjectService, OrchestratorV2.dispatch a dekorátor RuntimePolicyV2; Scratch a projekty jen se jménem skrýt na serveru (šev useScratchProject.ts pak odpadne). t3 lazurio model <JSON> musí vydat sezení s rozsahem cesty (settings:write), jinak 403. Zkontrolovat pingdotgg#18840 a pingdotgg#18334 proti lazurioManagedModelSelection. návrh
16 feat(web): the in-app name T3 Code (Lazurio) branding.ts, branding.logic.ts, index.html a manifest.webmanifest beze změny; SidebarChrome.tsx změněný (pingdotgg#12141, pingdotgg#18193), sloučí se čistě a štítek zachová. ponechat Kontrola v prohlížeči: štítek „Lazurio“ v novém řádku značky. návrh
17 feat(web): the design system's light look on a Lazurio Environment main.tsx beze změny; index.css +181 −49; stráž tokenů v kontraktním testu na naivním sloučení projde; nové tokeny --diffs-search-panel-* se odvozují z tokenů, které mapování nastavuje. ponechat Kontrola v prohlížeči. návrh

Brány kompatibility

Brána Co se na nové bázi mění Rozhodnutí a ověření
t3 lazurio capabilities a t3 lazurio model Výstupy se nemění. serverUpdateSettings vyžaduje settings:write (pingdotgg#9786; na 0.0.45 orchestration:operate) a CLI dnes vydá sezení s orchestration:operate: model <JSON> by dostal 403 a lazurio chat defaults --apply Platformy by selhal. CLI vydá rozsah cesty; cli.test.ts beze změny výstupu; na canary lazurio chat defaults --apply.
Kanál aktualizací a protokol launcheru SERVICE_LAUNCHER_PROTOCOL zůstává 3, cliRelease.ts beze změny. Testy řádku 4 a job Launcher install linux-x64; Update z 0.0.45-lazurio.N na canary.
Párování a rozsahy sezení Rozsahy jsou rozdělené (settings:write, providers:manage, environment:maintain v pingdotgg#9786, preview:operate v pingdotgg#9789) a server uložené granty nerozšiřuje. Prohlížeče spárované na 0.0.45 (cookie na 365 dní) ztratí zápis nastavení, tlačítko Update a hold a release záložek, dokud se znovu nespárují. Oznámení lidem před stable; na canary starý i nově spárovaný prohlížeč.
Databáze Server založí statev2.sqlite jednou kopií state.sqlite (persistence/initializeV2Database.ts, pingdotgg#2829) a state.sqlite pak nechá být. Návrat na 0.0.45 přistane na stavu z okamžiku aktualizace a další upgrade už statev2.sqlite znovu nezaloží: co vznikne mezitím na 0.0.45, se ztratí. Záloha před canary; záloha a Rollback v runbooku na statev2.sqlite (řádek 5).
Desktop a mobil (orchestrační protokol) ORCHESTRATION_PROTOCOL_VERSION = 2 (pingdotgg#2829); server 0.0.45 protokol neuvádí (= 1). Aplikace 0.0.46 se k serverům 0.0.45-lazurio.N nepřipojí a aplikace 0.0.45 dostanou od serveru 0.0.46 HTTP 426. Začít hned po vydání v0.0.46 (D14); oznámení; desktop 0.0.46 proti canary.
Kontrakt prohlížeče Environmentu Soubory overlaye se nemění, jen importy Effect (environmentBrowser.test.ts, threadTabsRoute.ts a test). Úkol 703 (převzetí kontraktu z artefaktu Platformy) zatím čeká na Platformu a do přestavby nepatří. holders.test.ts s vektory Platformy a kontrola obou kopií browserView.ts beze změny vektorů.
Slot shellu a vzhled design systému index.html a main.tsx beze změny, AppSidebarLayout.tsx triviální konflikt; stráže slotu, barevných rolí, jména i vzhledu v kontraktním testu na naivním sloučení projdou. Kontrola v prohlížeči na canary (štítek, šířka značky, přepínač sidebaru, tokeny).
Machines a Platforma Agenti a terminály běží ve vlastních systemd scopes v app-t3code-agents.slice s limity paměti (pingdotgg#17662): Machines je musí povolit. Platforma: větev /.lazurio/browser.json?session= pro lazurio.7 může odejít, až bude lazurio.8 všude. Změna Machines před stable; ověření na canary.

Schválená rozhodnutí (Organization Admin, 2026-10-13)

Další známá práce mimo řádky

  • Importy Effect: Effect 4.0.2 už nemá effect/unstable/* a dnes je importuje 12 souborů overlaye
    (apps/server/src/cloud/releaseIndex.ts a test, v apps/server/src/lazurio/: cli.ts a test,
    environmentBrowser.test.ts, modelRecommendationRoute.ts a test, routeAuth.ts,
    threadTabsRoute.ts a test; ve webu LazurioPromptDraft.tsx a ManagedFolderWelcome.tsx),
    k tomu přejmenovaná API (HostProcess, layerMakeRoutes, layerTest).
  • Kontraktní test na naivním sloučení upstream main s main forku: 24 z 29 testů projde; selže
    stráž spravované složky, švy pravého panelu, makeRoutesLayer, kontrola
    ActivityPayloadProjection.ts (ta jen proti staré bázi) a „+“ Nové karty; test sezení
    agent-browser projde falešně (viz řádek 8).
  • Po výměně vypnout mobile-android-apk.yml a ověřit, že žádný jiný upstream workflow není
    aktivní.

Rizika

  • Aplikace 0.0.45 a servery 0.0.46 se nespojí (a naopak); prohlížeče spárované na 0.0.45 ztratí
    zápis nastavení, Update a hold a release, dokud se znovu nespárují. Lidem to oznámit předem.
  • Migrace databáze je jednosměrná; před aktualizací zálohovat.
  • Dva preferovaní hostitelé náhledu, dokud se neprovede D10.
  • AGENT_BROWSER_SESSION se pro Codex a Claude potichu ztratí, když se šev přenese beze změny.
  • Stráž příkazů spravované složky je přestavba, ne přenos.
  • Machines musí povolit systemd scopes agentů v app-t3code-agents.slice.

Co se změnilo od plánu (2026-10-13)

Otevřené otázky a blokery

  • Upstream v0.0.46 ještě nevyšel.
  • Chybí stable 0.0.45-lazurio.9, které zachytí main.
  • Release workflow accepts an upstream tag older than main's base #69: workflow vydání přijme i starší upstream tag, než na jakém main stojí.
  • Řádek 8: má AGENT_BROWSER_SESSION dostat i terminál vlákna (také jde přes AgentScope.wrap)?
  • D10: přesné místo napojení přes CDP (změna overlaye v ServerBrowserContexts, nebo nejdřív
    návrh upstreamu).
  • Text oznámení lidem (nové spárování, aktualizace aplikací) a kdo ho pošle.

Activity

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