Skip to content

Remove meeting category and slot kind from task/schedule system#268

Open
masa10-f wants to merge 1 commit into
mainfrom
claude/remove-meeting-feature-hk4Gb
Open

Remove meeting category and slot kind from task/schedule system#268
masa10-f wants to merge 1 commit into
mainfrom
claude/remove-meeting-feature-hk4Gb

Conversation

@masa10-f
Copy link
Copy Markdown
Owner

@masa10-f masa10-f commented Feb 3, 2026

Description

This PR removes the "meeting" category from the weekly recurring task system and the "meeting" slot kind from the schedule/time slot system. The changes consolidate task categorization by removing the dedicated meeting category and updating related UI components and type definitions accordingly.

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 📚 Documentation update
  • 🎨 Code style/formatting (no functional changes)
  • ♻️ Refactoring (no functional changes, improved code structure)
  • ⚡ Performance improvement
  • ✅ Test update (adding or updating tests)
  • 🔧 Configuration/Build changes

Changes Made

Backend Changes

  • Removed MEETING = "meeting" enum value from TaskCategory in models.py
  • Updated TimeSlotSchema field description to remove "meeting" from the list of valid slot kinds
  • Updated test data to use TaskCategory.REVIEW instead of TaskCategory.MEETING
  • Updated test cases to use TaskCategory.ADMIN instead of TaskCategory.MEETING for filtering tests
  • Updated test assertions and variable names to reflect the category changes

Frontend Changes

  • Removed "meeting" color mapping from getCategoryColor() in ai-planning/page.tsx
  • Removed "meeting" color mapping from getCategoryColor() in weekly-tasks/page.tsx
  • Added new color mappings for "maintenance" and "review" categories in weekly-tasks/page.tsx
  • Updated SlotKind type definition in schedule.ts to remove 'meeting' option
  • Removed "meeting" from slotKindLabels and slotKindColors constants
  • Updated fallback slot kind from 'meeting' to 'light_work' in getSlotKindLabel() and getSlotKindColor() functions
  • Updated TimeSlot interface in ai-planning.ts to remove 'meeting' from the kind union type

Related Issues

Closes #

Testing

Test Cases

  • Unit tests pass
  • Integration tests pass
  • Manual testing completed
  • No TypeScript errors
  • No linting errors
  • No Python type errors (mypy)

Test Coverage

  • Updated tests for weekly recurring task creation with new category
  • Updated tests for category filtering to use ADMIN instead of MEETING
  • Updated test data to reflect removed MEETING category

Breaking Changes

  • Breaking changes (describe below)

Details:

  • The MEETING enum value has been removed from TaskCategory. Any existing code or data using TaskCategory.MEETING will need to be migrated to use alternative categories (e.g., ADMIN, REVIEW).
  • The 'meeting' slot kind has been removed from the SlotKind type. Any time slots previously using kind: 'meeting' should be updated to use 'light_work' or another appropriate kind.
  • API consumers expecting "meeting" as a valid category or slot kind will need to update their implementations.

Deployment Notes

  • Requires database migration (describe below)

Details:

  • Existing weekly recurring tasks with category = 'meeting' should be migrated to an appropriate alternative category (recommend 'admin' or 'review' based on context).
  • Existing time slots with kind = 'meeting' should be migrated to 'light_work' or another appropriate kind.

Documentation

  • Code is self-documenting with clear variable/function names
  • Updated API documentation (field descriptions in schema)
  • No documentation changes needed

Checklist

  • My code follows the project's style guidelines (Prettier, ESLint, Ruff)
  • I have performed a self-review of my own code

https://claude.ai/code/session_01Cghpa5Bg6ZNPhwzmL4xS9G

#267)

Remove the unused "meeting" value from type definitions across the codebase:

Backend changes:
- Remove MEETING from TaskCategory enum
- Remove meeting from TimeSlotSchema description

Frontend changes:
- Remove meeting from SlotKind type and related labels/colors
- Remove meeting from TimeSlot.kind type
- Remove meeting from getCategoryColor functions
- Update fallback from meeting to light_work in schedule.ts

Test changes:
- Update tests to use ADMIN/REVIEW instead of MEETING category

