dfadd27
refactor: Remove unused handlers file
Amolith created
dfadd27
refactor: Remove unused handlers file
Amolith created
3c552c7
refactor: Move general tools code from handlers.go to tools.go
Amolith created
e1c3848
refactor: Split tools handlers into separate files
Amolith created
9830322
refactor: Split main.go into cmd/main.go and tools/handlers.go
Amolith created
bdda7df
refactor: change task priority to string enum in task update tool
Updates the task priority argument to accept string values ("lowest", "low",
"neutral", "high", "highest") instead of a number range (-2 to 2). This improves
clarity and user experience. The internal representation remains an integer.
Amolith created
e034862
docs: update note
Amolith created
5c6045f
docs: correct git command
Amolith created
d3b1408
docs: update collaboration instructions
Improve the explanation of the patch request workflow and add a link to the pico.sh patch request homepage for further details.
Amolith created
a904ece
docs: improve pr section
Amolith created
a8cd388
docs: add collaboration section
Amolith created
d774a29
refactor(mcp): Change priority field to string enum
Update the 'priority' field in the MCP schema from a number between -2 and 2 to a string enum with values like 'lowest', 'low', and 'highest'. This provides a more descriptive way to specify task priority. Translate the string input to the corresponding integer value before processing the task creation.
Amolith created
96d703c
docs(rules): add development guidelines
The new `.rules` file outlines a standardized process for LLMs to follow after completing requests. This includes checking project diagnostics and running automated checks to ensure code quality and consistency.
Amolith created
c4cfdd8
refactor(habits): make PerformedOn datetime format explicit
Explicitly set the `PerformedOn` field's datetime validation format in `TrackHabitActivityRequest` to `2006-01-02T15:04:05Z07:00` (RFC3339). This change replaces the generic `datetime` validator tag to improve code clarity and ensure the expected input format is self-documenting. It assumes the previous default validation behavior was already RFC3339, so no functional change to validation logic is intended.
Amolith created
c3a86e4
feat(habits)!: enhance habit tracking with consolidated tools
Introduces a more robust mechanism for tracking habits and activities. This change renames the configuration key for habits and updates the LLM tools for better interaction and functionality. The `Config.Habits` field in `config.toml` has been renamed to `Config.Habit` for consistency and to support these enhancements. The `list_habits` tool has been removed. It is replaced by the new `list_habits_and_activities` tool. This tool lists habits and their IDs, enabling the LLM to better identify entries for tracking or marking completion via the `track_habit_activity` tool. The description for `track_habit_activity` has also been updated. The prompt guidance in `README.md` is updated to leverage these changes, instructing the LLM to use `list_habits_and_activities` to find relevant habits when a user indicates completion of a task without other context. BREAKING CHANGE: - The configuration field `Habits` in `config.toml` has been renamed to `Habit`. Users must update their configuration files: e.g., `Habits = [...]` should become `Habit = [...]`. - The LLM tool `list_habits` has been removed and is superseded by `list_habits_and_activities`. LLM prompts or integrations relying on the `list_habits` tool must be updated.
Amolith created
88f65c4
feat(habits)!: add habit tracking and listing capabilities
This commit introduces functionality to track and list habits via the Lunatask API and new MCP tools. Key changes include: - `lunatask.TrackHabitActivity`: New client method and associated types for tracking habit completions. Includes request validation. - `list_habits` MCP tool: Lists configured habits and their IDs. - `track_habit_activity` MCP tool: Allows tracking of habit activity using a habit ID and a timestamp (obtained via `get_timestamp`). - Configuration: Added `Habits` section to `config.toml` for defining habits. Tooling improvements: - Renamed `get_task_timestamp` MCP tool to `get_timestamp`. - Clarified descriptions for parameters in `create_task` and `update_task` MCP tools. BREAKING CHANGE: The MCP tool `get_task_timestamp` has been renamed to `get_timestamp`. Clients using the old tool name need to reload their integration.
Amolith created
69bc180
refactor: Move Client and NewClient to client.go
Amolith created
5c18f05
feat(task): implement task deletion capability
This commit introduces the functionality to delete tasks. It adds a `DeleteTask` method to the Lunatask client, along with a `DeleteTaskResponse` struct, enabling interaction with the Lunatask API's task deletion endpoint. Additionally, a new `delete_task` tool and its corresponding `handleDeleteTask` handler are integrated into the MCP server, exposing this new capability.
Amolith created
14daf9a
feat: Make task name required for update tool and validation
Amolith created
d93c6da
refactor: Remove empty if block in handleUpdateTask
Amolith created
61c437b
feat: Add update_task tool and Lunatask client method
Amolith created
c37f3bf
refactor(tasks)!: add task DTOs, enforce UUIDs for IDs
Introduces `Task` and `Source` data transfer objects (DTOs) for representing task-related data, primarily for API responses. Validation for `CreateTaskRequest` has been updated: - `AreaID` validation now enforces `uuid4` format if the field is present. - `GoalID` validation now enforces `uuid4` format if the field is present. BREAKING CHANGE: The `AreaID` and `GoalID` fields in the `CreateTaskRequest` must now be valid UUIDv4 strings if provided. Previously, these fields might have accepted non-UUID strings or had less strict validation. Clients sending requests to create tasks must ensure these IDs conform to the UUIDv4 format to avoid validation errors.
Amolith created
97fdaf5
refactor(lunatask): introduce client for task creation
Amolith created
59860b6
chore: bump deps
Amolith created
cc3952c
feat: Start new lunatask package
Amolith created
928c6b1
chore(docs): correct typo
Amolith created
67ac19e
docs: expand user-provided instructions, more strongly encourage adherence
Amolith created
ed6422d
docs: update system prompt
- Don't correct yourself with confirmation - Mention priority options (it was thinking "top" = 10 even though tool desc says -2 - 2). - Explicitly tell it to intuit intent a bit - Add user_provided_content block
Amolith created
b969e9e
chore(justfile): revise versioning logic
Amolith created
83f99b3
chore(justfile): remove brute pack option, reduce pack verbosity
Amolith created
2e8656e
docs: mention `just build pack`
Amolith created
35943c1
feat: add task priority, motivation, and status fields
Add new fields for task priority, motivation, and status to the MCP server configuration. Include validation for each field to ensure correct values are provided. - Priority: integer between -2 and 2 (inclusive). - Motivation: string, must be one of 'must', 'should', or 'want'. Unknown is allowed, but I don't see a reason to include that yet. - Status: string, must be one of 'later', 'next', 'started', 'waiting', or 'completed'. - Include further validation details for the LLM.
Amolith created
dcd1e79
style: use switch instead of if-else for arg parsing
Amolith created
6bb0b69
docs: mention just and upx in readme
Amolith created
a92c068
feat(justfile): add run and pack recipes
pack recipe requires upx
Amolith created
e9f577d
feat: print version
Only works if you build with (a command similar to) the command in the build task of the justfile.
Amolith created
f027ad7
feat: support cross-compilation in justfile
Amolith created
0fd03f8
chore: resolve various linter reports
- Return lowercase error messages - Add helper functions to handle closing HTTP response bodies and files instead of just deferring and not handling errors.
Amolith created
a381c89
feat: add justfile
Amolith created
2999e98
chore: bump deps
Amolith created
bed2d08
feat: support specifying timezone
Add timezone configuration and validation to ensure the configured timezone is valid on startup and during task creation. This includes adding a new `Timezone` field to the `Config` struct and implementing a `loadLocation` function to validate the timezone. This change also updates the `handleCreateTask` function to use the configured timezone when parsing natural language dates. Additionally, the default configuration file creation has been updated to include the `Timezone` field with a default value of "UTC". BREAKING CHANGE: The `Timezone` field must be set in the configuration file. If not set, the application will fail to start.
Amolith created
ea9ebb3
chore: add licensing
Amolith created
c87eb8e
chore: ignore binary
Amolith created
a6b6fb6
docs: add readme
Amolith created
8ad1b06
chore: improve error handling and config file creation in main.go
Improve error handling in handleCreateTask function by logging the API response body when an error occurs. Update the success message to include the task ID. Modify the createDefaultConfigFile function to use os.OpenFile instead of os.Create for better file handling.
Amolith created
3926843
feat: add goals to areas and update task creation
add goals to areas and update task creation logic to include goal validation - remove unused list_areas and list_goals tools - update create_task tool to validate goal_id against area - update get_date_for_task tool to get_task_timestamp - add list_areas_and_goals tool to list areas and goals
Amolith created
7a957fa
chore: add config.toml to .gitignore
Amolith created
ed5c9b0
feat: add new tools for listing areas and goals
Add new tools to the MCP server for listing areas and their IDs, and listing goals and their IDs. Update the LunataskCreateTaskRequest struct to include validation rules and default values for the AreaID field. - Adds a new tool "list_areas" to the MCP server. - Adds a new tool "list_goals" to the MCP server. - Updates the LunataskCreateTaskRequest struct to include validation rules and default values for the AreaID field.
Amolith created
245f27b
chore(gitignore): add one
Amolith created
f8fe125
refactor(main): enhance task creation and configuration
- added support for goals in task creation - introduced server configuration in config - improved validation and error handling - added default config generation on startup if config is missing - updated task creation tool to include more parameters - refactored task creation logic for better structure and readability
Amolith created
8dcbbbf
refactor: update Config to use Area struct and validate areas
Amolith created