Skip to content

Test Matrix

This matrix tracks the 107 declared product flows and the 78 user-visible actions in internal/actions/catalog.go. It separates cheap model/render checks from real-terminal journeys so TUI: yes does not imply an expensive binary test for every action.

This is a contributor release checklist, not an end-user guide. For operational command risk, use Command Matrix.

Status meanings:

  • yes: representative happy path and important routing/error behavior exist.
  • partial: some coverage exists, but a realistic use-case or error branch is missing.
  • gap: no meaningful coverage at this layer yet.
  • n/a: this layer intentionally does not expose the action.

Use this as a release checklist. App/shared tests own durable behavior; CLI integration covers realistic command flows and permutations; real-terminal TUI tests cover only distinct interaction contracts.

No upstream artifact declares P0-P3 priorities, so every flow remains UNKNOWN rather than assigning invented priorities.

Layer policy

Layer Owns Runtime lane
Focused unit/model/contract Pure branches, parsers, reducers, safety boundaries, provider command contracts, and failure-state diagnostics Fast; normal PR gate
CLI integration Real config, DB, filesystem, Git, command routing, flags, dry runs, migrations, and feature permutations Normal PR gate
Real-terminal TUI Startup, navigation, current-screen rendering, modal input, confirmation/cancel, async progress/error recovery, and durable state after UI actions Eight hermetic journey families; normal PR gate
Container integration Real package managers, privilege behavior, and platform service integration Release/scheduled lane
Static/race/timing Test isolation, cache behavior, race safety, CI wiring, and runtime regressions Normal PR gate; do not repeat the unit suite in containers

Program-flow coverage

covered means the selected layer already has representative evidence. partial names the remaining distinct behavior. n/a means another layer is both cheaper and sufficient.

