10 KiB
Created
Created by LocalTicketBackend create.
Intake summary
Existing Ticket refined enough for Orchestrator routing. The request is to remove product-name-specific default Pod identity ("yoi"/DEFAULT_POD_NAME) and unify fresh default Pod naming on the sanitized workspace/current-directory basename, while preserving explicit --pod precedence, keeping Orchestrator/role Pods distinct and explicit, and ensuring Profile selection never determines Pod identity. Readiness: implementation_ready. Needs preflight: true, because this touches Pod identity, CLI/TUI/Panel launch behavior, Profile/runtime boundary, and Pod metadata/restore expectations. Risk flags: pod-identity, profile-boundary, cli-tui-panel-consistency, persistence. Related work: coordinate with remove-profile-derived-pod-names; keep add-pod-archive-fresh-start-path out of scope.
State changed
Intake completed for existing Ticket; ready for human queueing and Orchestrator routing. Implementation must not start until the panel/user moves ready -> queued and Orchestrator records queued -> inprogress.
State changed
Ticket queued for Orchestrator routing.
Decision
Routing decision: preflight_needed
Reason:
- The Ticket is clear enough to route, but it changes runtime Pod identity defaults across CLI, TUI, Panel, and helper launch paths.
- Intake explicitly recorded
needs_preflight: truebecause this touches Pod identity, Profile/runtime separation, CLI/TUI/Panel consistency, and persistence/restore expectations. - This Ticket must be coordinated with
remove-profile-derived-pod-namesandintroduce-runtime-workspace-root-contextso the default workspace basename policy, explicit--podprecedence, Profile non-influence, and Orchestrator/role Pod naming split are binding before coder delegation. - No preflight/design note is present yet that fixes the exact default naming policy and the caller/test boundaries.
Evidence checked:
- Ticket body: background, goal, requirements, non-goals, and acceptance criteria.
- Thread: intake summary and
ready -> queuedevent. - Workspace state:
develophas Ticket-record edits for this and related queued Tickets; no matching branch or worktree exists for this slug. - Visible Pods: Intake peers for this and related Tickets are live; no coder/reviewer implementation Pods are active.
Next action:
- Run
ticket-preflight-workflowfor this Ticket before implementation delegation. - Preflight should record: sanitized workspace/current-directory basename rules, generic fallback behavior, explicit
--podprecedence, Orchestrator/role Pod naming invariants, Panel Companion expectations, relationship to Profile-derived-name removal, non-goals around existing metadata/archive behavior, and test/validation targets using a non-yoiworkspace. - Leave this Ticket queued for now; do not transition
queued -> inprogress, create.worktree/use-workspace-basename-for-default-pod-name, or spawn coder/reviewer Pods until preflight records implementation readiness.
Escalate if:
- Default naming requires a metadata migration for existing Pods.
- Workspace-root context must be introduced first to compute defaults consistently.
- Any caller still requires Profile slug/source as an identity fallback.
Decision
Shared Pod identity / workspace boundary decision
This decision is shared across these related Tickets:
introduce-runtime-workspace-root-contextremove-profile-derived-pod-namesuse-workspace-basename-for-default-pod-name
The three Tickets should be treated as a coordinated cleanup bundle, not as three unrelated design unknowns requiring separate heavy preflight. This decision supplies the binding boundary needed for Orchestrator routing; remaining uncertainty should be treated as coder implementation investigation unless it hits an escalation condition below.
Binding decisions:
--workspace <path>represents the runtime workspace root.--pod <name>represents the runtime Pod identity for both restore and fresh create.--profile <selector>represents reusable Profile recipe selection only.- Lua Profile fields, Profile slug, Profile source, and registry entry names must not define or imply
pod.name. - Default Pod name derives from the runtime workspace basename, not from product name, Profile slug/source,
.yoiproject-record marker, or memory root detection. - This repository's normal default Pod name is
yoionly because the workspace directory basename isyoi. - Workspace Orchestrator remains a distinct runtime identity such as
<workspace>-orchestrator. - Ticket role / task Pods should continue to use explicit role/task-derived names supplied by the launcher/orchestrator, not profile fallback names.
.yoiproject records root,.yoi/memorymemory root, and runtime workspace root are separate concepts.- Memory root behavior from
memory-root-uses-yoi-memory-markermust be preserved: explicitmemory.workspace_rootwins; otherwise nearest.yoi/memory;.yoialone is not a memory root marker. resume_by_pod_name/--profile-pod-nameare cleanup targets. Prefer collapsing startup around explicit--pod <name> --profile <selector>plus runtime workspace context. If an explicit startup-mode enum is needed, it should model restore/create policy directly rather than hide it behind a boolean namedresume_by_pod_name.- Existing Pod metadata migration/renaming and archive/fresh-start behavior are out of scope for this implementation bundle unless explicitly required by tests;
add-pod-archive-fresh-start-pathcovers archive/fresh-start UX.
Implementation latitude:
- The coder may discover exact call sites, structure names, helper placement, and test organization during implementation.
- The coder may split changes across the three Tickets if needed, but should preserve the above boundaries and avoid adding compatibility layers just to preserve profile-derived identity.
- Tests should include non-
yoiworkspace names so dogfooding does not hide hardcoded/default-name bugs.
Escalate if:
- Removing
--profile-pod-namerequires a public compatibility policy beyond internal cleanup. - Existing Pod metadata needs automatic migration or destructive modification.
- A caller genuinely cannot supply runtime workspace root or Pod identity without reintroducing profile-derived naming.
- The implementation would make
.yoialone a memory root marker again. - The implementation would weaken explicit
--podprecedence or make Profile selection influence Pod identity.
With this decision recorded, this Ticket can proceed as implementation-ready if Orchestrator can write a bounded IntentPacket from the Ticket body and this shared decision. A separate heavy preflight is not required unless one of the escalation conditions is reached.
Decision
Routing decision: implementation_ready
Reason:
- The shared preflight decision now fixes the default identity policy: default Pod identity derives from runtime workspace basename, while Profile selector/source never influences identity and explicit
--podalways wins. - This Ticket can be implemented as part of the coordinated runtime workspace / Pod identity cleanup bundle with
introduce-runtime-workspace-root-contextas the primary intent packet.
Evidence checked:
- Ticket body and thread, including the new shared boundary decision.
- Primary routing/IntentPacket recorded on
introduce-runtime-workspace-root-context. - Code map: hardcoded/default name paths in
crates/manifest/src/profile.rs, TUI/Panel companion lifecycle, client spawn helper, Pod entrypoint, and Ticket role launch paths.
Next action:
- Implement in the same coordinated branch as
introduce-runtime-workspace-root-contextandremove-profile-derived-pod-names. - Before any implementation side effects, transition this Ticket and the bundle peers from
queuedtoinprogresstogether.
Binding points for this Ticket:
- Fresh default Pod name is sanitized runtime workspace/current-directory basename.
- Use a generic fallback such as
podonly when no useful basename exists. - This repository defaults to
yoionly because the workspace basename isyoi. - Panel Companion uses the workspace basename Pod, while Orchestrator remains distinct such as
<workspace>-orchestrator. - Ticket role Pods keep explicit role/task-derived names.
- Tests must include a non-
yoiworkspace and explicit--podprecedence.
Escalate if:
- Existing Pod metadata would need automatic rename/migration.
- Workspace-root context is insufficient to compute defaults consistently.
- Any caller still requires Profile slug/source as an identity fallback.
State changed
Accepted as part of the coordinated runtime workspace / Pod identity implementation bundle. This acceptance precedes worktree creation and coder/reviewer Pod spawning.
Implementation report
Merge-ready dossier pointer for coordinated bundle.
This Ticket was implemented and reviewed as part of the runtime-workspace-context branch/worktree bundle. The full merge-ready dossier is recorded on primary Ticket introduce-runtime-workspace-root-context.
Relevant branch/worktree:
- Branch:
runtime-workspace-context - Worktree:
.worktree/runtime-workspace-context - Commits:
b6af761 runtime: separate workspace pod and profile identity15f54df runtime: use pod flag for session identity
Status:
- Reviewer re-review verdict: approve.
- No remaining reviewer blockers for this Ticket.
- Merge authority is still required; no merge, close, final approval, or cleanup has occurred.