ticket: plan yoi rename
This commit is contained in:
parent
342f194c87
commit
6e133a7229
166
docs/branding.md
Normal file
166
docs/branding.md
Normal file
|
|
@ -0,0 +1,166 @@
|
||||||
|
# Branding notes
|
||||||
|
|
||||||
|
## Rename rationale
|
||||||
|
|
||||||
|
The project must move away from the name `insomnia`. Kong already operates a well-known developer product named Insomnia, with overlapping surfaces such as an API/developer tool product, an `insomnia` package/binary, documentation, plugins, CLI tooling, and `.insomnia` project data. Even without making a legal judgment here, keeping `insomnia` would create unnecessary user confusion and distribution risk.
|
||||||
|
|
||||||
|
The rename should not be a shallow package-name change. The public product name, CLI command, data/config directory names, environment variable prefix, documentation language, and repository-facing terminology should converge on the new name.
|
||||||
|
|
||||||
|
## Product identity
|
||||||
|
|
||||||
|
This project is not just an AI chat client. It is a local agent runtime for delegating long-running development work while preserving state, context, authority boundaries, and resumability.
|
||||||
|
|
||||||
|
The product promise is:
|
||||||
|
|
||||||
|
> You can leave the keyboard, and the system remains present with your work.
|
||||||
|
|
||||||
|
That includes:
|
||||||
|
|
||||||
|
- running and restoring Pods;
|
||||||
|
- preserving session history, memory, workflows, and WorkItems;
|
||||||
|
- coordinating delegated work through scoped permissions;
|
||||||
|
- keeping human review and approval points explicit;
|
||||||
|
- making long-running or interrupted work observable and resumable.
|
||||||
|
|
||||||
|
The name should therefore avoid generic AI-agent vocabulary such as `agent`, `forge`, `sentinel`, or `autopilot`. It should express presence, custody, watchfulness, and delegated work without implying reckless full autonomy.
|
||||||
|
|
||||||
|
## Proposed name: Yoi
|
||||||
|
|
||||||
|
The leading candidate is **Yoi**, from the archaic Japanese word **夜居**.
|
||||||
|
|
||||||
|
`夜居` means staying up or being present at night, including the sense of night duty or remaining at the workplace until late. This preserves the original emotional source of `Insomnia`—AI-induced sleeplessness and the desire for something to keep watch on the user's behalf—while moving the framing from a personal condition to a product role.
|
||||||
|
|
||||||
|
`Insomnia` described what happened to the user.
|
||||||
|
|
||||||
|
`Yoi` describes what the system does instead:
|
||||||
|
|
||||||
|
> It stays with the work after the user leaves.
|
||||||
|
|
||||||
|
## Why Yoi fits
|
||||||
|
|
||||||
|
### Short and tool-shaped
|
||||||
|
|
||||||
|
`yoi` is short, easy to type, and works naturally as a command name:
|
||||||
|
|
||||||
|
```text
|
||||||
|
yoi
|
||||||
|
yoi pod
|
||||||
|
yoi memory
|
||||||
|
yoi workflow
|
||||||
|
```
|
||||||
|
|
||||||
|
It also maps cleanly to project/runtime surfaces:
|
||||||
|
|
||||||
|
```text
|
||||||
|
.yoi/
|
||||||
|
~/.yoi/
|
||||||
|
YOI_*
|
||||||
|
```
|
||||||
|
|
||||||
|
### Japanese but not overly literal
|
||||||
|
|
||||||
|
The name has the same kind of compact Japanese-derived shape as names like Hono or Shiki. It does not sound like a generic enterprise AI product, and it leaves room for the project to develop its own vocabulary.
|
||||||
|
|
||||||
|
### Presence rather than automation
|
||||||
|
|
||||||
|
The important word in `夜居` is not only night, but **居**: to be there.
|
||||||
|
|
||||||
|
That matches the system's architecture. Pods, sessions, memory, workflow state, WorkItems, and runtime metadata remain present so the user can return to them. The product is less about a single model response and more about maintaining a durable place where delegated work can continue.
|
||||||
|
|
||||||
|
### Keeps the original story without keeping the problem
|
||||||
|
|
||||||
|
The old name centered sleeplessness. The new name centers the replacement for sleeplessness: a system that remains at the worksite on the user's behalf.
|
||||||
|
|
||||||
|
A useful internal phrasing is:
|
||||||
|
|
||||||
|
> Insomnia was the problem. Yoi is the night presence that makes it unnecessary.
|
||||||
|
|
||||||
|
## Handling ambiguity
|
||||||
|
|
||||||
|
`Yoi` is intentionally short and has Japanese homophones or near associations such as `良い`, `宵`, and `酔い`. This ambiguity is acceptable if the official spelling and explanation consistently anchor the name as **Yoi (夜居)**.
|
||||||
|
|
||||||
|
The ambiguity should be handled as follows:
|
||||||
|
|
||||||
|
- Use `Yoi` for the product name in English-facing text.
|
||||||
|
- Introduce it as `Yoi (夜居)` in README and high-level docs.
|
||||||
|
- Use copy centered on presence, delegated work, and returning later.
|
||||||
|
- Do not lean into alcohol-related `酔い` wordplay.
|
||||||
|
- Do not over-explain the name in every document; establish the origin once and then use `Yoi` normally.
|
||||||
|
|
||||||
|
## Candidate tagline directions
|
||||||
|
|
||||||
|
Possible English taglines:
|
||||||
|
|
||||||
|
- `Yoi is a local AI agent runtime that stays with your work after you leave.`
|
||||||
|
- `Yoi keeps a presence at your desk while your agents work.`
|
||||||
|
- `Yoi lets you delegate long-running development work without staying at the keyboard.`
|
||||||
|
|
||||||
|
Possible Japanese descriptions:
|
||||||
|
|
||||||
|
- `Yoi(夜居)は、あなたが離れたあとも仕事場に居続けるローカル AI エージェント実行環境です。`
|
||||||
|
- `Yoi は、Pod、履歴、メモリ、ワークフローを保ち、長く続く開発作業の委譲を支えます。`
|
||||||
|
|
||||||
|
## Rename surfaces to update
|
||||||
|
|
||||||
|
If `Yoi` is adopted, the rename should cover at least:
|
||||||
|
|
||||||
|
- product name: `Insomnia` -> `Yoi`;
|
||||||
|
- CLI command: `insomnia` -> `yoi`;
|
||||||
|
- workspace directory: `.insomnia/` -> `.yoi/`;
|
||||||
|
- user data directory: `~/.insomnia/` -> `~/.yoi/`;
|
||||||
|
- environment variables: `INSOMNIA_*` -> `YOI_*`;
|
||||||
|
- Nix package/app names;
|
||||||
|
- Cargo package names where public-facing;
|
||||||
|
- prompt and resource text;
|
||||||
|
- docs, reports, AGENTS instructions, tickets, and release material;
|
||||||
|
- socket/runtime path labels and diagnostics where user-visible.
|
||||||
|
|
||||||
|
Compatibility aliases should be considered separately, but the public identity should not preserve `insomnia` longer than necessary.
|
||||||
|
|
||||||
|
## Adoption checks
|
||||||
|
|
||||||
|
The required check for this project is Nixpkgs package-name availability, because the project is expected to be distributed as a Nix package.
|
||||||
|
|
||||||
|
Checked on 2026-06-01:
|
||||||
|
|
||||||
|
- Nixpkgs: `nix search nixpkgs '^yoi$' --json` returned no package.
|
||||||
|
- Nixpkgs: `nix eval nixpkgs#yoi.meta.name --raw` reported that `nixpkgs` does not provide `yoi`.
|
||||||
|
- Nixpkgs: a direct `<nixpkgs>` attribute check returned `false` for `builtins.hasAttr "yoi" pkgs`.
|
||||||
|
- Nixpkgs: nearby existing attributes include `yo` and `yoink`, but not `yoi`.
|
||||||
|
|
||||||
|
This satisfies the current required availability check for adopting `Yoi`.
|
||||||
|
|
||||||
|
A broader package-manager pass was also performed on 2026-06-01. Results:
|
||||||
|
|
||||||
|
- crates.io: `https://crates.io/api/v1/crates/yoi` returned 404; no exact crate found by `cargo search`.
|
||||||
|
- npm: exact package `yoi` exists. `npm view yoi` reports `name: yoi`, `version: 1.9.15`, description `Easy (but powerful) NodeJS Server`, created in 2013 and modified in 2022. No `bin` field was reported. This blocks using the exact npm package name without owner coordination, but does not appear to be a CLI-name conflict.
|
||||||
|
- PyPI: `https://pypi.org/pypi/yoi/json` returned 404.
|
||||||
|
- Homebrew formula: `https://formulae.brew.sh/api/formula/yoi.json` returned 404.
|
||||||
|
- Homebrew cask: `https://formulae.brew.sh/api/cask/yoi.json` returned 404.
|
||||||
|
- Arch official packages: exact name search returned no package.
|
||||||
|
- AUR: `https://aur.archlinux.org/rpc/v5/info/yoi` returned no result.
|
||||||
|
- Alpine packages: package-name search returned no exact `yoi` package.
|
||||||
|
- Debian packages: package-name search returned no exact `yoi` package.
|
||||||
|
- Fedora packages: `https://src.fedoraproject.org/rpms/yoi` returned 404.
|
||||||
|
- Gentoo packages: exact package pages checked under likely categories returned 404.
|
||||||
|
- MacPorts: package search returned no exact `yoi` port.
|
||||||
|
- Snap: Snapcraft API reported `No snap named 'yoi' found in series '16'.`
|
||||||
|
- Flathub: direct appstream lookup did not find an app named `yoi`.
|
||||||
|
- Scoop Main bucket: `bucket/yoi.json` returned 404.
|
||||||
|
- winget-pkgs: `manifests/y/yoi` returned 404.
|
||||||
|
- Chocolatey community package page returned 404.
|
||||||
|
- Docker Hub: `library/yoi` and `yoi/yoi` returned 404.
|
||||||
|
- RubyGems: `https://rubygems.org/api/v1/gems/yoi.json` returned 404.
|
||||||
|
- NuGet: `https://api.nuget.org/v3-flatcontainer/yoi/index.json` returned 404.
|
||||||
|
- Maven Central: artifact/group search did not show an exact `yoi` package identity.
|
||||||
|
- Packagist: `https://packagist.org/packages/yoi/yoi.json` returned 404.
|
||||||
|
|
||||||
|
The main package-manager concern found is the stale npm package. Since Nixpkgs is the required distribution target and npm distribution is not currently required, this does not block adopting `Yoi`, but it should be recorded as a known name collision if npm distribution is ever planned.
|
||||||
|
|
||||||
|
Optional broader checks before a public release may still include:
|
||||||
|
|
||||||
|
- GitHub repository/name availability;
|
||||||
|
- domain availability such as `yoi.dev`, `yoi.rs`, `yoi.sh`, or `getyoi.dev`;
|
||||||
|
- trademark search results in relevant jurisdictions.
|
||||||
|
|
||||||
|
The main risk of `Yoi` is not semantic ambiguity but short-name collision. The required Nixpkgs check is clear, and the broader package-manager pass is acceptable apart from the npm package-name collision.
|
||||||
|
|
@ -0,0 +1,280 @@
|
||||||
|
# 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:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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.
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
---
|
||||||
|
id: 20260601-080614-rename-insomnia-to-yoi
|
||||||
|
slug: rename-insomnia-to-yoi
|
||||||
|
title: Rename project from Insomnia to Yoi
|
||||||
|
status: open
|
||||||
|
kind: task
|
||||||
|
priority: P1
|
||||||
|
labels: [branding, rename, release-hygiene]
|
||||||
|
created_at: 2026-06-01T08:06:14Z
|
||||||
|
updated_at: 2026-06-01T08:29:35Z
|
||||||
|
assignee: null
|
||||||
|
legacy_ticket: null
|
||||||
|
---
|
||||||
|
|
||||||
|
## Background
|
||||||
|
|
||||||
|
The project name `Insomnia` collides with Kong's established Insomnia API/developer tooling product, including public product naming, package/binary naming, CLI/tooling, plugins, documentation, and `.insomnia` project data. The project will adopt **Yoi** as the new public identity, from the archaic Japanese word **夜居**: staying present at night / night duty / remaining at the workplace until late.
|
||||||
|
|
||||||
|
Branding rationale and adoption checks are recorded in `docs/branding.md`. Nixpkgs name availability is the required distribution check and currently passes; broader package-manager checks found only an npm package-name collision, which is not a current distribution blocker.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- Rename the public product identity from Insomnia to Yoi.
|
||||||
|
- Rename user-facing CLI/package/config/runtime surfaces that currently expose `insomnia` where doing so is not purely internal implementation detail.
|
||||||
|
- Prefer a clean public identity over long-lived compatibility with `insomnia`; any compatibility alias must be explicitly justified.
|
||||||
|
- Preserve existing project behavior while renaming, without speculative redesign.
|
||||||
|
- Keep generated/personal state handling safe; do not expose secrets or private session content during broad rename audits.
|
||||||
|
- Update documentation, prompts, diagnostics, package metadata, and release-facing text consistently.
|
||||||
|
|
||||||
|
## Acceptance criteria
|
||||||
|
|
||||||
|
- The installable main binary/package identity is `yoi` rather than `insomnia`.
|
||||||
|
- Nix package/app outputs expose `yoi` and no longer center the long-term public output on `insomnia`.
|
||||||
|
- User data/config/workspace directories and environment variable prefixes are renamed or have an explicit migration/compatibility decision recorded.
|
||||||
|
- User-visible docs, prompts, diagnostics, and command help refer to Yoi where appropriate.
|
||||||
|
- Repository references to `insomnia` are either renamed, intentionally retained as historical/internal/generated context, or listed in the implementation report as deferred/intentional.
|
||||||
|
- Tests and packaging checks relevant to renamed surfaces pass.
|
||||||
308
work-items/open/20260601-080614-rename-insomnia-to-yoi/thread.md
Normal file
308
work-items/open/20260601-080614-rename-insomnia-to-yoi/thread.md
Normal file
|
|
@ -0,0 +1,308 @@
|
||||||
|
<!-- event: create author: tickets.sh at: 2026-06-01T08:06:14Z -->
|
||||||
|
|
||||||
|
## Created
|
||||||
|
|
||||||
|
Created by tickets.sh create.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: plan author: hare at: 2026-06-01T08:19:42Z -->
|
||||||
|
|
||||||
|
## 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:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: decision author: hare at: 2026-06-01T08:29:35Z -->
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
Loading…
Reference in New Issue
Block a user