Flow ID Criticality Surfaces Parity Requirements Gaps Evidence
agents.add high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsAddDelegatesPackageAndSkillsToAPM; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsAddDelegatesPackageAndSkillsToAPM; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsAddProduceEquivalentAPMState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsAddProduceEquivalentAPMState
agents.adopt medium CLI cli_blackbox, unit cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsAdoptPreviewsWithoutWriting; unit: github.com/lkshrk/omni/internal/app.TestAgentsAdoptBareHostWouldWriteTheTemplate; unit: github.com/lkshrk/omni/internal/app.TestAgentsAdoptReportsMergeConflicts; unit: github.com/lkshrk/omni/internal/app.TestAgentsAdoptReportsUnreachableClientAsIncompleteCoverage
agents.adopt_native medium TUI tui_blackbox, unit tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIAgentsNativeAdoptDeclaresTheArtifactInTheTemplate; unit: github.com/lkshrk/omni/internal/app.TestAgentsNativeAdoptRefusesIgnoredAndUnadoptableRows
agents.audit medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.audit; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.audit
agents.deps.info medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.deps.info; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.deps.info
agents.deps.list medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.deps.list; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.deps.list
agents.deps.why medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.deps.why; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.deps.why
agents.drift medium CLI cli_blackbox, unit cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsDriftReportsNativeItemsWithoutWriting; unit: github.com/lkshrk/omni/internal/app.TestAgentsDriftKeepsOtherHostIgnoreEntries; unit: github.com/lkshrk/omni/internal/app.TestAgentsDriftListsReplacedAndOmitsRetained; unit: github.com/lkshrk/omni/internal/app.TestDoctorAgentsDriftWarnsOnUnownedItems
agents.ignore medium CLI+TUI state cli_blackbox, parity, tui_blackbox, unit cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsIgnoreSilencesDriftAndUnignoreRestoresIt; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsIgnoreProduceEquivalentConfig; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIAgentsNativeSectionIgnoresWithoutTouchingTheTemplate; unit: github.com/lkshrk/omni/internal/app.TestAgentIgnoreRecordsAnEntry; unit: github.com/lkshrk/omni/internal/app.TestAgentIgnoreUpdatesReasonInsteadOfDuplicating; unit: github.com/lkshrk/omni/internal/app.TestAgentUnignoreFailsWhenNothingWasProtected
agents.marketplace.add high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.marketplace.add; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.marketplace.add
agents.marketplace.remove high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.marketplace.remove; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.marketplace.remove
agents.marketplace.update high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.marketplace.update; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.marketplace.update
agents.marketplaces.browse medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.marketplaces.browse; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.marketplaces.browse
agents.marketplaces.list medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.marketplaces.list; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.marketplaces.list
agents.marketplaces.validate medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.marketplaces.validate; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.marketplaces.validate
agents.migrate high CLI cli_blackbox, integration, unit cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsMigratePreviewDoesNotWriteState; cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsMigrateWritePublishesTemplateAndWrapper; integration: github.com/lkshrk/omni/internal/app.TestAgentsMigrationRealAPMLifecycle; unit: github.com/lkshrk/omni/internal/app.TestAgentsMigrateWriteCreatesOnlyMarkedTemplate; unit: github.com/lkshrk/omni/internal/app.TestAgentsMigrateWriteRefusesUnmarkedTemplate; unit: github.com/lkshrk/omni/internal/app.TestAgentsMigrateWriteRejectsTemplateSymlink
agents.prune high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.prune; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.prune
agents.refresh medium CLI+TUI query cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRefreshDelegatesOutdatedQuery; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRefreshDelegatesOutdatedQuery; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsRefreshProduceEquivalentAPMState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsRefreshProduceEquivalentAPMState
agents.remove high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemoveDelegatesEveryPackageToAPM; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemoveDelegatesEveryPackageToAPM; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsRemoveProduceEquivalentAPMState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsRemoveProduceEquivalentAPMState
agents.remove_native high TUI tui_blackbox, unit tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIAgentsNativeRemoveNeedsASecondPress; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIAgentsNativeRemoveUninstallsThroughTheClient; unit: github.com/lkshrk/omni/internal/app.TestAgentsNativeRemoveRefusesAnIgnoredRow; unit: github.com/lkshrk/omni/internal/app.TestNativeRemoveCommandCoversEveryKind; unit: github.com/lkshrk/omni/internal/app.TestNativeRemoveCommandRejectsUnsafeIdentities
agents.search medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.search; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.search
agents.sync high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox, unit cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsSyncProduceEquivalentAPMState; integration: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsSyncProduceEquivalentAPMState; integration: github.com/lkshrk/omni/internal/app.TestAgentsManifestlessRealAPMLifecycle; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsSyncProduceEquivalentAPMState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsSyncProduceEquivalentAPMState; unit: github.com/lkshrk/omni/internal/app.TestAgentsSyncAllBlocksOwnedExactDuplicateBeforeMutation; unit: github.com/lkshrk/omni/internal/app.TestAgentsSyncAllRejectsInvalidUnmarkedTemplateBeforeMutation; unit: github.com/lkshrk/omni/internal/app.TestAgentsSyncAllRunsOneGlobalAPMInstall
agents.targets medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.targets; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsRemainingCommandsDelegateToAPM/agents.targets
agents.update high TUI integration, tui_blackbox integration: github.com/lkshrk/omni/integration_tests.TestTUIAgentsUpdateInvokesSelectedPackage; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIAgentsUpdateInvokesSelectedPackage
agents.update_all high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsUpdateAllDelegatesGlobalConfirmationToAPM; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryAgentsUpdateAllDelegatesGlobalConfirmationToAPM; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsUpdateAllProduceEquivalentAPMState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIAgentsUpdateAllProduceEquivalentAPMState
doctor medium CLI+TUI query cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDoctorReportsPinnedAPM; integration: github.com/lkshrk/omni/integration_tests.TestCLI/doctor; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIReadOnlyQueriesProduceEquivalentSemanticObservations; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIReadOnlyQueriesProduceEquivalentSemanticObservations
doctor.fix high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDoctorDryRunPreservesConfig; cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDoctorFixRemovesOnlyDuplicateDefinition; integration: github.com/lkshrk/omni/integration_tests.TestCLI/doctor-fix; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDoctorFixProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDoctorFixProduceEquivalentSemanticState
dots.add high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsEntryLifecyclePersistsFilesGroupsAndHistory; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-add-no-repo; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-add-success; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsAddProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsAddProduceEquivalentSemanticState
dots.commit high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsCommitPersistsGitCommitAndHistory; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-commit; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsGitCommitProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsGitCommitProduceEquivalentSemanticState
dots.delete high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsEntryLifecyclePersistsFilesGroupsAndHistory; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-remove-purge; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-remove-success; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsLifecycleDeleteProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsLifecycleDeleteProduceEquivalentSemanticState
dots.disable high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsDisableEnableRoundTripPreservesLocalContent; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-enable-disable; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsLifecycleDisableProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsLifecycleDisableProduceEquivalentSemanticState
dots.edit_groups high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsEntryLifecyclePersistsFilesGroupsAndHistory; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-groups; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsEditGroupsProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsEditGroupsProduceEquivalentSemanticState
dots.enable high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsDisableEnableRoundTripPreservesLocalContent; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-enable-disable; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsLifecycleEnableProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsLifecycleEnableProduceEquivalentSemanticState
dots.history medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsCommitPersistsGitCommitAndHistory; cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsEntryLifecyclePersistsFilesGroupsAndHistory; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-history
dots.ignore high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsEntryLifecyclePersistsFilesGroupsAndHistory; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-ignore-eject-synced; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-ignore-existing; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsLifecycleIgnoreProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsLifecycleIgnoreProduceEquivalentSemanticState
dots.list high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsEntryLifecyclePersistsFilesGroupsAndHistory; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-list-entries
dots.pull high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsPullPushSynchronizesLocalBareRemote; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-pull-push; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsPullPaletteProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsPullPaletteProduceEquivalentSemanticState
dots.push high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsPullPushSynchronizesLocalBareRemote; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-pull-push; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsPushPaletteProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsPushPaletteProduceEquivalentSemanticState
dots.refresh medium CLI+TUI query cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsServiceCommands/dots.refresh; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsServiceCommands/dots.refresh; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsRefreshPreserveEquivalentBrokenLinkState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsRefreshPreserveEquivalentBrokenLinkState
dots.reminder high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsServiceCommands/dots.reminder; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-reminder-service; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsReminderProduceEquivalentServiceState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsReminderProduceEquivalentServiceState
dots.reminder.check medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsServiceCommands/dots.reminder.check; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-reminder-service
dots.reminder.run medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsServiceCommands/dots.reminder.run; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-reminder-service
dots.reminder.status medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsServiceCommands/dots.reminder.status; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-reminder-service
dots.resolve_all_use_local high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsResolveAllUseLocalAdoptsEveryConflict; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsResolveAllUseLocalAdoptsEveryConflict; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsResolveAllUseLocalProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsResolveAllUseLocalProduceEquivalentSemanticState
dots.resolve_all_use_repo high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsResolveAllUseRepoRepairsEveryConflict; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsResolveAllUseRepoRepairsEveryConflict; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsResolveAllUseRepoProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsResolveAllUseRepoProduceEquivalentSemanticState
dots.resolve_use_local high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsUseLocalProduceEquivalentSemanticState; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-resolve-use-local; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsUseLocalProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsUseLocalProduceEquivalentSemanticState
dots.resolve_use_repo high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIProduceEquivalentSemanticState/dots.use_repo_produces_the_same_managed_symlink_and_backup; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-resolve-use-repo; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIProduceEquivalentSemanticState/dots.use_repo_produces_the_same_managed_symlink_and_backup; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIProduceEquivalentSemanticState/dots.use_repo_produces_the_same_managed_symlink_and_backup; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIDotConflictCancelThenUseRepo
dots.services.status medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsServiceCommands/dots.services.status; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-watch-service
dots.status high CLI+TUI query cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsStatusReportsManagedFileDrift; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-status-entries; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIReadOnlyQueriesProduceEquivalentSemanticObservations; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIReadOnlyQueriesProduceEquivalentSemanticObservations
dots.sync high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsSyncResolvesConflictInsideSandbox; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-sync-creates-links; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-sync-repair-stow-migration; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsSyncProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIDashboardReconcileFixesDotIgnorePatterns; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUILaunchSyncAdoptsAModifiedDotEntry; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUISyncsDiscoveredDotCandidate
dots.variant high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsVariantLifecyclePersistsAndListsHostPackage; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-variant; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsVariantCreateProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsVariantCreateProduceEquivalentSemanticState
dots.variant.list medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsVariantLifecyclePersistsAndListsHostPackage; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-variant
dots.watch high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsServiceCommands/dots.watch; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-watch-service; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsWatchProduceEquivalentServiceState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIDotsWatchProduceEquivalentServiceState
dots.watch.run high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsServiceCommands/dots.watch.run; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsServiceCommands/dots.watch.run
dots.watch.status medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryDotsServiceCommands/dots.watch.status; integration: github.com/lkshrk/omni/integration_tests.TestCLI/dots-watch-service
groups.create high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryGroupLifecyclePersistsHostReferences; integration: github.com/lkshrk/omni/integration_tests.TestCLI/groups-management; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIGroupCreateProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIGroupCreateProduceEquivalentSemanticState
groups.delete high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryGroupLifecyclePersistsHostReferences; integration: github.com/lkshrk/omni/integration_tests.TestCLI/groups-management; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIGroupDeleteProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIGroupDeleteProduceEquivalentSemanticState
groups.edit_dots high TUI integration, tui_blackbox integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryGroupsEditDotsPersistsExactMembership; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIGroupsEditDotsPersistsAdditionalDotMembership
groups.edit_tools high TUI integration, tui_blackbox integration: github.com/lkshrk/omni/integration_tests.TestCLI/groups-management; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIGroupsEditToolsPersistsToolMembership
groups.list medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIGroupRenameProduceEquivalentSemanticState; integration: github.com/lkshrk/omni/integration_tests.TestCLI/groups-management
groups.rename high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryGroupLifecyclePersistsHostReferences; integration: github.com/lkshrk/omni/integration_tests.TestCLI/groups-management; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIGroupRenameProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIGroupRenameProduceEquivalentSemanticState
hosts.copy high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryHostLifecycleCopiesAndEditsGroups; integration: github.com/lkshrk/omni/integration_tests.TestCLI/hosts-management
hosts.create high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryHostLifecycleCopiesAndEditsGroups; integration: github.com/lkshrk/omni/integration_tests.TestCLI/hosts-management; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIHostCreateProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIHostCreateProduceEquivalentSemanticState
hosts.delete high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryHostLifecycleCopiesAndEditsGroups; integration: github.com/lkshrk/omni/integration_tests.TestCLI/hosts-management; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIHostDeleteProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIHostDeleteProduceEquivalentSemanticState
hosts.edit_groups high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryHostLifecycleCopiesAndEditsGroups; integration: github.com/lkshrk/omni/integration_tests.TestCLI/hosts-management; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIHostEditGroupsProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIHostEditGroupsProduceEquivalentSemanticState
hosts.list medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIHostCreateProduceEquivalentSemanticState; integration: github.com/lkshrk/omni/integration_tests.TestCLI/hosts-management
hosts.rename high TUI tui_blackbox, unit tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIHostRenameMovesTheHostAndItsSpecialGroup; unit: github.com/lkshrk/omni/internal/app.TestHostGroupMutationsWithStateReturnUpdatedState; unit: github.com/lkshrk/omni/internal/app.TestRenameHostMovesSpecialHostGroup
reconcile high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryReconcileConvergesToolDotsAndBackupState; integration: github.com/lkshrk/omni/integration_tests.TestCLI/reconcile-dot-commit-failure; integration: github.com/lkshrk/omni/integration_tests.TestCLI/reconcile-yes-tool-dotfile; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIReconcileProduceEquivalentCompositeState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIDashboardReconcileRecoversAfterInjectedInstallFailure
settings.extract high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinarySettingsExtractPreservesEffectiveConfig; integration: github.com/lkshrk/omni/integration_tests.TestCLI/settings-extract
settings.get medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinarySettingsReadCommandsUseIsolatedConfig; integration: github.com/lkshrk/omni/integration_tests.TestCLI/settings-management
settings.lint high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinarySettingsReadCommandsUseIsolatedConfig; integration: github.com/lkshrk/omni/integration_tests.TestCLI/settings-maintenance
settings.migrate_host_overrides high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryMigrateHostOverridesPromotesProviderCandidates; integration: github.com/lkshrk/omni/integration_tests.TestCLI/settings-maintenance
settings.provider high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryProviderTogglePersistsPerHost; integration: github.com/lkshrk/omni/integration_tests.TestCLI/settings-management; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUISettingsProviderProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUISettingsProviderProduceEquivalentSemanticState
settings.provider_priority high TUI component, tui_blackbox component: github.com/lkshrk/omni/internal/tui.TestModel_PriorityEditor_GrabCarryDown; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUISettingsProviderPersistsPriorityOrder
settings.reset high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinarySettingsResetPreservesInventory; integration: github.com/lkshrk/omni/integration_tests.TestCLI/settings-management; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUISettingsResetProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUISettingsResetProduceEquivalentSemanticState
settings.reset_cache high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinarySettingsResetCacheRemovesCachedTools; integration: github.com/lkshrk/omni/integration_tests.TestCLI/settings-management; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUISettingsResetCacheProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUISettingsResetCacheProduceEquivalentSemanticState
settings.set high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIProduceEquivalentSemanticState/settings.auto_import_persists_the_same_effective_setting; cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryBootstrapDiscoversAndPersistsDefaultConfig; integration: github.com/lkshrk/omni/integration_tests.TestCLI/settings-management; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIProduceEquivalentSemanticState/settings.auto_import_persists_the_same_effective_setting; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIProduceEquivalentSemanticState/settings.auto_import_persists_the_same_effective_setting
settings.show medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinarySettingsReadCommandsUseIsolatedConfig; integration: github.com/lkshrk/omni/integration_tests.TestCLI/settings-management
setup.init high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryInitCreatesAnIsolatedHostConfig; integration: github.com/lkshrk/omni/integration_tests.TestCLI/init-import-config; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUISetupProduceEquivalentConfig; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUISetupProduceEquivalentConfig
tools.baseline_system_inventory high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.baseline_system_inventory; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.baseline_system_inventory
tools.change_group high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolSpecLifecyclePersistsProviderGroupsAndIgnore; integration: github.com/lkshrk/omni/integration_tests.TestCLI/groups-management; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsFinalChangeGroupProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIToolsChangeGroupPersistsAdditionalMembership
tools.claim high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.claim; integration: github.com/lkshrk/omni/integration_tests.TestCLI/sync-all-claim-install; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsClaimProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsClaimProduceEquivalentSemanticState
tools.consolidate high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox, unit cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.consolidate; integration: github.com/lkshrk/omni/integration_tests.TestCLI/consolidate-to-brew; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsConsolidateProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsConsolidateProduceEquivalentSemanticState; unit: github.com/lkshrk/omni/internal/app.TestConsolidate_ConfigSaveFailurePreservesPreexistingTarget; unit: github.com/lkshrk/omni/internal/app.TestConsolidate_CurrentSchemaUsesTargetCandidateAndConcreteCache; unit: github.com/lkshrk/omni/internal/app.TestConsolidate_FailedUninstallKeepsRefreshedUntrackedSource; unit: github.com/lkshrk/omni/internal/app.TestConsolidate_LaterToolFailurePreservesPreexistingTarget
tools.delete high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolDeleteProduceEquivalentSemanticState; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-provider-lifecycle; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-remove-purge-no-provider; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolDeleteProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIAdminTerminalCompletesInteractiveBrewCaskUninstall
tools.delete_spec high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolSpecLifecyclePersistsProviderGroupsAndIgnore; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-provider-lifecycle; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsDeleteSpecProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsDeleteSpecProduceEquivalentSemanticState
tools.fallback high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.fallback_unreachable_api; cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.fallback; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.fallback_unreachable_api; integration: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.fallback; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsFallbackProduceEquivalentResolvedRecipe; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIFallbackProviderListSmoke
tools.heal_brew_taps high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryHealBrewTapsPersistsQualifiedPackage; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-heal-taps-dryrun
tools.ignore high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolSpecLifecyclePersistsProviderGroupsAndIgnore; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-ignore-processing; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-ignore; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsIgnoreProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsIgnoreProduceEquivalentSemanticState
tools.import high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.import; integration: github.com/lkshrk/omni/integration_tests.TestCLI/import-no-group-noninteractive; integration: github.com/lkshrk/omni/integration_tests.TestCLI/import-node-success
tools.install high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox, unit cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIProduceEquivalentSemanticState/tools.install_uses_the_same_provider_state_and_mutation; cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryExactVersionPackageSpecsAreIdempotent; integration: github.com/lkshrk/omni/integration_tests.TestCLI/install-group; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-provider-lifecycle; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIProduceEquivalentSemanticState/tools.install_uses_the_same_provider_state_and_mutation; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIProduceEquivalentSemanticState/tools.install_uses_the_same_provider_state_and_mutation; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIShellContractShowsTransientInstallProgress; unit: github.com/lkshrk/omni/internal/provider/apt.TestInstall_PreservesPinnedSpec; unit: github.com/lkshrk/omni/internal/provider/node.TestInstall_PreservesPinnedSpec; unit: github.com/lkshrk/omni/internal/provider/python.TestInstall_Pip3PreservesExactVersionSpec
tools.list high CLI+TUI query cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolLifecycleUsesConfiguredProviderCommands; integration: github.com/lkshrk/omni/integration_tests.TestCLI/list-empty; integration: github.com/lkshrk/omni/integration_tests.TestCLI/logical-tools-story; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIReadOnlyQueriesProduceEquivalentSemanticObservations; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIShellContractNavigatesWithTerminalKeysAndMouse
tools.migrate_nvm high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.migrate_nvm; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-maintenance; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolMigrateNvmRowProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolMigrateNvmRowProduceEquivalentSemanticState
tools.normalize_provider_overrides high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.normalize_provider_overrides; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-maintenance
tools.pin_provider high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.pin_provider; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-provider-scope; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsPinProviderProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsPinProviderProduceEquivalentSemanticState
tools.providers medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsProvidersAndSearchUseConfiguredAdapter/tools.providers; integration: github.com/lkshrk/omni/integration_tests.TestCLI/providers
tools.refresh high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox, unit cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryExactVersionPackageSpecsAreIdempotent; cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolLifecycleUsesConfiguredProviderCommands; integration: github.com/lkshrk/omni/integration_tests.TestCLI/refresh-metadata; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsRefreshProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIToolsRefreshRechecksProviderState; unit: github.com/lkshrk/omni/internal/app.TestExactPinRefreshPreservesBulkMetadata; unit: github.com/lkshrk/omni/internal/app.TestRefreshInstalled_ExactPinsRecheckBulkCandidates; unit: github.com/lkshrk/omni/internal/app.TestRefreshProviderInstalled_ExactPinsRecheckBulkCandidates; unit: github.com/lkshrk/omni/internal/provider/apt.TestIsInstalled_PinnedVersion; unit: github.com/lkshrk/omni/internal/provider/node.TestIsInstalled_PinnedVersion; unit: github.com/lkshrk/omni/internal/provider/pip.TestIsInstalled_ExactVersionUsesBaseIdentity; unit: github.com/lkshrk/omni/internal/provider/python.TestIsInstalled_Pip3_ExactVersionUsesBaseIdentity
tools.reinstall_default high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.reinstall_default; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-reinstall-default; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsReinstallDefaultProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsReinstallDefaultProduceEquivalentSemanticState
tools.search medium CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsProvidersAndSearchUseConfiguredAdapter/tools.search; integration: github.com/lkshrk/omni/integration_tests.TestCLI/search
tools.set_spec high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolSpecLifecyclePersistsProviderGroupsAndIgnore; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-provider-scope
tools.switch_provider high CLI cli_blackbox, integration cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolsFinalMaintenanceFlows/tools.switch_provider; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-provider-lifecycle
tools.sync high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolLifecycleUsesConfiguredProviderCommands; integration: github.com/lkshrk/omni/integration_tests.TestCLI/sync-dryrun; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-sync-configured-provider-preferred; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsSyncPaletteProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolsSyncPaletteProduceEquivalentSemanticState
tools.sync_all high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolSyncAllProduceEquivalentSemanticState; integration: github.com/lkshrk/omni/integration_tests.TestCLI/sync-all-claim-install; integration: github.com/lkshrk/omni/integration_tests.TestCLI/sync-all-group-flag; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolSyncAllProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolSyncAllProduceEquivalentSemanticState
tools.update high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox, unit cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIBinaryToolLifecycleUsesConfiguredProviderCommands; integration: github.com/lkshrk/omni/integration_tests.TestCLI/tools-provider-lifecycle; integration: github.com/lkshrk/omni/integration_tests.TestCLI/upgrade-no-args; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolUpdateProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolUpdateProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIToolsUpdateUpgradesOnlySelectedTool; unit: github.com/lkshrk/omni/internal/provider/apt.TestUpgrade_PreservesPinnedSpec; unit: github.com/lkshrk/omni/internal/provider/node.TestUpgrade_PreservesPinnedSpec; unit: github.com/lkshrk/omni/internal/provider/python.TestUpgrade_UVPreservesExplicitVersionSpec
tools.update_all high CLI+TUI state cli_blackbox, integration, parity, tui_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolUpdateAllProduceEquivalentSemanticState; integration: github.com/lkshrk/omni/integration_tests.TestCLI/upgrade-all-quarantine; integration: github.com/lkshrk/omni/integration_tests.TestCLI/upgrade-all-success; parity: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolUpdateAllProduceEquivalentSemanticState; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestCLIAndTUIToolUpdateAllProduceEquivalentSemanticState
tui.details medium TUI component, tui_blackbox component: github.com/lkshrk/omni/internal/tui.TestAgentsDetailsFollowTheCursor; component: github.com/lkshrk/omni/internal/tui.TestRenderSettings_OnlySelectedRowShowsDetail; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIShellContractNavigatesWithTerminalKeysAndMouse
tui.error high TUI component, tui_blackbox component: github.com/lkshrk/omni/internal/tui.TestModel_ProgressDoneMsg_Error; component: github.com/lkshrk/omni/internal/tui.TestRowErrorSummaryNormalizesUnsafeOutput; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIDashboardReconcileRecoversAfterInjectedInstallFailure
tui.loading medium TUI component, tui_blackbox component: github.com/lkshrk/omni/internal/tui.TestFlow_UC22_KeysIgnoredWhileLoading; component: github.com/lkshrk/omni/internal/tui.TestToolRefresh_ClearsLoadingWhenTheLastLegFails; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIShellContractShowsTransientInstallProgress
tui.mouse medium TUI component, tui_blackbox component: github.com/lkshrk/omni/internal/tui.TestAgentsMouseWheelMovesCursor; component: github.com/lkshrk/omni/internal/tui.TestFlow_UC64_MouseWheelScroll; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIShellContractNavigatesWithTerminalKeysAndMouse
tui.navigation high TUI component, tui_blackbox component: github.com/lkshrk/omni/internal/tui.TestCursorHidden_NavigationRevealsWithoutMoving_ToolsTab; component: github.com/lkshrk/omni/internal/tui.TestModel_CursorNavigation; component: github.com/lkshrk/omni/internal/tui.TestModel_PageNavigation; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIShellContractNavigatesWithTerminalKeysAndMouse
tui.resize medium TUI component, tui_blackbox component: github.com/lkshrk/omni/internal/tui.TestFlow2_UC136_WindowSizeMsgWithFilePicker; component: github.com/lkshrk/omni/internal/tui.TestFlow_UC65_WindowSize; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIShellContractRedrawsAfterPTYResize
tui.search medium TUI component, tui_blackbox component: github.com/lkshrk/omni/internal/tui.TestFlow2_UC132_BlurredSearchSlashRefocusesInput; component: github.com/lkshrk/omni/internal/tui.TestModel_FilterMode; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIShellContractNavigatesWithTerminalKeysAndMouse
tui.startup high TUI component, tui_blackbox component: github.com/lkshrk/omni/internal/tui.TestModel_Init; component: github.com/lkshrk/omni/internal/tui.TestStartupErrorDoesNotMaskRepairSettingsTab; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIConfiguredHostStartsDashboard; tui_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIShellContractNavigatesWithTerminalKeysAndMouse
ui.launch high CLI cli_blackbox cli_blackbox: github.com/lkshrk/omni/integration_tests.TestTUIShellContractRedrawsAfterPTYResize

