Skip to content

feat: remove auto-complete parent, add checklist support for sub-habits - #89

Merged
thomasluizon merged 1 commit into
mainfrom
feature/auto-log-prompt-subhabits-checklists
Mar 29, 2026
Merged

feat: remove auto-complete parent, add checklist support for sub-habits#89
thomasluizon merged 1 commit into
mainfrom
feature/auto-log-prompt-subhabits-checklists

Conversation

@thomasluizon

Copy link
Copy Markdown
Owner

Summary

  • Remove TryAutoCompleteParent from LogHabitCommand, BulkLogHabitsCommand, and BulkLogHabitsTool -- parent logging is now handled by a frontend prompt instead of silent server-side auto-completion
  • Remove TryUnlogParent from LogHabitCommand (reverse of auto-complete)
  • Add checklist_items to the sub_habits schema in CreateHabitTool so the AI can create sub-habits with checklists
  • Parse and pass checklistItems when creating sub-habits via AI chat

Test plan

  • Log all sub-habits of a parent -- parent should NOT auto-complete server-side
  • Unlog a sub-habit -- parent should NOT auto-unlog
  • Ask AI chat to create a parent with sub-habits that have checklists -- checklists should appear
  • Bulk log via AI chat -- no auto-complete parent behavior

Companion PR: thomasluizon/orbit-ui#149 (pending)

🤖 Generated with Claude Code

- Remove TryAutoCompleteParent from LogHabitCommand, BulkLogHabitsCommand, and BulkLogHabitsTool (parent logging now handled by frontend prompt)
- Remove TryUnlogParent from LogHabitCommand
- Add checklist_items to sub_habits schema in CreateHabitTool
- Parse and pass checklistItems when creating sub-habits via AI chat

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@thomasluizon
thomasluizon merged commit 11f3b3d into main Mar 29, 2026
2 checks passed
@thomasluizon
thomasluizon deleted the feature/auto-log-prompt-subhabits-checklists branch March 29, 2026 23:40
thomasluizon added a commit that referenced this pull request Jun 4, 2026
…iTools (#79) (#175)

MCP habit mutations now run through McpExecutorBridge -> IAgentOperationExecutor (Surface=Mcp), so they share the agent policy layer (read-only-credential denial, ownership pre-check, confirmation gating) and the AgentAuditLogs trail instead of calling IMediator.Send directly. Reads stay on MediatR. bulk_log_habits and bulk_skip_habits stay on MediatR because their MCP contract supports an explicit per-instance date the chat IAiTools do not model.

Authors the 6 previously-unbacked habit IAiTools (update_checklist, reorder_habits, move_habit_parent, link_goals_to_habit, bulk_create_habits, bulk_delete_habits), registers them in DI, and maps them in AgentCatalogService so the build-time catalog enforcement passes. Overlaps wave-2 #89, which needs the same 6 tools.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
thomasluizon added a commit that referenced this pull request Jun 5, 2026
…ve ordering (#185)

Bundles four correlated chat-agent changes:

- #83: tag chat tools (list/create/update/delete_tag) delegating to existing
  MediatR handlers, registered in DI and catalogued under tags.read/write/delete.
- #89: ReorderGoalsTool (mirrors ReorderHabitsTool) + unit tests for the new/write
  tag and goal tools; reorder_goals added to GoalsWrite.chatTools.
- #88: full executor routing — every mutating MCP method (GoalTools, TagTools,
  ProfileTools, NotificationTools, UserFactTools, SubscriptionTools) now routes
  through McpExecutorBridge → IAgentOperationExecutor for shared policy + audit,
  mapping mismatched methods to their consolidated chat ops. Hard cases routed too:
  assign_tags via a new tag_ids id-path on AssignTagsTool (id-based, replace-all,
  no auto-create; MCP id contract unchanged) and get_referral_code via a new
  GetReferralCodeTool + ReferralsWrite capability + WriteReferrals scope (added to
  ClaudeDefaultScopes). Destructive routed deletes (goal/tag/notification/user-fact)
  accept and forward a confirmation token. No mutating MCP method remains on direct
  MediatR. update_goal_progress widened to accept goal_id so its MCP method can route.
- #87: tool ordering is now data — int Order default-interface member on IAiTool
  (create_habit=0, create_sub_habit=1, assign_tags=2, default int.MaxValue); the
  hardcoded switch in ProcessUserChatCommand is replaced by the registry lookup.
  Adds Chat/Tools/README.md documenting the contract, Order, catalog invariant, and
  MCP-routing relationship.

Existing MCP toolset unit tests migrated to the executor-routed pattern.

Refs thomasluizon/orbit-ui-mobile#83, thomasluizon/orbit-ui-mobile#89,
thomasluizon/orbit-ui-mobile#88, thomasluizon/orbit-ui-mobile#87

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant