| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
- Converted parent tasks to Epics:
- Task Manager Improvements - PodcastItLater: Path to Paid Product -
Complete comprehensive test suite - General Code Quality Refactor
- Created new Epic 'PodcastItLater: UX Polish' - Reparented orphan
tasks to appropriate epics - Fixed namespaces ending in .hs.hs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-4aeb1055-1271-41f4-ad2b-39d49b75c355
Co-authored-by: Amp <amp@ampcode.com>
|
|
|
|
|
|
|
|
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-4aeb1055-1271-41f4-ad2b-39d49b75c355
Co-authored-by: Amp <amp@ampcode.com>
|
|
|
|
- Update showTaskDetailed to display taskNamespace - Fix namespace
for account management tasks in tasks.jsonl
|
|
- Updated Omni/Task/Core.hs to filter parent tasks from 'task ready'
- Broke down 'PodcastItLater: Path to Paid Product' into 5 subtasks -
Broke down 'General Code Quality Refactor' into 3 subtasks - Broke down
'Complete comprehensive test suite' into 2 subtasks - Fixed namespace
naming in tasks.jsonl
|
|
- Remove Log.wipe from --plan output path - Add isPlanMode parameter
to analyzeAll to skip LogC.withLineManager when planning - Update all
analyzeAll call sites to pass isPlanMode flag - Remove grep workaround
from repl.sh (no longer needed)
Now 'bild --plan' outputs clean JSON that can be piped directly to jq.
This fixes typecheck.sh and other tools that rely on clean JSON output.
Amp-Thread-ID:
https://ampcode.com/threads/T-4e6225cf-3e78-4538-963c-5377bbbccee8
Co-authored-by: Amp <amp@ampcode.com>
|
|
- Implement Haskell typechecking using 'ghc -fno-code' - Use repl.sh
to provision correct GHC environment with dependencies - Follows same
pattern as Python typechecking (via repl.sh) - Typechecks without
generating code (fast feedback)
Now typecheck.sh supports both Python (.py) and Haskell (.hs) files.
Amp-Thread-ID:
https://ampcode.com/threads/T-4e6225cf-3e78-4538-963c-5377bbbccee8
Co-authored-by: Amp <amp@ampcode.com>
|
|
|
|
- Add progress display to 'task show' for epics (X/Y with percentage)
- Add progress display to 'task list --type=epic' showing [X/Y]
- Progress already shown in 'task tree' as [X/Y] - Calculate
completed/total child tasks for epics - Clean up test tasks
accidentally created in production database
All 31 tests passing.
Amp-Thread-ID:
https://ampcode.com/threads/T-4e6225cf-3e78-4538-963c-5377bbbccee8
Co-authored-by: Amp <amp@ampcode.com>
|
|
- Add 'task stats' command to show task statistics - Display total
tasks, status breakdown (open/in-progress/done) - Show epic count,
ready vs blocked tasks - Show task counts by priority (P0-P4) and
namespace - Support both human-readable and JSON output (--json flag)
- Add tests for stats command and stats --json - TaskStats data type
with ToJSON/FromJSON instances
All 31 tests passing.
Amp-Thread-ID:
https://ampcode.com/threads/T-4e6225cf-3e78-4538-963c-5377bbbccee8
Co-authored-by: Amp <amp@ampcode.com>
|
|
The test database file should not be tracked in git. Only the
production database (.tasks/tasks.jsonl) should be committed.
Amp-Thread-ID:
https://ampcode.com/threads/T-4e6225cf-3e78-4538-963c-5377bbbccee8
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID:
https://ampcode.com/threads/T-4e6225cf-3e78-4538-963c-5377bbbccee8
Co-authored-by: Amp <amp@ampcode.com>
|
|
- Implement box-drawing characters (├──, └──, │) for
task tree visualization - Fix 'task create' flag ordering by using
[options] in docopt (same as 'task list') - Document TASK_TEST_MODE
environment variable in AGENTS.md Testing section - Add test case for
multi-flag ordering on 'task create' - Clean up test tasks polluted
in production database
All 29 tests passing.
Amp-Thread-ID:
https://ampcode.com/threads/T-4e6225cf-3e78-4538-963c-5377bbbccee8
Co-authored-by: Amp <amp@ampcode.com>
|
|
|
|
|
|
|
|
|
|
- Fix get_usage() to count from user_episodes table instead of
episodes.user_id
- Now correctly tracks when episodes are added to user's feed -
Handles shared/existing episodes properly (count against the user
who added them)
- Add comprehensive test suite for usage limits (TestUsageLimits):
- test_usage_counts_episodes_added_to_feed -
test_usage_counts_existing_episodes_correctly -
test_free_tier_limit_enforcement (10 articles) -
test_can_submit_blocks_at_limit - test_paid_tier_unlimited
- Billing.can_submit() now properly enforces 10 article limit
for free tier - Usage tracking via user_episodes.added_at ensures
accurate billing
Completes t-144eKR1
|
|
- Added Core.Database.get_metrics_summary() for aggregate stats -
Added Core.Database.get_episode_metric_events() for raw event data -
Created MetricsDashboard component with summary cards and top episodes
tables - Added /admin/metrics route with admin authentication -
Added metrics link to admin dropdown menu - Added comprehensive tests
for metrics functionality - Fixed type errors in Admin.py by adding
MetricCardAttrs - All tests passing (48 tests total in Web.py) -
Completed epic t-ga8V8O (24/24 tasks)
|
|
- Enhanced Worker.py to extract publication date and author from
articles - Added intro TTS with metadata (title, author, publication
date) - Added outro TTS with attribution - Combined intro, pauses,
content, and outro in Worker.py - Added comprehensive tests for public
feed, deduplication, metrics, and intro/outro
All tests passing (Worker: 30 tests, Web: 43 tests)
Tasks completed: - t-gcNemK: Extract metadata in Worker.py - t-gcPraJ:
Add intro TTS generation - t-gcRCzw: Add outro TTS generation -
t-gcTPQn: Combine audio segments - t-gcW6zN: Tests for public feed
- t-gdlWtu: Tests for deduplication - t-gdoeYo: Tests for metrics
tracking - t-gdqsl7: Tests for audio intro/outro
|
|
The issue was that bild --plan outputs progress indicators before the
JSON, causing jq to fail parsing. Fixed by: - Using grep to extract
only lines starting with '{' (the JSON output) - This filters out
progress lines like '[…] target' - Restored typecheck.sh to use
repl.sh for proper environment setup
Now typecheck.sh correctly provisions the environment via repl.sh
instead of trying to use bild or raw python.
|
|
- Episode pages now show 'Add to feed' button for logged-in users
who don't have the episode - Added POST /episode/{id}/add-to-feed
endpoint - Tracks 'added' metric when user adds episode to their feed -
Added Database.track_episode_metric() function for metrics tracking -
Fixed typecheck.sh to use bild instead of broken repl.sh approach
Tasks completed: t-gc9aud, t-gcbqDl
|
|
- Add /public route showing public episodes - Add /public.rss RSS
feed for public episodes - Update home page to show public feed when
not logged in - Use user_episodes junction table instead of user_id
filtering - All tests passing
|
|
- Check for existing episodes by URL hash before processing - Reuse
existing episodes when user submits duplicate URL - Add episode
to user's feed if they don't have it - Track 'added' metrics when
episode added to feed - Worker now creates user_episodes link and
tracks metrics - Show appropriate messages for already-in-feed vs
newly-added episodes
|
|
- Add is_public column to episodes table - Add user_episodes
junction table for many-to-many relationship - Add episode_metrics
table for tracking engagement - Add original_url_hash column for
deduplication - Add Core.py functions for public episodes (mark_public,
get_public_episodes) - Add Core.py functions for user_episodes
(add_episode_to_user, user_has_episode, get_user_episodes) -
Add Core.py functions for metrics tracking (track_episode_event,
get_episode_metrics) - Add URL normalization and hashing utilities -
All tests passing
|
|
- Add ansi-terminal to ghcPackageSetBild dependencies - Add
Omni/Log/Concurrent.hs to source fileset - Fix unused mLineNum warning
in buildTarget - Alphabetize deps list (hostname moved up)
Parallel builds now fully functional with proper Nix dependencies.
|
|
Updated PARALLEL_BUILDS_PLAN.md with: - Implementation status (all
phases complete) - Global state approach details - Testing results -
Future enhancement ideas
Task: t-1a1ELGl, Epic: t-19ZF6A8 (complete)
|
|
- Fix BuildStatus to use newtype with single field - Clean up unused
imports and fields - logs function now uses updateCurrentLine
for LineManager support - Fallback to single-line output when no
LineManager
All tests passing. Ready to test with different terminal types.
Tasks: t-1a1Eiay
|
|
- Add global IORef for currentLineManager and namespaceLines
mapping - Update logs function to use LogC.updateCurrentLine -
Add updateCurrentLine and releaseCurrentLine helpers - Fallback to
normal printing when no LineManager active - Simplify buildTarget to
use global helpers instead of threading
Tasks: t-1a1EaJy
|
|
- Reserve line for each concurrent build - Release line on completion
with success/failed state - Fix hlint eta reduce warning
Task: t-1a1E3j1
|
|
- Implement LineManager abstraction with IORef state - Line
reservation/update/release functions - ANSI cursor positioning for
concurrent updates - Terminal capability detection (ANSI vs dumb) -
Graceful fallback for non-ANSI terminals
Tasks: t-1a1DzES, t-1a1DGY0, t-1a1DOev, t-1a1DVM5
|
|
- Add mapConcurrentlyBounded using QSemN for bounded parallelism -
Refactor build function to extract buildTarget worker - Build up to
--jobs targets concurrently - Preserves all existing functionality -
Output will be interleaved (will fix with LineManager next)
Related tasks: - t-1a0OVBs: mapConcurrentlyBounded helper - t-1a16ame:
refactor build function - t-1a1DdSB: replace forM with concurrent map
|
|
Change 'Manage Subscription' from HTMX link to regular form POST.
HTMX AJAX requests can't follow redirects to external domains like
Stripe.
|
|
- Remove user-facing error messages for portal configuration -
Just log the error server-side and return 500 status - Use Bootstrap
card-header class for proper padding on section headers - This fixes
icons touching the card borders
Portal errors will now be logged but won't break the UI.
Amp-Thread-ID:
https://ampcode.com/threads/T-8edacbeb-b343-49ca-b524-1c999272acb6
Co-authored-by: Amp <amp@ampcode.com>
|
|
- Catch Stripe exceptions when portal not configured - Redirect to
account page with user-friendly error message - Display error alert
on account page when present - Change portal return URL to /account
instead of /
Fixes issue when Stripe billing portal settings haven't been configured
in test/production dashboard.
Amp-Thread-ID:
https://ampcode.com/threads/T-8edacbeb-b343-49ca-b524-1c999272acb6
Co-authored-by: Amp <amp@ampcode.com>
|