yoi/.yoi/tickets/00001KT13G57G/thread.md

16 KiB

Created

Created by tickets.sh create.


Plan

Yoi rename survey

Generated by read-only Pod surveyor-yoi-rename-20260601 on 2026-06-01.

Executive stance

Move implementation/public identity to Yoi / yoi / .yoi / YOI_* everywhere that is product, runtime, config, CLI, package, prompt, profile, diagnostic, test, or public documentation surface.

Do not bulk-rename historical records, generated personal memory, old work-item threads, or rationale docs except where they currently function as live project instructions or public docs.

A small bounded migration path is appropriate for existing dogfood data directories, but old public aliases should not be preserved long-term unless explicitly reapproved.

Major rename surfaces

Cargo package, crate, binary, lockfile

Files:

  • Cargo.toml
  • crates/insomnia/Cargo.toml
  • crates/insomnia/src/main.rs
  • Cargo.lock
  • crates/pod/src/entrypoint.rs
  • tests that expect insomnia / insomnia pod

Recommendations:

  • crates/insomnia/ -> crates/yoi/
  • package insomnia -> yoi
  • workspace dependency key insomnia -> yoi
  • installed binary insomnia -> yoi
  • regenerate Cargo.lock
  • update help/tests from Usage: insomnia ... to Usage: yoi ...
  • do not ship an insomnia binary unless a compatibility alias is explicitly approved

Nix package/app/devshell

Files:

  • package.nix
  • flake.nix
  • devshell.nix validation surface

Recommendations:

  • pname = "insomnia" -> pname = "yoi"
  • flake description should say Yoi
  • flake app should point at ${package}/bin/yoi
  • expose yoi package/app outputs
  • avoid long-term insomnia public output aliases

CLI/runtime command surfaces

Files:

  • crates/insomnia/src/main.rs
  • crates/pod/src/entrypoint.rs
  • crates/client/src/runtime_command.rs
  • crates/client/src/spawn.rs
  • docs/environment.md

Recommendations:

  • insomnia -> yoi
  • insomnia pod -> yoi pod
  • INSOMNIA_POD_RUNTIME_COMMAND -> YOI_POD_RUNTIME_COMMAND
  • INSOMNIA-READY -> YOI-READY
  • runtime binary fallback insomnia -> yoi
  • update CLI help tests and command examples

Mixed-version parent/child spawning need not be supported unless explicitly required.

Data/config/runtime directories

Central files/surfaces:

  • crates/manifest/src/paths.rs
  • crates/pod/src/entrypoint.rs
  • crates/session-store/src/fs_store.rs
  • crates/pod-registry/src/table.rs
  • crates/tui/src/single_pod.rs
  • crates/memory/src/workspace.rs
  • .insomnia/manifest.toml

Recommendations:

  • INSOMNIA_HOME -> YOI_HOME
  • INSOMNIA_CONFIG_DIR -> YOI_CONFIG_DIR
  • INSOMNIA_DATA_DIR -> YOI_DATA_DIR
  • INSOMNIA_RUNTIME_DIR -> YOI_RUNTIME_DIR
  • ~/.insomnia -> ~/.yoi
  • ~/.config/insomnia -> ~/.config/yoi
  • $XDG_RUNTIME_DIR/insomnia -> $XDG_RUNTIME_DIR/yoi
  • /tmp/insomnia-* -> /tmp/yoi-*
  • .insomnia/ -> .yoi/
  • .insomnia/{manifest.toml,workflow,knowledge,memory,prompts} -> .yoi/...

Migration recommendation:

  • Provide an explicit migration command/documented manual move, or a one-time startup migration if new paths do not exist and old paths do.
  • Do not keep old and new roots as equal long-term search paths.
  • Do not bulk-read or rewrite ignored personal .insomnia/memory contents during repository cleanup.

Environment variables

Active variables to rename:

  • INSOMNIA_HOME -> YOI_HOME
  • INSOMNIA_CONFIG_DIR -> YOI_CONFIG_DIR
  • INSOMNIA_DATA_DIR -> YOI_DATA_DIR
  • INSOMNIA_RUNTIME_DIR -> YOI_RUNTIME_DIR
  • INSOMNIA_POD_RUNTIME_COMMAND -> YOI_POD_RUNTIME_COMMAND

