taskStatus: Done

taskTitle: Show help text when task invoked without args

taskType: WorkTask


taskTitle: Move dev instructions from README.md to AGENTS.md


taskTitle: Task ids should be shorter. Use the sqids package in haskell to generate ids


taskTitle: Tasks should have an optional namespace associated with them. Namespaces are first class citizens in this monorepo


taskTitle: There should be a command to list all projects.


taskTitle: Instruct agents too use git-branchless and a patch based workflow rather than traditional git commands if and when they need to record things in git.


taskTitle: instruct agents to include tests with all new features and bug fixes


taskTitle: instruct agents to run 'bild --test' and 'lint' for whatever namespace(s) they are working on after completing a task and fix any reported errors


taskTitle: The script Omni/Ide/typecheck.sh needs to support Haskell type checking in a similar fashion as how Omni/Ide/repl.sh is able to handle multiple languages


taskTitle: Remove the old aider config in .aider* files and directories. Aider stinks and we will use amp going forward


taskId: t-PpXWsU

taskStatus: Open

taskTitle: Task Manager Improvements

taskType: Epic


taskTitle: Implement child ID generation (t-abc123.1)


taskTitle: Update createTask to auto-generate child IDs


taskId: t-PpZlbL

taskTitle: Implement task tree visualization command


taskTitle: Implement task stats command


taskId: t-PpZzBA

taskTitle: Implement epic progress tracking


taskId: t-PpZGVf

taskTitle: Add filtering by type and parent (list improvements)


taskId: t-PqLLXk

taskTitle: Implement epic and task types


taskTitle: Add enhanced dependency types (blocks, discovered-from, related)


taskId: t-PqMBuS

taskTitle: Protect production database from tests


taskTitle: Add migration support for old task format


taskId: t-Uumhrq

taskTitle: Investigate and implement prettier tree drawing with box characters


taskTitle: PodcastItLater: Path to Paid Product


taskTitle: Adopt Bootstrap CSS for UI improvements


taskTitle: Add Stripe integration for billing


taskTitle: Implement usage tracking and limits


taskTitle: Add email notifications (transactional)


taskTitle: Migrate from SQLite to PostgreSQL


taskStatus: Review

taskTitle: Create basic admin dashboard


taskTitle: Complete comprehensive test suite


taskTitle: Fix Recent Episodes refresh to prepend instead of reload (interrupts audio playback)


taskTitle: Implement billing page UI component with pricing and upgrade options


taskTitle: Add a 'task show <id>' command that prints out a long, easy to read (for humans) version of the task. Include dependencies and all information fields in the output


taskTitle: Make PodcastItLater UI mobile-friendly and responsive


taskTitle: Add dark mode support to PodcastItLater UI


taskTitle: Simplify billing to single paid plan


taskTitle: Separate navbar into user navbar and callout box for plan info


taskTitle: Make 'Upgrade Now' button go directly to Stripe checkout (not /billing page)


taskTitle: Add plan details to callout box (unlimited articles, $12/month)


taskTitle: Delete /billing page and all related code (billing_page, BillingPage component)


taskTitle: Update billing_checkout to use 'paid' tier instead of 'pro'


taskTitle: Update success/cancel URLs to redirect to / instead of /billing


taskTitle: Remove 'Billing' button from navbar (paid users will use Stripe portal link in callout)


taskTitle: Test the complete flow and verify all changes


taskTitle: Remove BLE001 noqa for bare Exception catches - use specific exceptions


taskTitle: Fix PLR0913 violations - refactor functions with too many parameters


taskTitle: Extract format_duration utility to shared UI or Core module (used only in Web.py)


taskTitle: Extract extract_og_metadata and send_magic_link to Core module for reusability


taskTitle: Review and fix type: ignore comments - improve type safety


taskTitle: Remove PLR2004 magic number - use constant for month check


taskTitle: Implement cancel subscription functionality


taskTitle: Implement delete account functionality


taskTitle: Implement change email address functionality


taskTitle: Add logout button to account page


taskTitle: Replace Coming Soon placeholder with full account management UI


taskTitle: Add remove button to queue status items


taskTitle: Remove button classes from navbar links (make them regular nav links)


taskTitle: Remove 'Logged in as' text from navbar


taskTitle: Left-align navbar links instead of right-aligned buttons


taskTitle: Remove logout button from navbar (will be in account page)


taskTitle: Add ruff to the developer environment, the 'env' attribute in Bild.nix


taskTitle: Fix dev mode banner styling and pre-fill login email


taskTitle: Fix Stripe portal error handling and account page padding


taskTitle: Parallel Target Builds - Epic


