## 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: true` because 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-names` and `introduce-runtime-workspace-root-context` so the default workspace basename policy, explicit `--pod` precedence, 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 -> queued` event. - Workspace state: `develop` has 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-workflow` for this Ticket before implementation delegation. - Preflight should record: sanitized workspace/current-directory basename rules, generic fallback behavior, explicit `--pod` precedence, 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-`yoi` workspace. - 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-context` - `remove-profile-derived-pod-names` - `use-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 ` represents the runtime workspace root. - `--pod ` represents the runtime Pod identity for both restore and fresh create. - `--profile ` 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, `.yoi` project-record marker, or memory root detection. - This repository's normal default Pod name is `yoi` only because the workspace directory basename is `yoi`. - Workspace Orchestrator remains a distinct runtime identity such as `-orchestrator`. - Ticket role / task Pods should continue to use explicit role/task-derived names supplied by the launcher/orchestrator, not profile fallback names. - `.yoi` project records root, `.yoi/memory` memory root, and runtime workspace root are separate concepts. - Memory root behavior from `memory-root-uses-yoi-memory-marker` must be preserved: explicit `memory.workspace_root` wins; otherwise nearest `.yoi/memory`; `.yoi` alone is not a memory root marker. - `resume_by_pod_name` / `--profile-pod-name` are cleanup targets. Prefer collapsing startup around explicit `--pod --profile ` 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 named `resume_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-path` covers 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-`yoi` workspace names so dogfooding does not hide hardcoded/default-name bugs. Escalate if: - Removing `--profile-pod-name` requires 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 `.yoi` alone a memory root marker again. - The implementation would weaken explicit `--pod` precedence 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 `--pod` always wins. - This Ticket can be implemented as part of the coordinated runtime workspace / Pod identity cleanup bundle with `introduce-runtime-workspace-root-context` as 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-context` and `remove-profile-derived-pod-names`. - Before any implementation side effects, transition this Ticket and the bundle peers from `queued` to `inprogress` together. Binding points for this Ticket: - Fresh default Pod name is sanitized runtime workspace/current-directory basename. - Use a generic fallback such as `pod` only when no useful basename exists. - This repository defaults to `yoi` only because the workspace basename is `yoi`. - Panel Companion uses the workspace basename Pod, while Orchestrator remains distinct such as `-orchestrator`. - Ticket role Pods keep explicit role/task-derived names. - Tests must include a non-`yoi` workspace and explicit `--pod` precedence. 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 identity` - `15f54df 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. --- ## Review: approve Final merge-completion approval after coordinated bundle merge and validation. Evidence: - Implemented as part of branch `runtime-workspace-context`. - Reviewer approved after fix-loop. - Post-merge validation passed, including focused profile/spawn/entrypoint/CLI/TUI tests, `cargo check -q`, `cargo fmt --check`, `git diff --check`, ticket doctor, and `nix build .#yoi`. - Cleanup completed for the merged runtime-workspace branch/worktree and coder/reviewer Pods. --- ## State changed Completed as part of the merged runtime workspace identity bundle; post-merge validation passed and cleanup completed. --- ## Closed Completed as part of the coordinated runtime workspace / Pod identity bundle. Summary: - Replaced product-name-specific default Pod identity with runtime workspace basename-based default naming. - Preserved explicit `--pod` precedence. - Kept workspace Orchestrator and Ticket role/task Pod names explicit and distinct from the default Companion/workspace Pod. - Added/validated non-`yoi` workspace/default naming coverage so the dogfooding repository name no longer masks hardcoded defaults. Merged branch: - `runtime-workspace-context` via merge commit `b7a533f`. Validation and cleanup: - Post-merge focused tests, `cargo check -q`, `cargo fmt --check`, `git diff --check`, ticket doctor, and `nix build .#yoi` passed. - Runtime-workspace coder/reviewer Pods, worktree, and branch were cleaned up. ---