yoi/work-items/closed/20260531-110818-remove-resource-dir/item.md
2026-05-31 20:58:30 +09:00

3.1 KiB

id: 20260531-110818-remove-resource-dir slug: remove-resource-dir title: Manifest: remove filesystem resource_dir dependency status: closed kind: task priority: P2 labels: [manifest, profile, nix, env, cleanup] created_at: 2026-05-31T11:08:18Z updated_at: 2026-05-31T11:58:28Z assignee: null legacy_ticket: null

Background

manifest::paths::resource_dir() and INSOMNIA_RESOURCE_DIR currently keep a filesystem resource lookup boundary for bundled assets. That boundary appears increasingly historical:

  • prompts are already embedded through include_dir! in the Pod prompt loader;
  • provider/model builtin catalogs are already embedded in the provider catalog path;
  • the remaining important uses are builtin Lua profile discovery and a manifest-profile model-context lookup that still reads resources/models/builtin.toml through resource_dir().

The desired direction is to remove the filesystem resource_dir dependency rather than preserve INSOMNIA_RESOURCE_DIR as a public/user-facing configuration surface.

Requirements

  • Investigate and then remove the need for manifest::paths::resource_dir() if feasible.
  • Remove INSOMNIA_RESOURCE_DIR as an active supported environment variable once no production code needs it.
  • Preserve current builtin behavior:
    • builtin/default profiles remain available through normal profile selection;
    • builtin provider/model metadata remains available;
    • prompts and profile assets still resolve correctly in dev and installed/Nix builds.
  • Prefer embedding builtin assets in Rust over runtime filesystem discovery where this does not create a worse design.
  • If builtin Lua profiles need synthetic source labels or special handling for diagnostics/local requires, design that explicitly rather than keeping resource_dir by inertia.
  • Update Nix packaging only after confirming resources no longer need to be installed at share/insomnia/resources for runtime behavior.
  • Update docs/environment.md to remove resource_dir / INSOMNIA_RESOURCE_DIR from supported path keys if implementation removes it.

Non-goals

  • Changing user/project config_dir override semantics.
  • Removing user profile files or project profile support.
  • Changing profile selector semantics except where needed to replace builtin profile filesystem discovery.
  • Reworking credential env handling.
  • Reintroducing ambient manifest discovery.

Acceptance criteria

  • No production code depends on manifest::paths::resource_dir() for bundled asset lookup, or any remaining dependency is explicitly justified and documented in the ticket thread.
  • INSOMNIA_RESOURCE_DIR is removed from active code/docs if resource_dir() is removed.
  • Builtin default profile/profile registry tests pass without filesystem resource discovery.
  • Builtin model/provider lookup behavior remains available and tested.
  • Nix build/install checks still pass; installed package does not need runtime filesystem resources unless explicitly justified.
  • cargo fmt --check, focused manifest/provider/pod/tui tests as relevant, cargo check for affected crates, ./tickets.sh doctor, and git diff --check pass.