Historical/obsolete variables in old docs/work-items can remain if the file is historical.

Prompt/profile namespace

Files:

  • resources/prompts/system/default.md
  • resources/prompts/system/normal.md
  • resources/prompts/system/pod-orchestration.md
  • resources/prompts/internal/*.md
  • resources/profiles/default.lua
  • crates/manifest/src/profile.rs
  • crates/pod/src/prompt/loader.rs

Recommendations:

  • insomnia system -> Yoi system or yoi system
  • $insomnia/... -> $yoi/...
  • require("insomnia") -> require("yoi")
  • require("insomnia.scope") -> require("yoi.scope")
  • insomnia.profile -> yoi.profile
  • insomnia.lua-profile.v1 -> yoi.lua-profile.v1
  • .insomnia/prompts -> .yoi/prompts

Compatibility aliases should be avoided for public release unless separately approved.

Active project instructions and docs

Rename active/live documentation and instructions:

  • AGENTS.md
  • README.md
  • docs/environment.md
  • docs/manifest-profiles.md
  • docs/pod-factory.md
  • active docs/plan/*.md and docs/ref/*.md as appropriate
  • active workflow instructions under .insomnia/workflow/*.md after path migration

Do not bulk-rename historical records:

  • closed work items
  • historical reports in docs/report/
  • docs/branding.md old-name rationale
  • rename ticket title/content where it explicitly describes the transition

Tests, snapshots, fixtures

Likely test surfaces:

  • crates/pod/src/entrypoint.rs
  • crates/client/src/runtime_command.rs
  • crates/client/src/spawn.rs
  • crates/manifest/src/paths.rs
  • crates/manifest/src/profile.rs
  • crates/memory/src/workspace.rs
  • crates/tools/src/web.rs
  • crates/pod/tests/*.rs

Recommendations:

  • expected CLI help: insomnia -> yoi
  • env tests: INSOMNIA_* -> YOI_*
  • path tests: .insomnia -> .yoi
  • Lua profile tests: insomnia module -> yoi
  • generic test sample strings should be renamed unless intentionally testing migration

User-visible diagnostics/log messages

Relevant surfaces:

  • crates/pod/src/entrypoint.rs
  • crates/client/src/runtime_command.rs
  • crates/pod-registry/src/table.rs
  • crates/manifest/src/profile.rs
  • crates/pod/src/prompt/loader.rs
  • crates/insomnia/src/memory_lint.rs
  • TUI status/action messages that show paths or commands

Recommendations:

  • diagnostics should use YOI_*, $yoi, require("yoi"), yoi pod, and .yoi paths
  • old names should appear only in explicit migration diagnostics

Repository/path names outside code

Surfaces:

  • local checkout path /home/hare/Projects/insomnia
  • repository name
  • worktree names
  • current runtime output paths under /run/user/1000/insomnia/...

Recommendations:

  • Public repository name should eventually become yoi.
  • Local checkout/runtime output paths are not first-pass code-edit targets.
  • Current session/tool output paths are generated/historical.

Intentionally retained old-name references

Do not bulk-rename by default:

  • docs/branding.md rationale explaining the collision and rename
  • this rename work item where it states old-to-new transition
  • closed work items under work-items/closed/
  • historical docs/report/ files
  • generated/personal .insomnia/memory content
  • external session logs under old runtime paths
  • migration tests/docs that explicitly refer to legacy insomnia names

Proposed implementation order

  1. Decide canonical spellings:
    • Product: Yoi
    • command/package/crate: yoi
    • dotdir: .yoi
    • env prefix: YOI_
    • builtin prompt prefix: $yoi
    • Lua module namespace: yoi
  2. Rename Cargo/product package:
    • move crates/insomnia -> crates/yoi
    • update workspace manifest, package names, dependency keys, tests
    • confirm cargo metadata
  3. Rename Nix packaging:
    • update package.nix, flake.nix, app program, install check
  4. Rename CLI/runtime command surfaces:
    • command/help/examples/tests
    • runtime override env var
    • ready marker
    • binary fallback
  5. Rename path/env authority:
    • centralize in crates/manifest/src/paths.rs
    • decide legacy path migration behavior
  6. Rename workspace conventions:
    • .insomnia -> .yoi
    • move tracked workflow/knowledge/manifest assets
    • avoid rewriting generated personal memory
  7. Rename profile/prompt namespace:
    • $yoi
    • require("yoi")
    • builtin profile/schema/source strings
  8. Update active docs and project instructions.
  9. Update tests/fixtures and add migration tests if migration is implemented.
  10. Final grep/audit pass and classify remaining hits.

Validation checklist

Minimum validation after implementation:

  • cargo check --workspace
  • cargo test --workspace or standard targeted test set
  • cargo metadata --format-version 1
  • cargo run -p yoi -- --help shows yoi
  • cargo run -p yoi -- pod --help shows Usage: yoi pod
  • spawn path test verifies parent expects YOI-READY
  • env/path tests verify YOI_HOME, YOI_CONFIG_DIR, YOI_DATA_DIR, YOI_RUNTIME_DIR, YOI_POD_RUNTIME_COMMAND
  • runtime path tests verify ~/.yoi, ~/.config/yoi, $XDG_RUNTIME_DIR/yoi, .yoi/memory, .yoi/workflow, .yoi/knowledge
  • Lua profile tests verify require("yoi") and no required require("insomnia")
  • prompt loader tests verify $yoi/... and .yoi/prompts
  • Nix validation verifies $out/bin/yoi and flake app launch
  • final residual search:
git grep -n -I -E 'insomnia|Insomnia|INSOMNIA|\.insomnia'

Every remaining hit must be branding rationale, migration code/test/doc, closed historical record, generated/personal ignored state, or an explicitly preserved external reference.


Decision

Decision: adopt Yoi with no compatibility aliases.

The rename should be implemented as a clean public identity change: Yoi / yoi / .yoi / YOI_*. Do not ship old insomnia binaries, command aliases, prompt/profile aliases, or environment-variable aliases.

For existing dogfood/user state, implement only a bounded one-shot migration path from old local paths to the new Yoi paths. Old and new roots must not remain equal long-term search roots.


Implementation report

Implementation report: Yoi rename

Implemented a clean public rename from Insomnia to Yoi.

Scope completed

  • Renamed the main Cargo package/crate/binary from insomnia to yoi:
    • crates/insomnia/ -> crates/yoi/
    • workspace package/dependency metadata updated
    • CLI help and tests now use yoi
  • Updated Nix packaging:
    • package pname is yoi
    • flake package/app output points at bin/yoi
    • cargoHash refreshed after the lock/vendor input changed
  • Updated CLI/runtime command surfaces:
    • insomnia pod -> yoi pod
    • INSOMNIA_POD_RUNTIME_COMMAND -> YOI_POD_RUNTIME_COMMAND
    • INSOMNIA-READY -> YOI-READY
    • runtime fallback command now targets yoi
  • Updated path/env authority:
    • .insomnia -> .yoi
    • ~/.insomnia -> ~/.yoi
    • config/runtime/data env prefixes use YOI_*
  • Implemented a bounded one-shot migration for persistent local roots:
    • $HOME/.insomnia -> $HOME/.yoi
    • $XDG_CONFIG_HOME/insomnia or $HOME/.config/insomnia -> Yoi equivalents
    • only when the corresponding new YOI_* override is not set and the new target does not already exist
    • no old env aliases, command aliases, prompt/profile aliases, or long-term old root search paths are supported
    • runtime directories are not migrated because they are transient and may contain live sockets
  • Updated prompt/profile namespace:
    • $insomnia -> $yoi
    • require("insomnia") -> require("yoi")
    • Lua profile API/version strings updated to Yoi naming
  • Updated active docs, prompt resources, tests, diagnostics, examples, and help strings.
  • Kept old-name references only where they are intentional migration/rationale references, such as docs/branding.md, docs/environment.md, path migration code/tests, and historical work items/reports.

Residual old-name references in active surfaces

The active non-historical residual grep is intentional:

  • crates/manifest/src/paths.rs: one-shot migration source paths and tests
  • docs/environment.md: migration documentation and explicit no-alias policy
  • package.nix: excludes legacy .insomnia local state from package sources

Historical/rationale records under docs/report/, docs/branding.md, and work-item history were not bulk-renamed.

Validation

Passed:

  • cargo fmt --check
  • cargo check --workspace
  • cargo test -p manifest
  • cargo test -p yoi
  • cargo test -p client runtime_command
  • cargo test -p pod entrypoint
  • cargo test -p pod prompt::loader
  • cargo test -p manifest profile
  • target/debug/yoi --help
  • target/debug/yoi pod --help
  • nix eval .#packages.x86_64-linux.default.pname --raw
  • nix eval .#apps.x86_64-linux.default.program --raw
  • nix build .#yoi --no-link
  • git diff --check

Observed warnings are pre-existing unused-code warnings in llm-worker and tui.


Decision

Decision correction: keep the Yoi rename clean.

Do not implement old-name command aliases, old environment variable aliases, prompt/profile aliases, old search roots, or old path handling in the codebase. Existing local dogfood state is handled manually outside the implementation.


Decision

Naming decision: the formal product name is Yoi, or Yoi agent where a fuller phrase is useful. Do not use all-caps YOI as the product name; reserve uppercase YOI_* / YOI-READY for environment variables and protocol literals only.


Implementation report

Implementation report: Yoi rename

Implemented a clean public rename from Insomnia to Yoi.

Scope completed

  • Renamed the main Cargo package/crate/binary from insomnia to yoi:
    • crates/insomnia/ -> crates/yoi/
    • workspace package/dependency metadata updated
    • CLI help and tests now use yoi
  • Updated Nix packaging:
    • package pname is yoi
    • flake package/app output points at bin/yoi
    • cargoHash refreshed after the lock/vendor input changed
  • Updated CLI/runtime command surfaces:
    • insomnia pod -> yoi pod
    • INSOMNIA_POD_RUNTIME_COMMAND -> YOI_POD_RUNTIME_COMMAND
    • INSOMNIA-READY -> YOI-READY
    • runtime fallback command now targets yoi
  • Updated path/env authority:
    • .insomnia -> .yoi
    • ~/.insomnia -> ~/.yoi
    • config/runtime/data env prefixes use YOI_*
  • Updated prompt/profile namespace:
    • $insomnia -> $yoi
    • require("insomnia") -> require("yoi")
    • Lua profile API/version strings updated to Yoi naming
  • Updated active docs, prompt resources, tests, diagnostics, examples, and help strings.
  • Kept old-name references only where they are rationale or historical records, such as docs/branding.md, historical reports, and work-item history.

Compatibility decision

No old command aliases, old environment-variable aliases, old prompt/profile aliases, or old search roots are implemented. Yoi paths are the active paths.

Residual old-name references in active surfaces

The active non-historical residual grep should not include old product/runtime identifiers. Remaining old-name references are expected only in rationale/historical records.

Validation

Passed before the correction to remove compatibility remnants:

  • cargo fmt --check
  • cargo check --workspace
  • cargo test -p manifest
  • cargo test -p yoi
  • cargo test -p client runtime_command
  • cargo test -p pod entrypoint
  • cargo test -p pod prompt::loader
  • cargo test -p manifest profile
  • target/debug/yoi --help
  • target/debug/yoi pod --help
  • nix eval .#packages.x86_64-linux.default.pname --raw
  • nix eval .#apps.x86_64-linux.default.program --raw
  • nix build .#yoi --no-link
  • git diff --check

Additional validation after removing compatibility remnants:

  • cargo fmt --check
  • cargo test -p manifest paths
  • cargo test -p pod spawn_profile_selector_accepts_default_inherit_and_registry

Run the final full validation set again before closing this work item.


Closed

Completed the clean Yoi rename implementation.

The public identity is now Yoi / Yoi agent for prose, yoi for package/CLI names, .yoi for local project/data paths, and YOI_* / YOI-READY only for environment variables and protocol literals.

No old insomnia command aliases, env aliases, prompt/profile aliases, old search roots, or old-path handling are implemented. Existing dogfood state was moved manually outside the codebase.

Validation recorded in artifacts/implementation-report.md; final focused checks after correction passed:

  • cargo fmt --check
  • cargo test -p manifest paths
  • cargo test -p pod spawn_profile_selector_accepts_default_inherit_and_registry
  • git diff --check