Commit Graph

157 Commits

Author SHA1 Message Date
Ralph Khreish
0e908be43a fix: improve branch naming logic for workflow commands (#1491) 2025-12-07 19:04:40 +01:00
Ralph Khreish
bf4515b6de feat: change default MCP tool tier from 'all' to 'core' (#1490) 2025-12-06 14:08:44 +01:00
Ralph Khreish
b0199f1cfa fix: improve auth-related error handling (#1477) 2025-12-04 18:12:59 +01:00
github-actions[bot]
dcb26ef2db chore: rc version bump 2025-12-03 22:11:09 +00:00
Ralph Khreish
523f4bdb71 fix: increase brief-selection page size (#1478) 2025-12-03 14:34:38 +01:00
github-actions[bot]
82761749b5 Version Packages (#1469) 2025-12-02 22:00:04 +01:00
Eyal Toledano
ff601e1f3b style: formatting fixes in auth-guard.ts 2025-12-02 12:25:40 -05:00
Eyal Toledano
9e0e9b02a3 refactor(auth): rename forcePrompt to forceSelection and fix AuthManager type
CHANGES:
- Rename forcePrompt option to forceSelection in EnsureOrgOptions interface
- Update all call sites in export.command.ts and commands.js
- Fix AuthManager type in export.command.ts by importing from @tm/core
- Replace dirty (this.taskMasterCore.auth as any).authManager hack with AuthManager.getInstance()
- Use type import for AuthManager in org-selection.ts
2025-12-02 12:22:36 -05:00
Eyal Toledano
f04a568de0 feat(auth): force org selection in parse-prd and export commands
CHANGES:
- Add forcePrompt option to ensureOrgSelected utility
- When forcePrompt=true, always fetch orgs and prompt (if >1 org exists)
- Pre-select current org in dropdown when forcePrompt is used
- Show '(current)' label next to currently selected org in prompt

PARSE-PRD:
- Force org selection after authentication (forcePrompt: true)
- User can choose which org to create the brief in
- Auto-selects if only one org available

EXPORT:
- Force org selection after tag selection (forcePrompt: true)
- User can choose which org to export to
- Auto-selects if only one org available

INIT:
- Removed process.exit(0) hack that was incorrectly added

This ensures users explicitly choose (or confirm) their target organization
before creating briefs, preventing accidental exports to wrong orgs.
2025-12-02 12:06:23 -05:00
Eyal Toledano
985b6e16fa fix(auth): enforce org selection post-login and remove duplicate success messages
CHANGES:
- Add ensureOrgSelected to auth-guard.ts for all auth flows (existing & new sessions)
- Add ensureOrgSelected to parse-prd flow in commands.js (after authentication) -- NOT WORKING.
- Add ensureOrgSelected to init.js cloud storage flow (using shared utility)
- Remove duplicate 'Authentication successful!' boxen messages (auth.command.ts, auth-guard.ts)
- Export authenticateWithBrowserMFA and ensureOrgSelected from @tm/cli utils
- init.js now uses shared authenticateWithBrowserMFA instead of custom OAuth flow
- auth-guard.ts now checks context.orgId before making API calls (optimization)

FIXES:
- Org selection now happens after login in parse-prd, init, and export commands
- Single source of truth for browser auth with MFA support
- Removed redundant auth UI code from init.js

KNOWN ISSUES:
- tm init and tm export may hang after completion (Supabase auto-refresh timer)
- Root cause: AuthManager/Supabase client keeps event loop alive
- tm auth login works because it uses setupContextInteractive from ContextCommand
- Proper fix would be to add cleanup method to SupabaseAuthClient to stop auto-refresh
- Workaround (process.exit) was attempted but reverted as too dirty

The hanging issue requires further investigation into how auth login handles
cleanup vs how ensureAuthenticated/ensureOrgSelected interact with Supabase.
2025-12-02 11:42:32 -05:00
Eyal Toledano
3038fa42a0 fix(auth): unify browser auth with MFA across all login paths
- Create shared authenticateWithBrowserMFA utility in auth-ui.ts
- Update auth.command.ts to use shared utility for tm auth login
- Update auth-guard.ts to use shared utility for parse-prd/export
- Fix oauth-service.ts to NOT call onError for MFA_REQUIRED
  (MFA requirement is a continuation, not a failure)

All login paths now use the same MFA-aware browser auth flow:
- tm auth login
- tm parse-prd (Bring it to Hamster)
- tm export
2025-12-01 21:21:10 -05:00
Eyal Toledano
edeeef4d92 fix(auth): improve org context handling and export invitation flow (#1472)
Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com>
2025-12-02 00:26:45 +01:00
Ralph Khreish
62d3cd30e4 fix: fix team invite flow (#1473) 2025-12-02 00:18:18 +01:00
Eyal Toledano
1dbf242ffd fix(auth): enforce MFA verification in OAuth browser login flow (#1470) 2025-12-01 23:02:31 +01:00
Ralph Khreish
d0be0dcfe2 Merge remote-tracking branch 'origin/main' into ralph/merge.from.main.0.36.0.p3 2025-12-01 20:36:30 +01:00
github-actions[bot]
fcfa623a22 chore: rc version bump 2025-11-30 18:43:19 +00:00
github-actions[bot]
61f33356ea chore: rc version bump 2025-11-30 11:37:44 +00:00
Eyal Toledano
4046b3ca44 feat: Hamster Integration - Cloud Storage, Sentry Telemetry, and Major CLI UX Improvements (#1452) 2025-11-30 12:35:49 +01:00
github-actions[bot]
30217ab22f Version Packages (#1458)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com>
2025-11-27 20:56:18 +01:00
github-actions[bot]
e8802ffc76 chore: rc version bump 2025-11-26 22:43:38 +00:00
Ralph Khreish
88d356817e fix: auth refresh issue (#1450) 2025-11-26 23:34:57 +01:00
Ralph Khreish
28fcc27411 feat: improve ham connection (#1451) 2025-11-26 23:20:44 +01:00
Ralph Khreish
77b3b7780d feat: improve tm auto-update display (#1444) 2025-11-25 21:23:00 +01:00
Ralph Khreish
2316e94b28 feat: reintroduce task-master generate command for task file generation (#1446) 2025-11-25 18:32:50 +01:00
Ralph Khreish
01d4d9930f chore: apply requested changes (#1442) 2025-11-24 23:00:13 +01:00
Ralph Khreish
0195feffee feat: enhance MFA retry logic with configurable options (#1441) 2025-11-24 21:53:14 +01:00
Ralph Khreish
af36d171c7 feat: implement MFA in taskmaster (#1438) 2025-11-24 20:51:47 +01:00
Ben Vargas
783398ecdf feat(gemini-cli): upgrade to native structured output support (#1437) 2025-11-24 18:56:18 +01:00
Ralph Khreish
522d9af580 Ralph/chore/fix.coderabbit.issues (#1432) 2025-11-21 12:40:46 +01:00
Ralph Khreish
e66150e91c chore: add integration tests to new cli and mcp (#1430) 2025-11-20 19:36:17 +01:00
Ralph Khreish
4049f34d5a feat: implement local-only command checkers for cli and mcp (#1426) 2025-11-19 22:08:04 +01:00
Ralph Khreish
9f7989ba4a Merge pull request #1412 from eyaltoledano/next (0.32.0) 2025-11-16 09:48:59 +01:00
Ralph Khreish
26f77c207b feat: sort briefs by updated at (#1409) 2025-11-15 12:15:07 +01:00
github-actions[bot]
fa2abcb697 Version Packages (#1383)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com>
2025-11-15 11:44:09 +01:00
github-actions[bot]
46609ed8ea chore: rc version bump 2025-11-14 20:21:01 +00:00
Ralph Khreish
6b44a96d9f feat: enable direct context selection and improve session reliability (#1402) 2025-11-14 20:52:52 +01:00
Ralph Khreish
10ec025581 fix: add --json back to tm list and tm show (#1408) 2025-11-14 19:52:53 +01:00
Ralph Khreish
9079d04179 feat: upgrade fastmcp to v3.20.1 with Zod v4 support (#1406)
Fixes #1404
2025-11-14 12:44:11 +01:00
Ben Coombs
da8ed6aa11 fix: Treat cancelled tasks as complete in statistics and dependencies (#1393)
* fix: treat cancelled tasks as complete in statistics and dependencies

Fixes #1392

## Changes

- Add TERMINAL_COMPLETE_STATUSES constant including 'done', 'completed', 'cancelled'
- Update calculateTaskStatistics() to include cancelled tasks in completion %
- Update calculateSubtaskStatistics() to include cancelled subtasks in completion %
- Update calculateDependencyStatistics() to treat cancelled tasks as satisfied dependencies
- Update findNextTask() to treat cancelled tasks as complete for dependency resolution

## Impact

- Dashboard now correctly shows 100% for projects with only done/cancelled tasks
- Tasks depending on cancelled tasks are no longer permanently blocked
- Dependency metrics accurately reflect project state

## Tests

- Added comprehensive test suite with RED-GREEN-REFACTOR approach
- 9 tests covering completion %, subtask %, and dependency resolution
- All tests pass after fixes applied

* style: apply biome formatting

* style: apply biome formatting to all files

* fix: display fraction should show all terminal complete tasks, not just done

Previously the completion percentage correctly counted cancelled tasks
as complete (e.g., 100% for 14 done + 1 cancelled), but the fraction
display used stats.done which only counted 'done' status, showing
"100% 14/15" instead of "100% 15/15".

Added completedCount field to TaskStatistics interface to track all
terminal complete tasks (done + completed + cancelled) and updated
display to use this field for accurate fraction representation.

Updates:
- TaskStatistics interface now includes completedCount field
- calculateTaskStatistics() sets completedCount for display
- calculateSubtaskStatistics() sets completedCount for display
- Display lines now use completedCount instead of done count
- Added completedCount assertions to all relevant tests

Related to #1392

* refactor: centralize terminal status logic in @tm/core

Following code review feedback, extracted TERMINAL_COMPLETE_STATUSES
and isTaskComplete() to @tm/core as single source of truth. This
prevents duplication and potential drift between CLI and MCP layers.

Changes:
- Added TERMINAL_COMPLETE_STATUSES constant to @tm/core constants
- Added isTaskComplete() helper function to @tm/core constants
- Updated dashboard.component.ts to import from tm-core via CLI util
- Updated list.command.ts to import from tm-core via CLI util
- Updated task-loader.service.ts to use shared isTaskComplete()
- Created CLI convenience re-export in utils/task-status.ts

Architecture:
- Business logic now lives in @tm/core (proper layer)
- CLI provides convenience re-exports for ergonomics
- MCP already delegates to @tm/core (no changes needed)

Addresses review comments from @Crunchyman-ralph on PR #1393

* fix: remove unused TaskStatus import in task-loader.service

TypeScript error: TaskStatus was imported but no longer used after
refactoring to use isTaskComplete() helper.

* fix: correct subtask display and progress bar for cancelled tasks

Fixed two display bugs identified by cursor bot:

1. Subtask completion display now shows completedCount instead of done
   - Before: "Completed: 3/4" (only counted done tasks)
   - After: "Completed: 4/4" (counts done + cancelled as terminal complete)

2. Progress bar no longer double-counts cancelled tasks
   - Before: Green section (completionPercentage) + gray cancelled section
   - After: Green section includes cancelled (as terminal complete status)
   - Removed separate cancelled section from progress bar
   - Updated section numbers in comments (2-6 instead of 2-7)

These changes ensure visual consistency with the fix that treats cancelled
tasks as terminal complete for percentage calculations and dependency resolution.

Fixes cursor bot comments on PR #1393

* style: run biome formatter

* fix: keep cancelled tasks visually distinct in progress bar

Per reviewer feedback from Crunchyman-ralph, cancelled tasks should remain
visible as a separate gray section in the progress bar for better visibility,
even though they count as complete for the percentage calculation.

Changes:
- Green section shows 'done' tasks only
- Gray section shows 'cancelled' tasks (visually distinct but terminal complete)
- completionPercentage still includes both done and cancelled (correct)
- This prevents double-counting while maintaining visual clarity

Addresses: https://github.com/eyaltoledano/claude-task-master/pull/1393#issuecomment-3517115852

* fix: add done property to StatusBreakdown interface

TypeScript error: StatusBreakdown interface was missing 'done' property
required by the progress bar visualization code.

* fix: Populate done field in calculateStatusBreakdown for progress bar

The calculateStatusBreakdown() function was missing the calculation for the
'done' field, causing statusBreakdown.done to always be undefined. This meant
the green section of the progress bar never rendered, making completed tasks
invisible in the visual representation.

Addresses cursor bot feedback on PR #1393.

---------

Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
2025-11-13 11:03:12 +01:00
Ben Coombs
ae4fbc03a4 docs: Recommend .md extension for PRD files (#1397)
* docs: Clarify Claude Code .claude configuration behavior and recommend .md for PRDs

This addresses two documentation improvements:

1. **Claude Code Configuration Behavior (#1180)**
   - Added comprehensive section explaining how Task Master interacts with Claude Code's .claude configuration
   - Clarified that Task Master only passes MCP config when claudeCode.mcpServers is configured
   - Documented precedence: explicit Task Master config vs Claude CLI defaults
   - Provided practical examples for different configuration scenarios
   - Added recommendations for deterministic vs. existing-setup workflows

2. **PRD File Extension Recommendation**
   - Updated all examples to use .md extension instead of .txt for PRD files
   - Added prominent note explaining benefits of .md: syntax highlighting, proper rendering, better collaboration
   - Updated directory structure diagrams and workflow examples
   - Clarified that both extensions work, but .md is recommended for editor support

Files modified:
- docs/examples/claude-code-usage.md: Added "Claude Code Configuration Behavior" section
- assets/AGENTS.md: Updated all PRD references to use .md, added PRD format note

Resolves: eyaltoledano/claude-task-master#1180

* chore: Add changeset and require changesets for PRs

- Added changeset for documentation updates (patch)
- Updated CLAUDE.md to require changesets for all PRs

* docs: Simplify PR to only recommend .md extension for PRDs

Based on feedback from @ben-vargas:

**Removed:**
- Changeset file (not needed for docs-only PR)
- Claude Code `.claude` configuration behavior documentation (will become stale when upgrading to ai-sdk-provider-claude-code v2.0.0+ which uses @anthropic-ai/claude-agent-sdk)

**Updated:**
- CLAUDE.md changeset guidelines: clarified changesets are only needed for code changes, not docs-only PRs

**Kept:**
- PRD file format recommendation: Updated all examples to use `.md` extension instead of `.txt` for better editor support, syntax highlighting, and rendering
- Added note explaining benefits of `.md` format

This keeps the PR focused on the non-controversial PRD format improvement and avoids documenting behavior that will soon change.

Addresses feedback in: #1180

* docs: Update apps/docs to recommend .md extension for PRD files

Applied the same PRD format recommendations to the user-facing documentation site:

- apps/docs/getting-started/quick-start/prd-quick.mdx:
  - Updated template references from .txt to .md
  - Added explanation of .md benefits in note box
  - Updated all command examples to use .md extension
  - Updated file naming examples

- apps/docs/capabilities/rpg-method.mdx:
  - Updated RPG template reference to .md
  - Updated standard template reference to .md
  - Updated parse-prd command examples
  - Updated workflow examples

Addresses @Crunchyman-ralph's request to update apps/docs

* refactor: Rename PRD template files from .txt to .md extension

Renamed actual template files to match documentation updates:
- .taskmaster/templates/example_prd.txt → example_prd.md
- .taskmaster/templates/example_prd_rpg.txt → example_prd_rpg.md

This ensures the actual files match what we're recommending in the documentation.

---------

Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
2025-11-13 11:02:48 +01:00
Ralph Khreish
c62cf845da fix: improve display of subtasks based on storageType (#1400) 2025-11-12 21:51:24 +01:00
Ralph Khreish
63134a222c feat: add tm tags command to remote (#1386)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-12 20:08:27 +01:00
Ben Coombs
9883e83b78 fix: Add emoji variant selector to all warning signs (#1396)
Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
2025-11-12 15:30:32 +01:00
Ben Coombs
37aee7809c fix: prioritize .taskmaster in parent directories over other project markers (#1351)
Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com>
Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
2025-11-12 14:13:06 +01:00
Ralph Khreish
c52f14abf3 chore: apply coderabbit requested changes 2025-11-01 15:19:22 +01:00
Ralph Khreish
5014ee3468 Merge remote-tracking branch 'origin/main' into ralph/chore/update.from.main.0.31.0.p1 2025-11-01 14:50:33 +01:00
Ralph Khreish
abf46b8087 fix: improve auto-update to happen before you execute a command (#1371) 2025-11-01 14:46:07 +01:00
Ralph Khreish
9c3b2737dd fix: add z.ai coding plan support (#1370) 2025-11-01 14:35:22 +01:00
github-actions[bot]
47c5b1e2ba Version Packages (#1367)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com>
2025-11-01 11:11:06 +01:00
github-actions[bot]
2f003c1cef chore: rc version bump 2025-10-31 22:49:44 +00:00