Real-terminal TUI target

These eight journey families are the complete binary-TUI budget. They cover interaction shapes, not every catalog action. Supporting variations share the same binary and harness. A new family should replace or consolidate an existing one unless it proves a new interaction contract.

Journey User path and durable assertion Current evidence State
TUI-01 First run Bootstrap wizard -> activate host -> dashboard; config reload sees the same host TestTUIFirstRunCreatesHostAndReachesDashboard covered
TUI-02 Shell navigation Launch -> navigate -> search/help -> resize -> clean quit; current screen remains valid TestTUIConfiguredHostStartsDashboard, current-screen overwrite regression covered
TUI-03 Tool mutation Edit fallback -> install with fake provider -> progress -> persisted state -> cancel then confirm delete Durable fallback save and fake-Brew lifecycle tests covered
TUI-04 Reconcile recovery Open plan -> run failure -> retain error -> retry -> durable success Injected fake-Brew failure/retry plus dot-ignore reconcile covered
TUI-05 Dot safety Discover/sync candidate -> conflict -> cancel -> confirm resolution; verify config and filesystem Candidate include/sync and conflict backup/symlink tests covered
TUI-06 Agents mutation Open Agents -> cancel/reopen -> inspect and resolve targets, secrets, dots/native ownership, conflicts, and unmanaged items -> review/apply -> local status -> preview/confirm cleanup; verify manifest, lock, durable package, completion marker, runtime state, and post-cleanup no-op TestTUIAgentsTabSyncsMCPThroughRealAPM, TestTUIAgentsOnboardingPreviewConfirmAndApply covered
TUI-07 Groups/settings Assign current host group -> toggle one setting -> reload config -> verify persistence TestTUIAssignsHostGroupAndPersistsSetting covered
TUI-08 Admin terminal Run fake privileged command -> exchange input/output -> observe completion/dismissal without corrupting the parent UI Real nested PTY plus component-level nonzero-exit coverage covered