This consolidates the work type definitions and removes the meeting
option since meetings are not included in the project workflow.

https://claude.ai/code/session_01Cghpa5Bg6ZNPhwzmL4xS9G
Copilot AI review requested due to automatic review settings February 3, 2026 03:32
@vercel
Copy link
Copy Markdown

vercel Bot commented Feb 3, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
human-compiler Ready Ready Preview, Comment Feb 3, 2026 3:32am

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the dedicated “meeting” category from weekly recurring tasks and the “meeting” slot kind from the scheduling system, updating backend enums, schemas, frontend types, and UI mappings to align with the new category model.

Changes:

  • Backend: Removed TaskCategory.MEETING, updated TimeSlotSchema.kind description, and refactored tests to use ADMIN/REVIEW categories instead of MEETING.
  • Frontend: Removed 'meeting' from SlotKind, slotKindLabels, slotKindColors, and all category color maps; added color mappings for new maintenance and review categories and adjusted fallbacks to 'light_work'.
  • Type alignment: Synced frontend TimeSlot/SlotKind unions with the backend’s documented slot kinds (study, focused_work, light_work).

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
apps/web/src/types/ai-planning.ts Aligns the TimeSlot.kind union with the remaining valid slot kinds, removing 'meeting' from the type surface used by AI planning.
apps/web/src/constants/schedule.ts Removes 'meeting' from the SlotKind type and related label/color maps, and updates logging/fallback behavior to default to 'light_work'.
apps/web/src/app/weekly-tasks/page.tsx Drops the meeting category color and adds color mappings for maintenance and review so the UI reflects the expanded backend categories.
apps/web/src/app/ai-planning/page.tsx Removes the obsolete meeting category color entry to match the updated TaskCategory enum.
apps/api/src/humancompiler_api/models.py Removes the MEETING member from TaskCategory and updates the TimeSlotSchema.kind field description to no longer advertise meeting as a valid value.
apps/api/tests/test_weekly_recurring_tasks.py Updates fixtures and filter tests to use REVIEW and ADMIN instead of MEETING, but still contains one remaining test case (test_weekly_recurring_task_api_endpoints) that uses TaskCategory.MEETING, which will now fail because that enum member no longer exists.

Notable issue (blocking):

  • In apps/api/tests/test_weekly_recurring_tasks.py, test_weekly_recurring_task_api_endpoints still sets "category": TaskCategory.MEETING, but TaskCategory.MEETING has been removed from TaskCategory. This will break the test suite and should be updated to a valid category such as TaskCategory.ADMIN or TaskCategory.REVIEW (and, optionally, adjust the test title/description strings if you no longer want them to describe a meeting).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"""Test getting weekly recurring tasks with filters."""
# Create tasks with different categories and statuses
active_meeting_task = weekly_recurring_task_service.create_weekly_recurring_task(
active_admin_task = weekly_recurring_task_service.create_weekly_recurring_task(
Copy link

Copilot AI Feb 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Variable active_admin_task is not used.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cd55eed485

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 48 to 53
class TaskCategory(str, Enum):
"""Weekly recurring task category enum"""

MEETING = "meeting"
STUDY = "study"
EXERCISE = "exercise"
HOBBY = "hobby"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add migration/backfill for removed TaskCategory

Removing the MEETING enum value from TaskCategory means any existing DB rows with category='meeting' will fail to hydrate through SQLAlchemy’s enum mapping (the category fields in models.py use SQLEnum(TaskCategory, ...)). In deployments with historical meeting tasks, reads (e.g., weekly recurring task listings) will raise a LookupError/validation error and 500. The commit doesn’t include a migration/backfill to rewrite existing rows, so this breaks existing data unless handled elsewhere.

Useful? React with 👍 / 👎.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Feb 3, 2026

🚀 Preview Environment Deployed!

📡 API: https://humancompiler-api-masa-preview.fly.dev
📊 Docs: https://humancompiler-api-masa-preview.fly.dev/docs
🏥 Health: https://humancompiler-api-masa-preview.fly.dev/health

This preview will auto-scale to zero after 5 minutes of inactivity to save costs.

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.

3 participants