diff --git a/discussion/index.ndjson b/discussion/index.ndjson index d8d12dae..8e7174a2 100644 --- a/discussion/index.ndjson +++ b/discussion/index.ndjson @@ -2,7 +2,7 @@ {"type":"discussion","id":"DSC-0039","status":"abandoned","ticket":"render-pipeline-family-and-future-3d","title":"Render Pipeline Family and Future 3D","created_at":"2026-06-04","updated_at":"2026-06-04","tags":["gfx","renderer","runtime","architecture","pipeline"],"agendas":[{"id":"AGD-0039","file":"AGD-0039-render-pipeline-family-and-future-3d.md","status":"abandoned","created_at":"2026-06-04","updated_at":"2026-06-04","_override_reason":"User explicitly chose to close this agenda without a new decision because DSC-0038 already established enough architecture for future extension, and 3D is intentionally deferred."}],"decisions":[],"plans":[],"lessons":[],"_override_reason":"User explicitly chose to close this agenda without a new decision because DSC-0038 already established enough architecture for future extension, and 3D is intentionally deferred."} {"type":"discussion","id":"DSC-0040","status":"done","ticket":"vm-render-parallel-execution-boundary","title":"VM and Render Parallel Execution Boundary","created_at":"2026-06-04","updated_at":"2026-06-06","tags":["runtime","renderer","vm","concurrency","architecture","perf"],"agendas":[],"decisions":[],"plans":[],"lessons":[{"id":"LSN-0048","file":"discussion/lessons/DSC-0040-vm-render-parallel-execution-boundary/LSN-0048-render-workers-need-a-closed-packet-contract.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-06"}]} {"type":"discussion","id":"DSC-0041","status":"open","ticket":"foreground-stack-game-pause-shell-vm-backed","title":"Foreground Stack, Game Pause, and VM-Backed Shell Coexistence","created_at":"2026-06-05","updated_at":"2026-06-05","tags":["runtime","os","lifecycle","shell","game","vm","foreground","architecture"],"agendas":[{"id":"AGD-0041","file":"AGD-0041-foreground-stack-game-pause-shell-vm-backed.md","status":"open","created_at":"2026-06-05","updated_at":"2026-06-05"}],"decisions":[],"plans":[],"lessons":[]} -{"type":"discussion","id":"DSC-0042","status":"open","ticket":"real-render-worker-establishment","title":"Real Render Worker Establishment","created_at":"2026-06-06","updated_at":"2026-06-06","tags":["runtime","renderer","worker","concurrency","host","hal","architecture"],"agendas":[{"id":"AGD-0042","file":"AGD-0042-host-hardware-render-boundary-preparation.md","status":"accepted","created_at":"2026-06-06","updated_at":"2026-06-06"},{"id":"AGD-0043","file":"AGD-0043-real-render-worker-establishment.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06"}],"decisions":[{"id":"DEC-0032","file":"DEC-0032-platform-layer-and-hardwarebridge-elimination.md","status":"accepted","created_at":"2026-06-06","updated_at":"2026-06-06","ref_agenda":"AGD-0042"}],"plans":[{"id":"PLN-0098","file":"PLN-0098-define-platform-facade-contracts.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06","ref_decisions":["DEC-0032"]},{"id":"PLN-0099","file":"PLN-0099-introduce-owned-render-submission-sink.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06","ref_decisions":["DEC-0032"]},{"id":"PLN-0100","file":"PLN-0100-migrate-local-render-publication-to-sink.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06","ref_decisions":["DEC-0032"]},{"id":"PLN-0101","file":"PLN-0101-remove-immediate-gfx-syscall-rendering.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06","ref_decisions":["DEC-0032"]},{"id":"PLN-0102","file":"PLN-0102-introduce-game2d-frame-composer-service.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06","ref_decisions":["DEC-0032"]},{"id":"PLN-0103","file":"PLN-0103-introduce-runtime-platform-and-testplatform.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06","ref_decisions":["DEC-0032"]},{"id":"PLN-0104","file":"PLN-0104-migrate-vm-runtime-hostcontext-to-platform.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06","ref_decisions":["DEC-0032"]},{"id":"PLN-0105","file":"PLN-0105-migrate-firmware-and-hub-to-platform-services.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06","ref_decisions":["DEC-0032"]},{"id":"PLN-0106","file":"PLN-0106-migrate-desktop-host-to-platform-services.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06","ref_decisions":["DEC-0032"]},{"id":"PLN-0107","file":"PLN-0107-migrate-remaining-platform-domains.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06","ref_decisions":["DEC-0032"]},{"id":"PLN-0108","file":"PLN-0108-migrate-tests-to-testplatform.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06","ref_decisions":["DEC-0032"]},{"id":"PLN-0109","file":"PLN-0109-remove-hardwarebridge-and-update-specs.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06","ref_decisions":["DEC-0032"]}],"lessons":[]} +{"type":"discussion","id":"DSC-0042","status":"in_progress","ticket":"real-render-worker-establishment","title":"Real Render Worker Establishment","created_at":"2026-06-06","updated_at":"2026-06-15","tags":["runtime","renderer","worker","concurrency","host","hal","architecture"],"agendas":[{"id":"AGD-0042","file":"AGD-0042-host-hardware-render-boundary-preparation.md","status":"accepted","created_at":"2026-06-06","updated_at":"2026-06-06"},{"id":"AGD-0043","file":"AGD-0043-real-render-worker-establishment.md","status":"open","created_at":"2026-06-06","updated_at":"2026-06-06"}],"decisions":[{"id":"DEC-0032","file":"DEC-0032-platform-layer-and-hardwarebridge-elimination.md","status":"accepted","created_at":"2026-06-06","updated_at":"2026-06-06","ref_agenda":"AGD-0042"}],"plans":[{"id":"PLN-0098","file":"PLN-0098-define-platform-facade-contracts.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-15","ref_decisions":["DEC-0032"]},{"id":"PLN-0099","file":"PLN-0099-introduce-owned-render-submission-sink.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-15","ref_decisions":["DEC-0032"]},{"id":"PLN-0100","file":"PLN-0100-migrate-local-render-publication-to-sink.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-15","ref_decisions":["DEC-0032"]},{"id":"PLN-0101","file":"PLN-0101-remove-immediate-gfx-syscall-rendering.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-15","ref_decisions":["DEC-0032"]},{"id":"PLN-0102","file":"PLN-0102-introduce-game2d-frame-composer-service.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-15","ref_decisions":["DEC-0032"]},{"id":"PLN-0103","file":"PLN-0103-introduce-runtime-platform-and-testplatform.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-15","ref_decisions":["DEC-0032"]},{"id":"PLN-0104","file":"PLN-0104-migrate-vm-runtime-hostcontext-to-platform.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-15","ref_decisions":["DEC-0032"]},{"id":"PLN-0105","file":"PLN-0105-migrate-firmware-and-hub-to-platform-services.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-15","ref_decisions":["DEC-0032"]},{"id":"PLN-0106","file":"PLN-0106-migrate-desktop-host-to-platform-services.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-15","ref_decisions":["DEC-0032"]},{"id":"PLN-0107","file":"PLN-0107-migrate-remaining-platform-domains.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-15","ref_decisions":["DEC-0032"]},{"id":"PLN-0108","file":"PLN-0108-migrate-tests-to-testplatform.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-15","ref_decisions":["DEC-0032"]},{"id":"PLN-0109","file":"PLN-0109-remove-hardwarebridge-and-update-specs.md","status":"done","created_at":"2026-06-06","updated_at":"2026-06-15","ref_decisions":["DEC-0032"]}],"lessons":[]} {"type":"discussion","id":"DSC-0038","status":"done","ticket":"render-frame-packet-boundary","title":"Logical Render Pipelines and Command Packets","created_at":"2026-05-25","updated_at":"2026-06-04","tags":["gfx","renderer","runtime","frame-composer","architecture","ui","pipeline"],"agendas":[],"decisions":[],"plans":[],"lessons":[{"id":"LSN-0047","file":"discussion/lessons/DSC-0038-render-frame-packet-boundary/LSN-0047-typed-render-submissions-preserve-domain-boundaries.md","status":"done","created_at":"2026-06-04","updated_at":"2026-06-04"}]} {"type":"discussion","id":"DSC-0035","status":"done","ticket":"task-owned-shell-windows","title":"Agenda - Task-Owned Shell Windows","created_at":"2026-05-15","updated_at":"2026-05-15","tags":["runtime","os","task","window-manager","shell","lifecycle"],"agendas":[],"decisions":[],"plans":[],"lessons":[{"id":"LSN-0044","file":"discussion/lessons/DSC-0035-task-owned-shell-windows/LSN-0044-task-window-liveness-belongs-to-the-task.md","status":"done","created_at":"2026-05-15","updated_at":"2026-05-15"}]} {"type":"discussion","id":"DSC-0034","status":"done","ticket":"system-os-domain-facades","title":"Agenda - SystemOS Domain Facades","created_at":"2026-05-15","updated_at":"2026-05-15","tags":["runtime","os","services","api-surface","lifecycle","fs"],"agendas":[],"decisions":[],"plans":[],"lessons":[{"id":"LSN-0043","file":"discussion/lessons/DSC-0034-system-os-domain-facades/LSN-0043-systemos-domain-facades.md","status":"done","created_at":"2026-05-15","updated_at":"2026-05-15"}]} diff --git a/discussion/workflow/agendas/AGD-0043-real-render-worker-establishment.md b/discussion/workflow/agendas/AGD-0043-real-render-worker-establishment.md index 18b054da..e9b84cb2 100644 --- a/discussion/workflow/agendas/AGD-0043-real-render-worker-establishment.md +++ b/discussion/workflow/agendas/AGD-0043-real-render-worker-establishment.md @@ -11,9 +11,24 @@ tags: [runtime, renderer, worker, concurrency, host, hal, architecture] ## Contexto -`DEC-0031` definiu o contrato arquitetural da fronteira VM/render. `AGD-0042` prepara a fronteira host/hardware/render para que `Hardware` deixe de ser um objeto concreto atravessando o worker e passe a ser contrato/facades implementadas pelo host. +`DEC-0031` definiu o contrato arquitetural da fronteira VM/render. `AGD-0042` preparou a fronteira host/hardware/render para que `Hardware` deixe de ser um objeto concreto atravessando o worker e passe a ser contrato/facades implementadas pelo host. -Esta agenda discute a implementacao do worker real propriamente dito, assumindo que a preparacao da fronteira foi ou sera resolvida antes da execucao. +Esta agenda discute a implementacao do worker real propriamente dito, assumindo que a preparacao da fronteira ja foi resolvida antes da execucao. + +### Estado Atual Depois da `AGD-0042` + +A preparacao de fronteira foi executada pelos planos `PLN-0098` a `PLN-0109`: + +- `HardwareBridge` foi removido do codigo e deixou de ser contrato publico; +- `RuntimePlatform` passou a ser a fronteira runtime-facing para render, input, audio, assets e telemetry; +- `RenderSubmissionSink` aceita submissao owned; +- `Game2DFrameComposer` separa fechamento logico de frame do backend de render; +- syscalls `gfx2d.*` e `gfxui.*` bufferizam comandos e nao desenham imediatamente via `Gfx`; +- firmware, Hub, runtime e host desktop passam por servicos de plataforma; +- testes de runtime/firmware usam `TestPlatform` como fixture local; +- specs de GFX/portabilidade documentam que o worker/render consumer nao deve depender de `&mut Hardware`, `&mut Gfx`, `FrameComposer` vivo ou estado mutavel da VM. + +O estado atual ainda nao tem worker real. O `LocalRenderWorker` continua sendo o caminho local/cooperativo que consome `RenderSubmission` no mesmo processo. O proximo passo desta agenda e decidir onde vive o controller do worker real, qual handoff thread-safe ele usa, e qual backend renderizavel ele owns ou recebe. ## Problema @@ -124,14 +139,69 @@ O host desktop pode ser a primeira integracao concreta, mas nao deve ser o unico ## Perguntas em Aberto -- [ ] O worker controller vive em `prometeu-system`, `prometeu-hal`, `prometeu-drivers`, ou host? -- [ ] O handoff thread-safe sera `Mutex>`, canal bounded, atomic slot, ou estrutura propria? -- [ ] Como modelar current work para shutdown e stale owner? -- [ ] Quem chama present: worker, host event loop, ou display cadence service? -- [ ] Como o worker recebe recursos read-only preparados na `AGD-0042`? -- [ ] Qual erro tipado minimo precisamos no primeiro worker? -- [ ] Como provar que a VM nao bloqueia quando o worker atrasa? -- [ ] Qual sera o primeiro backend real: desktop `Gfx`/pixels, framebuffer local, ou fake backend? +### 1. Onde vive o worker controller? + +**Pergunta:** O worker controller vive em `prometeu-system`, `prometeu-hal`, `prometeu-drivers`, ou host? + +**Sugestao:** colocar o controller contratual em `prometeu-system`, proximo de `RenderManager`, e manter traits pequenas em `prometeu-hal` quando forem superficie compartilhada. `prometeu-drivers` deve continuar oferecendo implementacoes locais/testaveis; host desktop deve integrar o controller, nao definir o contrato. + +**Motivo:** o `RenderManager` ja owns policy de AppMode, ownership/epoch, latest-wins e telemetry. Se o controller nascer apenas no host, a semantica de worker vira desktop-specific e fica mais dificil provar o contrato sem janela nativa. + +### 2. Qual handoff thread-safe usar? + +**Pergunta:** O handoff thread-safe sera `Mutex>`, canal bounded, atomic slot, ou estrutura propria? + +**Sugestao:** comecar com uma estrutura propria simples baseada em `Mutex> + Condvar`, encapsulada como single-slot latest-wins. O produtor substitui a pending submission sem bloquear em rasterizacao; o consumidor espera por nova submission ou shutdown. + +**Motivo:** canal bounded tende a preservar historico ou bloquear produtor se nao for usado com cuidado. Um slot explicito modela diretamente a regra ja aceita: nao existe fila crescente, a ultima submissao completa vence. + +### 3. Como modelar current work, shutdown e stale owner? + +**Pergunta:** Como modelar current work para shutdown e stale owner? + +**Sugestao:** separar `pending` de `in_flight`. Ao tomar uma submission, o worker carimba `in_flight` localmente, renderiza, e checa ownership/epoch contra um snapshot atomico ou handle compartilhado antes de present. Shutdown sinaliza stop, acorda o worker e faz join bounded; se houver trabalho em andamento, ele pode terminar rasterizacao, mas nao pode apresentar se o owner/epoch estiver obsoleto ou o stop ja exigir descarte. + +**Motivo:** isso evita que shutdown dependa de cancelar mid-raster em codigo que talvez nao seja cancelavel, mas ainda impede present obsoleto. + +### 4. Quem chama present? + +**Pergunta:** Quem chama present: worker, host event loop, ou display cadence service? + +**Sugestao:** no primeiro corte, o worker deve produzir/publish uma superficie pronta e notificar host invalidation; o host event loop continua sendo autoridade de apresentacao da janela nativa. O "repeat ultimo frame valido" deve ser modelado no controller/telemetry como comportamento de consumo/cadence, mas o swap/window present concreto deve respeitar o host. + +**Motivo:** winit/pixels e plataformas graficas frequentemente tem afinidade com thread/event loop. Colocar o swap real dentro do worker pode funcionar em alguns hosts e quebrar portabilidade. O contrato importante e que a VM nao bloqueie e que o host tenha uma superficie publicada coerente. + +### 5. Como o worker recebe recursos read-only? + +**Pergunta:** Como o worker recebe recursos read-only preparados na `AGD-0042`? + +**Sugestao:** o primeiro backend deve receber `RenderSubmission` owned e handles/read-only resource accessors necessarios para resolver glyph/scene banks. Esses accessors devem ser compartilhaveis e imutaveis durante o consumo, evitando `&mut Hardware`, `&mut Gfx` e `FrameComposer` vivo. + +**Motivo:** `AGD-0042` eliminou o bridge monolitico exatamente para impedir que o worker dependa do hardware inteiro. A proxima decisao precisa declarar quais recursos sao lidos pelo render backend e como sua estabilidade e garantida durante uma submissao em voo. + +### 6. Qual erro tipado minimo? + +**Pergunta:** Qual erro tipado minimo precisamos no primeiro worker? + +**Sugestao:** introduzir um erro pequeno, por exemplo `RenderWorkerError`, cobrindo pelo menos: backend unavailable, render failed, present/publish failed, shutdown timeout, stale submission discarded. Panics continuam sendo capturados como falha interna, mas nao devem ser o modelo operacional normal. + +**Motivo:** `LocalRenderWorker` hoje prova policy, mas nao diferencia falhas reais de render/present. O worker real precisa reportar falhas sem contaminar a VM com detalhes de host. + +### 7. Como provar que a VM nao bloqueia? + +**Pergunta:** Como provar que a VM nao bloqueia quando o worker atrasa? + +**Sugestao:** criar testes deterministas com backend fake controlado por barreiras/condvars, nao sleeps. O teste deve segurar o worker em rasterizacao, produzir frames adicionais no runtime, verificar substituicao latest-wins/drop telemetry, e provar que o tick da VM retorna sem esperar o consumo terminar. + +**Motivo:** sleeps tornam teste de concorrencia fragil. Barreiras permitem provar especificamente a propriedade desejada: produtor nao bloqueia em raster/present lento. + +### 8. Qual primeiro backend real? + +**Pergunta:** Qual sera o primeiro backend real: desktop `Gfx`/pixels, framebuffer local, ou fake backend? + +**Sugestao:** implementar primeiro um backend fake/mocked para contrato e um backend local framebuffer para integracao sem janela. A integracao desktop deve vir em seguida como consumidor concreto, usando a mesma trait. + +**Motivo:** se o primeiro backend for desktop/winit, o contrato corre risco de nascer acoplado a detalhes de janela. Se o primeiro for fake/local, a semantica do worker fica testavel antes da integracao visual. ## Criterio para Encerrar diff --git a/discussion/workflow/plans/PLN-0098-define-platform-facade-contracts.md b/discussion/workflow/plans/PLN-0098-define-platform-facade-contracts.md index 2ec7f397..f29b2154 100644 --- a/discussion/workflow/plans/PLN-0098-define-platform-facade-contracts.md +++ b/discussion/workflow/plans/PLN-0098-define-platform-facade-contracts.md @@ -2,7 +2,7 @@ id: PLN-0098 ticket: real-render-worker-establishment title: Define Platform Facade Contracts -status: open +status: done created: 2026-06-06 completed: ref_decisions: [DEC-0032] diff --git a/discussion/workflow/plans/PLN-0099-introduce-owned-render-submission-sink.md b/discussion/workflow/plans/PLN-0099-introduce-owned-render-submission-sink.md index 844568be..17651383 100644 --- a/discussion/workflow/plans/PLN-0099-introduce-owned-render-submission-sink.md +++ b/discussion/workflow/plans/PLN-0099-introduce-owned-render-submission-sink.md @@ -2,7 +2,7 @@ id: PLN-0099 ticket: real-render-worker-establishment title: Introduce Owned RenderSubmissionSink -status: open +status: done created: 2026-06-06 completed: ref_decisions: [DEC-0032] diff --git a/discussion/workflow/plans/PLN-0100-migrate-local-render-publication-to-sink.md b/discussion/workflow/plans/PLN-0100-migrate-local-render-publication-to-sink.md index 670963e4..550b66a6 100644 --- a/discussion/workflow/plans/PLN-0100-migrate-local-render-publication-to-sink.md +++ b/discussion/workflow/plans/PLN-0100-migrate-local-render-publication-to-sink.md @@ -2,7 +2,7 @@ id: PLN-0100 ticket: real-render-worker-establishment title: Migrate Local Render Publication to RenderSubmissionSink -status: open +status: done created: 2026-06-06 completed: ref_decisions: [DEC-0032] diff --git a/discussion/workflow/plans/PLN-0101-remove-immediate-gfx-syscall-rendering.md b/discussion/workflow/plans/PLN-0101-remove-immediate-gfx-syscall-rendering.md index 69975865..bb4ffa76 100644 --- a/discussion/workflow/plans/PLN-0101-remove-immediate-gfx-syscall-rendering.md +++ b/discussion/workflow/plans/PLN-0101-remove-immediate-gfx-syscall-rendering.md @@ -2,7 +2,7 @@ id: PLN-0101 ticket: real-render-worker-establishment title: Remove Immediate Gfx2D and GfxUI Syscall Rendering -status: open +status: done created: 2026-06-06 completed: ref_decisions: [DEC-0032] diff --git a/discussion/workflow/plans/PLN-0102-introduce-game2d-frame-composer-service.md b/discussion/workflow/plans/PLN-0102-introduce-game2d-frame-composer-service.md index 0f715ca9..afad26c2 100644 --- a/discussion/workflow/plans/PLN-0102-introduce-game2d-frame-composer-service.md +++ b/discussion/workflow/plans/PLN-0102-introduce-game2d-frame-composer-service.md @@ -2,7 +2,7 @@ id: PLN-0102 ticket: real-render-worker-establishment title: Introduce Game2DFrameComposer Logical Service -status: open +status: done created: 2026-06-06 completed: ref_decisions: [DEC-0032] diff --git a/discussion/workflow/plans/PLN-0103-introduce-runtime-platform-and-testplatform.md b/discussion/workflow/plans/PLN-0103-introduce-runtime-platform-and-testplatform.md index ee18af08..86224a60 100644 --- a/discussion/workflow/plans/PLN-0103-introduce-runtime-platform-and-testplatform.md +++ b/discussion/workflow/plans/PLN-0103-introduce-runtime-platform-and-testplatform.md @@ -2,7 +2,7 @@ id: PLN-0103 ticket: real-render-worker-establishment title: Introduce RuntimePlatform and TestPlatform -status: open +status: done created: 2026-06-06 completed: ref_decisions: [DEC-0032] diff --git a/discussion/workflow/plans/PLN-0104-migrate-vm-runtime-hostcontext-to-platform.md b/discussion/workflow/plans/PLN-0104-migrate-vm-runtime-hostcontext-to-platform.md index 1b00bc5a..1cdc4475 100644 --- a/discussion/workflow/plans/PLN-0104-migrate-vm-runtime-hostcontext-to-platform.md +++ b/discussion/workflow/plans/PLN-0104-migrate-vm-runtime-hostcontext-to-platform.md @@ -2,7 +2,7 @@ id: PLN-0104 ticket: real-render-worker-establishment title: Migrate VM Runtime HostContext to Platform Services -status: open +status: done created: 2026-06-06 completed: ref_decisions: [DEC-0032] diff --git a/discussion/workflow/plans/PLN-0105-migrate-firmware-and-hub-to-platform-services.md b/discussion/workflow/plans/PLN-0105-migrate-firmware-and-hub-to-platform-services.md index a7165b5e..1a574ea0 100644 --- a/discussion/workflow/plans/PLN-0105-migrate-firmware-and-hub-to-platform-services.md +++ b/discussion/workflow/plans/PLN-0105-migrate-firmware-and-hub-to-platform-services.md @@ -2,7 +2,7 @@ id: PLN-0105 ticket: real-render-worker-establishment title: Migrate Firmware and Hub to Platform Services -status: open +status: done created: 2026-06-06 completed: ref_decisions: [DEC-0032] diff --git a/discussion/workflow/plans/PLN-0106-migrate-desktop-host-to-platform-services.md b/discussion/workflow/plans/PLN-0106-migrate-desktop-host-to-platform-services.md index 016ccd71..499a22a9 100644 --- a/discussion/workflow/plans/PLN-0106-migrate-desktop-host-to-platform-services.md +++ b/discussion/workflow/plans/PLN-0106-migrate-desktop-host-to-platform-services.md @@ -2,7 +2,7 @@ id: PLN-0106 ticket: real-render-worker-establishment title: Migrate Desktop Host to Platform Services -status: open +status: done created: 2026-06-06 completed: ref_decisions: [DEC-0032] diff --git a/discussion/workflow/plans/PLN-0107-migrate-remaining-platform-domains.md b/discussion/workflow/plans/PLN-0107-migrate-remaining-platform-domains.md index e7f13106..a19982cf 100644 --- a/discussion/workflow/plans/PLN-0107-migrate-remaining-platform-domains.md +++ b/discussion/workflow/plans/PLN-0107-migrate-remaining-platform-domains.md @@ -2,7 +2,7 @@ id: PLN-0107 ticket: real-render-worker-establishment title: Migrate Remaining Platform Domains -status: open +status: done created: 2026-06-06 completed: ref_decisions: [DEC-0032] diff --git a/discussion/workflow/plans/PLN-0108-migrate-tests-to-testplatform.md b/discussion/workflow/plans/PLN-0108-migrate-tests-to-testplatform.md index cd08c9eb..ce6871a0 100644 --- a/discussion/workflow/plans/PLN-0108-migrate-tests-to-testplatform.md +++ b/discussion/workflow/plans/PLN-0108-migrate-tests-to-testplatform.md @@ -2,7 +2,7 @@ id: PLN-0108 ticket: real-render-worker-establishment title: Migrate Tests to TestPlatform -status: open +status: done created: 2026-06-06 completed: ref_decisions: [DEC-0032] diff --git a/discussion/workflow/plans/PLN-0109-remove-hardwarebridge-and-update-specs.md b/discussion/workflow/plans/PLN-0109-remove-hardwarebridge-and-update-specs.md index f795d8c0..a44508da 100644 --- a/discussion/workflow/plans/PLN-0109-remove-hardwarebridge-and-update-specs.md +++ b/discussion/workflow/plans/PLN-0109-remove-hardwarebridge-and-update-specs.md @@ -2,7 +2,7 @@ id: PLN-0109 ticket: real-render-worker-establishment title: Remove HardwareBridge and Update Specs -status: open +status: done created: 2026-06-06 completed: ref_decisions: [DEC-0032]