TUI runtime controls

  • Build omni once per integration package; every journey launches that binary.
  • Give every journey its own HOME, config, cache, repository, PATH, and fake executors.
  • Use x/vttest's current emulator screen; no fixed key delays or accumulated ANSI-history assertions.
  • Run isolated sessions with CI -parallel 4; keep race shards separate.
  • Use no network or real package manager in the PR TUI lane.
  • Target two seconds per transition and ten seconds per journey, but measure before enforcing a suite budget.
  • Assert semantic text/cells and durable state. Use full-screen goldens only when layout itself is the behavior.
  • On failure retain the current screen, command/fake-executor log, config, and DB diagnostics.

Non-action workflow coverage

Onboarding is a coordinated CLI/TUI workflow, not an internal/actions catalog entry. Its evidence is tracked here instead of inventing an action ID.

Workflow App/protocol CLI/model Real integration Remaining gate
Host template and pre-APM migration Offline ownership planning, exact-child suppression, mandatory content-addressed wrappers, source apm.yml rebasing, marked-template publication, first-sync/divergence guards, installed-module ownership preflight, exact-source-byte Doctor repair, and canonical-template/APM lock ordering agents migrate --host/--snapshot defaults to preview; --dry-run aliases preview; --write publishes only the marked template/wrappers; Doctor reports/fixes exact duplicates; agents sync --force-template materializes the validated candidate bytes Focused fixtures cover exact/conflict/multi-owner/relevant-unavailable-evidence classification, strict manifestless skill-only proof, all-or-nothing source-layout refusal, symlink and classification-input identity rechecks, zero-mutation preflight failures, child-health rollup, plus existing wrapper integrity; lifecycle smoke covers exact and manual repair paths Immutable pinned-APM DinD plus macOS/Windows path and canonicalization jobs; direct isolated-HOME apm audit --ci wrapper-path false positive is known

