ticket: use base32 project record ids
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
---
|
||||
title: "Use workspace basename for default Pod name"
|
||||
state: "closed"
|
||||
created_at: "2026-06-07T23:55:05Z"
|
||||
updated_at: "2026-06-08T02:00:18Z"
|
||||
queued_by: "workspace-panel"
|
||||
queued_at: "2026-06-08T00:33:01Z"
|
||||
---
|
||||
|
||||
## Background
|
||||
|
||||
Dogfooding happens in a repository whose directory name is `yoi`, which masked hardcoded/default Pod naming problems. Some runtime paths still use `DEFAULT_POD_NAME = "yoi"` or otherwise derive a default identity that is product-name-specific rather than workspace-specific.
|
||||
|
||||
At the same time, other paths already default Pod names from the current workspace directory basename. The intended behavior is to unify on workspace-based runtime naming:
|
||||
|
||||
- normal workspace Companion/default Pod name is the workspace directory basename;
|
||||
- this repository's name happens to be `yoi`, but that should be an outcome of basename derivation, not a hardcoded default;
|
||||
- Orchestrator and role/task Pods can derive distinct names from the workspace/task/role, but should be explicit runtime names;
|
||||
- Profile selection must not determine Pod identity.
|
||||
|
||||
## Goal
|
||||
|
||||
Unify default Pod naming around the workspace/current-directory basename and remove product-name-specific hardcoded defaults such as `"yoi"` from runtime identity selection.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Audit Pod naming paths and identify every use of hardcoded `"yoi"` / `DEFAULT_POD_NAME` as runtime identity.
|
||||
- Replace default fresh Pod naming with sanitized workspace/current-directory basename where appropriate.
|
||||
- Keep a generic fallback such as `"pod"` only when no useful workspace basename is available.
|
||||
- Ensure top-level fresh startup, TUI spawn form defaults, Panel Companion lifecycle, and CLI/runtime helper paths use consistent naming policy.
|
||||
- Preserve explicit `--pod <name>` behavior: explicit names always win.
|
||||
- Keep workspace Orchestrator distinct from Companion/default Pod, e.g. `<workspace>-orchestrator`.
|
||||
- Ensure Ticket role Pods continue to use explicit role/task-derived names and do not fall back to the generic workspace Companion name unless intended.
|
||||
- Add tests using a non-`yoi` workspace directory to prove the default Pod name is the directory basename.
|
||||
- Coordinate with `remove-profile-derived-pod-names`: Profile slug/source must not influence the default Pod name.
|
||||
- Update docs/help text if they imply the default Pod name is `yoi`.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- Do not rename historical existing Pod metadata automatically.
|
||||
- Do not change explicit Pod names already stored in existing metadata.
|
||||
- Do not implement archive/fresh-start behavior here; that is covered by `add-pod-archive-fresh-start-path`.
|
||||
- Do not redesign product/repository naming beyond removing hardcoded runtime identity defaults.
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- In a workspace directory named `example-project`, fresh default startup creates/uses Pod name `example-project` unless an explicit name is provided.
|
||||
- In this repository, the default remains `yoi` only because the directory basename is `yoi`.
|
||||
- No runtime fresh-start path relies on `DEFAULT_POD_NAME = "yoi"` as the normal identity default.
|
||||
- Panel Companion missing spawn requests and verifies the workspace basename Pod name.
|
||||
- Orchestrator remains `<workspace>-orchestrator` or equivalent distinct runtime name.
|
||||
- Tests cover non-`yoi` workspace naming and explicit `--pod` precedence.
|
||||
- Relevant `cargo test` suites, `cargo fmt --check`, `git diff --check`, and `target/debug/yoi ticket doctor` pass.
|
||||
@@ -0,0 +1,14 @@
|
||||
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.
|
||||
@@ -0,0 +1,216 @@
|
||||
<!-- event: create author: LocalTicketBackend at: 2026-06-07T23:55:05Z -->
|
||||
|
||||
## Created
|
||||
|
||||
Created by LocalTicketBackend create.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: intake_summary author: intake at: 2026-06-08T00:14:37Z -->
|
||||
|
||||
## 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.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: intake at: 2026-06-08T00:14:37Z from: intake to: ready reason: intake_ready field: workflow_state -->
|
||||
|
||||
## 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.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: workspace-panel at: 2026-06-08T00:33:01Z from: ready to: queued reason: queued field: workflow_state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Ticket queued for Orchestrator routing.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: decision author: orchestrator at: 2026-06-08T00:33:29Z -->
|
||||
|
||||
## 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.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: decision author: hare at: 2026-06-08T00:46:34Z -->
|
||||
|
||||
## 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 <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, `.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 `<workspace>-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 <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 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.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: decision author: orchestrator at: 2026-06-08T00:52:41Z -->
|
||||
|
||||
## 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 `<workspace>-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.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: orchestrator at: 2026-06-08T00:57:20Z from: queued to: inprogress reason: orchestrator_acceptance field: workflow_state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Accepted as part of the coordinated runtime workspace / Pod identity implementation bundle. This acceptance precedes worktree creation and coder/reviewer Pod spawning.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: implementation_report author: orchestrator at: 2026-06-08T01:53:54Z -->
|
||||
|
||||
## 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.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: review author: orchestrator at: 2026-06-08T01:59:52Z status: approve -->
|
||||
|
||||
## 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.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: orchestrator at: 2026-06-08T01:59:59Z from: inprogress to: done reason: merged_and_validated field: workflow_state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Completed as part of the merged runtime workspace identity bundle; post-merge validation passed and cleanup completed.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: close author: hare at: 2026-06-08T02:00:18Z status: closed -->
|
||||
|
||||
## 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.
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user