taskTitle: Add mapConcurrentlyBounded helper using QSemN


taskTitle: Refactor build function to extract buildTarget worker


taskTitle: Replace forM with mapConcurrentlyBounded in build


taskTitle: Test basic parallel builds without UI changes


taskTitle: Research ansi-terminal and design LineManager API


taskTitle: Create Omni/Log/Concurrent.hs module with LineManager


taskTitle: Implement line reservation and release logic


taskTitle: Implement concurrent line update with ANSI codes


taskTitle: Add terminal capability detection


taskTitle: Thread LineManager through build/nixBuild functions


taskTitle: Create runWithLineManager and logsToLine functions


taskTitle: Test parallel builds with ANSI multi-line output


taskTitle: Add fallback for dumb terminals


taskTitle: Test in emacs and narrow terminals


taskTitle: Handle edge cases and polish UX


taskTitle: PodcastItLater: Public Feed, Metrics & Audio Improvements


taskTitle: Add database migrations for new columns (is_public, user_episodes table, episode_metrics table, original_url_hash)


taskId: t-gaNbfx

taskTitle: Implement URL hashing and normalization function for episode deduplication


taskTitle: Add Core.py database functions for public episodes (mark_public, unmark_public, get_public_episodes)


taskId: t-gaRBUA

taskTitle: Add Core.py database functions for user_episodes junction table


taskId: t-gaTQEV

taskTitle: Add Core.py database functions for episode metrics tracking


taskTitle: Modify submission flow to check for existing episodes by URL hash


taskTitle: Add /public route to display public feed


taskId: t-gbwkkw

taskTitle: Add /public.rss route for public RSS feed generation


taskTitle: Update home page to show public feed when user is logged out


taskTitle: Add admin toggle button to episode cards for public/private status


taskTitle: Add POST /admin/episode/{id}/toggle-public endpoint


taskTitle: Add '+ Add to your feed' button on episode pages for logged-in users


taskId: t-gcbqDl

taskTitle: Add POST /episode/{id}/add-to-feed endpoint


taskId: t-gcdFSb

taskTitle: Add POST /episode/{id}/track endpoint for metrics tracking


taskId: t-gcfTnG

taskTitle: Add JavaScript to episode player for tracking play events


taskId: t-gcNemK

taskTitle: Enhance Worker.py to extract publication date and author metadata from articles


taskId: t-gcPraJ

taskTitle: Add intro TTS generation with metadata (title, author, date)


taskId: t-gcRCzw

taskTitle: Add outro TTS generation with title and author


taskId: t-gcTPQn

taskTitle: Combine intro, pauses, article content, and outro in Worker.py


taskTitle: Write tests for public feed functionality


taskId: t-gdlWtu

taskTitle: Write tests for episode deduplication


taskId: t-gdoeYo

taskTitle: Write tests for metrics tracking


taskTitle: Write tests for audio intro/outro generation


taskId: t-gdsHUA

taskTitle: Create admin metrics dashboard view


taskId: t-XfkJyy

taskTitle: Add JSON output flag


taskId: t-XRsDZb

taskTitle: Add comprehensive CLI tests for task command


taskTitle: Add priority flag support to task create


taskId: t-YBRpHe

taskTitle: CLI parsing fails with multiple flags


taskId: t-YBSEIe

taskTitle: Namespace filter broken


taskTitle: Docopt flag order matters incorrectly


depId: t-Uumhrq

depType: DiscoveredFrom

taskTitle: Document TASK_TEST_MODE in AGENTS.md


taskTitle: Fix bild --plan to output only JSON without logging


taskTitle: PodcastItLater: Add Pricing Page UI


taskTitle: PodcastItLater: Add Stripe Checkout Route


taskTitle: PodcastItLater: Add Stripe Portal Route


taskTitle: PodcastItLater: Add Stripe Webhook Handler


taskTitle: PodcastItLater: Enforce Paid Limits in UI


taskTitle: Add tests for Admin dashboard


taskTitle: Add error handling tests for Worker


taskParent: t-PpXWsU

taskTitle: Implement 'task progress <epic-id>' command


taskTitle: Implement 'task stats --epic=<id>' filtering


taskTitle: Add colored output to 'task list' and 'task tree'


taskTitle: Namespace normalization incorrect for Haskell files ending in .hs


taskTitle: Research and add intro/outro sound effects


taskTitle: Implement audio crossfading for intro/outro


taskTitle: Design Omni/Agent.hs CLI and module structure


taskTitle: Implement worker process management (start/stop/pid)


taskTitle: Implement git worktree and sync logic in Haskell


taskTitle: Implement log streaming and filtering (replace monitor-worker.sh)


