Task system: validate namespace exists in repo when setting it

t-655·WorkTask·
·
·
·Omni/Task.hs
Created1 month ago·Updated1 week ago·pipeline runs →

Description

Edit

When a namespace is set on a task (via CLI task create, task edit, or API), verify the file/module path actually exists in the repo before accepting it. If it doesn't exist, return an error or warning. This prevents silent misconfiguration that causes pipeline failures (e.g. t-637 had namespace set to a non-existent path, leading to repeated build failures).

Relevant code:

  • Omni/Agent/Task.hs - task data types and DB operations
  • Omni/Agent/Tools/Task.hs - CLI interface for task commands
  • Omni/Agent/Pipeline.hs - uses namespace for build verification

The check should resolve the namespace path relative to the repo root and confirm the file exists on disk.

Timeline (17)

🔄[system]Open → InProgress1 month ago
💬[system]1 month ago

Pipeline: dev completed (run=dev-t-655-1771528584, cost=0.0c)

🔄[system]InProgress → Open1 month ago
💬[system]1 month ago

Pipeline: verification failed: Build failed for Omni/Task.hs (exit 1): 7[10000;10000H7[10000;10000Hthese 5 derivations will be built: /nix/store/abc2n2way8bnqnz3y6cqjiqg5gincbdj-hs-mod-Omni_Task_Core.drv /nix/store/6r34p8w280ibq1637fk89nddprbzrc15-hs-mod-Omni_Task_MigrationTest.drv /nix/store/l55y0wd9kyrwb4mw2f8a31mlpdpygbif-hs-mod-Omni_Task_RaceTest.drv /nix/store/zkizfrciir7m33axmvwh6l118ifhn71z-hs-mod-Omni_Task.drv /nix/store/jz7013s5g1ga2asmf5906liv5mxjhrz3-task.drv building '/nix/store/abc2n2way8bnqnz3y6cqjiqg5gincbdj-hs-mod-Omni_Task_Core.drv'...

Omni/Task/Core.hs:21:1: error: Could not find module Database.SQLite.Simple' Use -v (or :set -v` in ghci) to see a list of the files searched for. | 21 | import qualified Database.SQLite.Simple as SQL | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Omni/Task/Core.hs:22:1: error: Could not find module Database.SQLite.Simple.FromField' Use -v (or :set -v` in ghci) to see a list of the files searched for. | 22 | import qualified Database.SQLite.Simple.FromField as SQL | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Omni/Task/Core.hs:23:1: error: Could not find module Database.SQLite.Simple.Ok' Use -v (or :set -v` in ghci) to see a list of the files searched for. | 23 | import qualified Database.SQLite.Simple.Ok as SQLOk | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Omni/Task/Core.hs:24:1: error: Could not find module Database.SQLite.Simple.ToField' Use -v (or :set -v in ghci) to see a list of the files searched for. | 24 | import qualified Database.SQLite.Simple.ToField as SQL | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: builder for '/nix/store/abc2n2way8bnqnz3y6cqjiqg5gincbdj-hs-mod-Omni_Task_Core.drv' failed with exit code 1; last 25 log lines: > Use -v (or :set -v in ghci) to see a list of the files searched for. > | > 21 | import qualified Database.SQLite.Simple as SQL > | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > Omni/Task/Core.hs:22:1: error: > Could not find module Database.SQLite.Simple.FromField' > Use -v (or :set -v in ghci) to see a list of the files searched for. > | > 22 | import qualified Database.SQLite.Simple.FromField as SQL > | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > Omni/Task/Core.hs:23:1: error: > Could not find module Database.SQLite.Simple.Ok' > Use -v (or :set -v in ghci) to see a list of the files searched for. > | > 23 | import qualified Database.SQLite.Simple.Ok as SQLOk > | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > Omni/Task/Core.hs:24:1: error: > Could not find module Database.SQLite.Simple.ToField' > Use -v (or :set -v in ghci) to see a list of the files searched for. > | > 24 | import qualified Database.SQLite.Simple.ToField as SQL > | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ For full logs, run: nix log /nix/store/abc2n2way8bnqnz3y6cqjiqg5gincbdj-hs-mod-Omni_Task_Core.drv error: 1 dependencies of derivation '/nix/store/jz7013s5g1ga2asmf5906liv5mxjhrz3-task.drv' failed to build

[1A[1G[2K[+] Omni/Task.hs [1A[1G[2K[0m[…] Omni/Task.hs[0m[1B

[1A[1G[2K[+] Omni/Task.hs [1A[1G[2K[~] Omni/Task.hs: warning: you did not specify '--add-root'; the result migh...[1B[1A[1G[2K[~] Omni/Task.hs: /nix/store/jz7013s5g1ga2asmf5906liv5mxjhrz3-task.drv…[1B[1A[1G[2K[~] Omni/Task.hs: these 5 derivations will be built:…[1B[1A[1G[2K[~] Omni/Task.hs: /nix/store/abc2n2way8bnqnz3y6cqjiqg5gincbdj-hs-mod-Omni_...[1B[1A[1G[2K[~] Omni/Task.hs: building '/nix/store/abc2n2way8bnqnz3y6cqjiqg5gincbdj-hs-m...[1B[1A[1G[2K[~] Omni/Task.hs: …[1B[1A[1G[2K[~] Omni/Task.hs: Omni/Task/Core.hs:21:1: error: Could not find module D...[1B[1A[1G[2K[~] Omni/Task.hs: Omni/Task/Core.hs:22:1: error: Could not find module D...[1B[1A[1G[2K[~] Omni/Task.hs: 22 | import qualified Database.SQLite.Simple.FromField as ...[1B[1A[1G[2K[~] Omni/Task.hs: Omni/Task/Core.hs:23:1: error: Could not find module D...[1B[1A[1G[2K[~] Omni/Task.hs: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…[1B[1A[1G[2K[~] Omni/Task.hs: Omni/Task/Core.hs:24:1: error: Could not find module D...[1B[1A[1G[2K[~] Omni/Task.hs: error: builder for '/nix/store/abc2n2way8bnqnz3y6cqjiqg5gi...[1B[1A[1G[2K[~] Omni/Task.hs: error: 1 dependencies of derivation '/nix/store/jz7013s5g1...[1B[0m[38;5;1m[2Kfail: bild: realise: Omni/Task.hs [0m[0m [0m[1A[1G[2K[0m[38;5;1m[x] Omni/Task.hs[0m[1B 1

🔄[system]Open → InProgress1 month ago
💬[human]1 month ago

Pipeline scheduler: started run=pipeline-omni-task-hs-t-655-1771562526 domain=Omni/Task.hs

🔄[human]InProgress → Review1 month ago
💬[human]1 month ago

Pipeline scheduler: run=pipeline-omni-task-hs-t-655-1771562526 domain=Omni/Task.hs status=done cost=83c (fund-spend=failed)

💬[human]1 week ago

Ava triage: pipeline auto-run reached status=done but the agent made NO git commits and reported blockers (missing files, path mismatches, or need clarification). This task is not actually in review — there's nothing to review. Resetting status to Open so it can be re-scoped.

🔄[human]Review → Open1 week ago
💬[human]1 week ago

ORPHAN COMMIT: coder agent produced commit 472c0f2cb0d270da71683b8aec276bbec8ad1609 on 2026-02-19 but it was never merged into live. Reachable only via branchless reflog. Pipeline scheduler bug — see separate task. To recover: git cherry-pick 472c0f2cb0d270da71683b8aec276bbec8ad1609 from omni/live (expect conflicts after 6+ weeks of drift). Otherwise re-implement from scratch.