APM ownership migration verification

The normal PR gate is:

go test -count=1 ./internal/config -run 'AgentsSnapshot|LegacyAgent'
go test -count=1 ./internal/app -run 'AgentsMigrate|BundleOwnership|AgentsSync'
go test -count=1 ./internal/cli -run 'AgentsMigrate'
go build ./...
go test -count=1 ./...
go vet ./...
make lint

The isolated temporary HOME/state/APM-workspace lifecycle smoke passed this sequence:

  1. Two previews are byte-identical and leave filesystem hashes unchanged.
  2. --write produces one owner dependency, suppresses owned standalone children, updates only the marked template, and leaves the live manifest unchanged.
  3. omni agents sync materializes the guarded live manifest and the pinned APM installs it on the empty home.
  4. The wrapped MCP handshake succeeds. Global apm audit --ci has a known APM 0.29.0 false positive for deployed .agents/** paths. Until upstream path resolution is fixed, use omni agents sync plus omni doctor as the global verification gate. CI may allow only the exact known .agents/** findings after independently checking those files; all other findings fail.
  5. Reinstall is a byte/semantic no-op.
  6. Uninstall removes owner-attributed artifacts while unrelated configuration survives.
  7. A repeat migration over the unchanged snapshot selects the same wrapper hash; rerunning migrate after source changes refreshes the wrapper snapshot.
  8. /home/coder/apm remains unchanged.

Package-owned child reconciliation adds these lifecycle scenarios:

  1. An exact standalone MCP/LSP duplicate is reported by Doctor; dry-run changes nothing; fix removes only that canonical-template item; sync succeeds; the TUI shows the child once under package provides.
  2. The differing context-mode declarations remain unchanged by Doctor and block sync before live/APM mutation; the TUI shows a degraded package plus the conflicting standalone row until the top-level template entry is removed manually.
  3. Independent services remain top-level and retain existing health/install behavior. Multiple owners block deterministically.
  4. A first install with unavailable package evidence and standalone services blocks before materialization/APM; package-only first install proceeds.
  5. Manifestless DeepWiki skill_bundle and Shiplight claude_skill packages are proven service-free only from complete pinned lock/module evidence; the standalone Shiplight MCP remains independent and Doctor removes nothing.
  6. Unknown, plugin, hybrid, mixed, incomplete, unsafe, unreadable, and changed evidence remains unavailable. Pre-mutation identity changes produce zero template/live writes and zero APM calls.

Focused proof:

go test ./internal/app -run 'ManifestlessSkill|OwnedChild|AgentsStatus|AgentsSyncAll|DoctorAgents'
go test ./internal/cli -run Doctor
go test ./internal/tui -run Agents

APM is not modified by this reconciliation. Omni repairs only its canonical template, then hands runtime ownership back to the pinned APM build. The manifestless proof does not change TUI rendering, update checks, or versions.

Release remains gated on the focused and full lanes on Linux, the immutable pinned-APM DinD lane, and the existing macOS/Windows path and canonicalization jobs. Fixtures and diagnostics must contain no literal secrets.

Action-level coverage

The detailed action table below records representative app, CLI, and TUI model/render evidence. Its TUI column does not require a separate real-terminal test; the eight-journey budget above owns that layer.

Action ID CLI TUI Flow
agents.add yes yes agents.add
agents.adopt yes agents.adopt
agents.adopt_native yes agents.adopt_native
agents.drift yes agents.drift
agents.ignore yes yes agents.ignore
agents.marketplace.add yes agents.marketplace.add
agents.marketplace.remove yes agents.marketplace.remove
agents.marketplace.update yes agents.marketplace.update
agents.migrate yes agents.migrate
agents.prune yes agents.prune
agents.refresh yes yes agents.refresh
agents.remove yes yes agents.remove
agents.remove_native yes agents.remove_native
agents.sync yes yes agents.sync
agents.update yes agents.update
agents.update_all yes yes agents.update_all
doctor yes yes doctor
doctor.fix yes yes doctor.fix
dots.add yes yes dots.add
dots.commit yes yes dots.commit
dots.delete yes yes dots.delete
dots.disable yes yes dots.disable
dots.edit_groups yes yes dots.edit_groups
dots.enable yes yes dots.enable
dots.history yes dots.history
dots.ignore yes yes dots.ignore
dots.pull yes yes dots.pull
dots.push yes yes dots.push
dots.refresh yes yes dots.refresh
dots.reminder yes yes dots.reminder
dots.reminder.check yes dots.reminder.check
dots.reminder.run yes dots.reminder.run
dots.reminder.status yes dots.reminder.status
dots.resolve_all_use_local yes yes dots.resolve_all_use_local
dots.resolve_all_use_repo yes yes dots.resolve_all_use_repo
dots.resolve_use_local yes yes dots.resolve_use_local
dots.resolve_use_repo yes yes dots.resolve_use_repo
dots.services.status yes dots.services.status
dots.sync yes yes dots.sync
dots.variant yes yes dots.variant
dots.watch yes yes dots.watch
dots.watch.run yes dots.watch.run
dots.watch.status yes dots.watch.status
groups.create yes yes groups.create
groups.delete yes yes groups.delete
groups.edit_dots yes groups.edit_dots
groups.edit_tools yes groups.edit_tools
groups.rename yes yes groups.rename
hosts.copy yes hosts.copy
hosts.create yes yes hosts.create
hosts.delete yes yes hosts.delete
hosts.edit_groups yes yes hosts.edit_groups
hosts.rename yes hosts.rename
reconcile yes yes reconcile
settings.extract yes settings.extract
settings.migrate_host_overrides yes settings.migrate_host_overrides
settings.provider yes yes settings.provider
settings.provider_priority yes settings.provider_priority
settings.reset yes yes settings.reset
settings.reset_cache yes yes settings.reset_cache
settings.set yes yes settings.set
setup.init yes yes setup.init
tools.baseline_system_inventory yes tools.baseline_system_inventory
tools.change_group yes yes tools.change_group
tools.claim yes yes tools.claim
tools.consolidate yes yes tools.consolidate
tools.delete yes yes tools.delete
tools.delete_spec yes yes tools.delete_spec
tools.fallback yes yes tools.fallback
tools.heal_brew_taps yes tools.heal_brew_taps
tools.ignore yes yes tools.ignore
tools.import yes tools.import
tools.install yes yes tools.install
tools.migrate_nvm yes yes tools.migrate_nvm
tools.normalize_provider_overrides yes tools.normalize_provider_overrides
tools.pin_provider yes yes tools.pin_provider
tools.refresh yes yes tools.refresh
tools.reinstall_default yes yes tools.reinstall_default
tools.set_spec yes tools.set_spec
tools.switch_provider yes tools.switch_provider
tools.sync yes yes tools.sync
tools.sync_all yes yes tools.sync_all
tools.update yes yes tools.update
tools.update_all yes yes tools.update_all