taskTitle: Implement harvesting logic in Haskell


taskTitle: Add integration tests for Agent workflow


taskTitle: bild fails in agent environment due to CODEROOT mismatch


taskTitle: Race condition in generateChildId when concurrent tasks are created


taskTitle: Remove horizontal bars from task show output


taskTitle: Multi-Agent System 2.0 (Haskell Agent)


taskTitle: Implement Omni.Agent.Git module with robust checkout


depType: Blocks

taskTitle: Implement Omni.Agent.Worker loop logic


taskTitle: Implement Omni.Agent.Log module with Aeson parsing


taskTitle: Implement Omni.Agent.CLI entry point


taskTitle: Implement enhanced 2-line status logging


taskTitle: Fix gitlint regex-style-search warning


taskId: t-rWabrkQDQ

taskTitle: Fix task ready to exclude Review tasks


taskTitle: Make task IDs case-insensitive


taskTitle: Implement Braid keep-alive mechanism


taskTitle: Revive authkey authentication in Que/Host


taskTitle: Store generated JWK in persistent file


taskTitle: Add description field to Task model


taskTitle: Update CLI to support task description


taskTitle: Implement smart base branch selection in Worker


taskId: t-rWbnAjCJH

taskTitle: Update start-worker.sh to use Haskell agent


taskDescription: Omni/Bild.hs:776 has a TODO: wrapper should just be removed, instead rely on upstream nixpkgs builders to make wrappers. This simplifies the codebase by removing manual bash script generation.

taskTitle: Remove manual wrapper generation in Omni/Bild


taskDescription: Implement a metrics view in the Admin dashboard (Biz/PodcastItLater/Admin.py). Show total users, active subscriptions, and recent submission counts. Ref: Biz/PodcastItLater/DESIGN.md

taskId: t-rWbMpxaBk

taskStatus: InProgress

taskTitle: Implement metrics view in Admin dashboard


taskDescription: Update Omni/Agent/start-worker.sh to invoke the new Haskell-based agent binary ('agent start <name>') instead of running the legacy bash loop. Ensure it still sets up the environment correctly. The agent binary handles the loop internally.


taskDescription: Modify Omni/Agent/Git.hs to proactively clean up stale rebase/merge states before attempting operations. The worker should attempt 'git rebase --abort' (ignoring errors) before syncing to prevent 'already rebase-merge' errors.

taskTitle: Make worker agent robust to stale git states


taskDescription: Modify Omni/Agent/Git.hs to check for .git/rebase-merge or .git/rebase-apply before running git rebase --abort. This avoids blindly running abort commands.

taskId: t-rWbPQPLps

taskTitle: Detect in-progress rebase before aborting in Agent


taskDescription: Modify Omni/Agent/Worker.hs to check if the task branch already exists before trying to create it. If it exists, simply checkout the branch. This prevents 'fatal: a branch named ... already exists' errors when restarting the worker.

taskTitle: Handle existing task branch in Worker Agent


taskDescription: Implement the 2-line status UI described in Omni/Agent/DESIGN.md (Section 4.3). It should reserve 2 lines at the bottom for Meta (Task ID, Time) and Activity (current thought/action), allowing history to scroll above. Use ANSI codes for cursor management.

taskTitle: Implement 2-line Agent Status UI


depId: t-rWbMpxaBk

taskDescription: Update Omni/Agent/Worker.hs to spawn a background thread that tails '_/llm/amp.log' while the Amp agent is running. For each new line in the log: 1. Parse it (it's JSON). 2. Extract a user-friendly summary (e.g. 'Thinking...', 'Tool: Bash'). 3. Update the status bar activity line (AgentLog.updateActivity) with this summary. This provides real-time visibility into what the agent is doing.

taskTitle: Stream Amp logs to Agent status bar


taskDescription: Replace 'git rebase live' with 'git sync' (which maps to git-branchless sync) in Omni.Agent.Git.syncWithLive. This aligns with the branchless workflow and handles stack rebasing automatically.

taskId: t-rWciiEsnZ

taskTitle: Use 'git sync' instead of 'git rebase' in Agent


taskDescription: 1. Add Thread ID to the status bar (requires log parsing later, but add field now). 2. Make the status layout responsive or vertical (4 lines) to fit on small screens (iPhone). 3. Reserve more lines in init.

taskId: t-rWciWJYsi

taskTitle: Improve Agent Status UI for mobile & debugging


taskTitle: Split Thread and Credits in Worker status bar


taskId: t-rWckmrKBm

taskTitle: Fix Worker status bar activity not updating


taskTitle: Fix failing tests in Biz/PodcastItLater/Web.py (UsageLimits and EpisodeDetail)