Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
163 commits
Select commit Hold shift + click to select a range
929274b
Upgrading pagy to version 43.4.2
spaquet Mar 22, 2026
e26f1dc
Feature: Make list/item/sublist generation fully domain-agnostic
spaquet Mar 22, 2026
f07c507
Fix template variable errors in planning state indicator and item gen…
spaquet Mar 22, 2026
55c0a9b
Fix: Avoid redundant complexity analysis - use first CombinedIntentCo…
spaquet Mar 22, 2026
8fc7f76
Add detailed logging to HierarchicalItemGenerator for debugging subli…
spaquet Mar 22, 2026
26b06b7
Fix: Generic subdivision generation - create sublists from ANY array …
spaquet Mar 22, 2026
688bc31
Debug: Add visibility checks to pre-creation form to diagnose display…
spaquet Mar 22, 2026
5ead647
Fix: HierarchicalItemGenerator now accesses parameters with string keys
spaquet Mar 22, 2026
15ceab8
Fix: Remove unsupported subdivision_type parameter from ItemGeneratio…
spaquet Mar 22, 2026
4d3320f
Fix: Pass parameters hash instead of PlanningContext object to ItemGe…
spaquet Mar 22, 2026
1ca8037
Feature: Context reuse with user choice - keep or clear planning context
spaquet Mar 22, 2026
460bcd3
Feature: /clear command and post-creation context buttons
spaquet Mar 22, 2026
4c17219
Add /clear command to chat suggestions popup
spaquet Mar 22, 2026
9196500
Refactor: Unified AI chat flow architecture - eliminate dual flows an…
spaquet Mar 23, 2026
797da2b
Fix RubyLLM migration errors: Chat enum type declaration and ChatUiCo…
spaquet Mar 23, 2026
ad2dc3c
Fix: Update build_context calls to build_ui_context after refactor
spaquet Mar 23, 2026
f66e027
Fix: Add /clear command to chat command palette
spaquet Mar 23, 2026
cd71719
Fix: Update planning_context reference in handle_clear_command
spaquet Mar 23, 2026
0d68c0c
Docs: Update CHAT_CONTEXT.md and CHAT_FLOW.md to reflect ChatContext …
spaquet Mar 23, 2026
a5aea3e
Docs: Update ITEM_GENERATION.md to reflect refactored call flow
spaquet Mar 23, 2026
b7a287e
Docs: Fix remaining references to outdated patterns in CHAT_CONTEXT.md
spaquet Mar 23, 2026
ded0981
Fix: Improve intent detection for list creation requests in CombinedI…
spaquet Mar 23, 2026
b66f18b
Fix: Add safety checks and logging for pre-creation planning answer p…
spaquet Mar 23, 2026
0edd3c3
Fix: Add safety checks to prevent JSON structures from being displaye…
spaquet Mar 23, 2026
80468d2
Docs & UI: Update terminology and version info after refactor
spaquet Mar 23, 2026
b85af52
Bumping to version 0.9.0
spaquet Mar 23, 2026
835e99e
Fix: Add missing intent_confidence column to ChatContext
spaquet Mar 23, 2026
72d3ec8
Update db/structure.sql after migration
spaquet Mar 23, 2026
1b9b556
Fix: Resolve ChatContext integration and simple list item generation
spaquet Mar 23, 2026
610efde
Upgrading ferrum and rubocop
spaquet Mar 23, 2026
fa65320
Fix: Resolve ChatContextHandler class name and add interactive contex…
spaquet Mar 23, 2026
bc77b66
Fix: Store parent_requirements in hierarchical_items instead of non-e…
spaquet Mar 23, 2026
4094252
Fix: Access parent_items from hierarchical_items in HierarchicalItemG…
spaquet Mar 23, 2026
9718641
Fix: Update PlanningContextAnalyzer to use hierarchical_items for par…
spaquet Mar 23, 2026
495a5e0
Fix: Show interactive context reuse buttons and handle completed cont…
spaquet Mar 23, 2026
d8e2465
Refactor: Use RubyLLM::Schema for guaranteed structured LLM output
spaquet Mar 23, 2026
e314914
Fix: Unify simple and complex list creation UX
spaquet Mar 23, 2026
6b3e561
Add: Generic clarifying questions form for any conversation context
spaquet Mar 23, 2026
08fdbdf
Feature: Auto-detect and display follow-up questions as forms
spaquet Mar 23, 2026
c17c4ab
Fix: Improve follow-up questions detection and LLM prompt formatting
spaquet Mar 23, 2026
6b0a120
Fix: Use structured JSON format for follow-up questions in responses
spaquet Mar 23, 2026
376bee8
Fix: Broadcast clarifying questions message via Turbo Stream
spaquet Mar 23, 2026
7d8ee69
Fix: Clarifying questions form not appearing in chat
spaquet Mar 23, 2026
2fc18c0
Improve: Response formatting and clarifying questions form UI
spaquet Mar 24, 2026
3f59384
Fix: Handle clarifying questions answer submission
spaquet Mar 24, 2026
e7b5893
Fix: Handle ActionController::Parameters in convert_answers_to_message
spaquet Mar 24, 2026
ec34b62
Improve: Preserve chat context and unify questions UI
spaquet Mar 24, 2026
25803b6
Fix: Correctly distinguish advisory questions from list creation
spaquet Mar 24, 2026
af3495c
Fix: Include questions in message context when submitting answers
spaquet Mar 24, 2026
05efce2
Fix: Handle unpermitted ActionController::Parameters in convert_answe…
spaquet Mar 24, 2026
5211a9e
Debug: Add console logging to trace question passing
spaquet Mar 24, 2026
2deed0b
Fix: Preserve original request context + add detailed logging
spaquet Mar 24, 2026
76e77c7
Adding FUNDING.yml file
spaquet Mar 24, 2026
c194c16
Upgrading to Rails 8.1.3
spaquet Mar 25, 2026
3915324
Feat: Implement complete AI Agents system with 4-scope access control
spaquet Mar 25, 2026
5bde139
Fixing the ai agent icon in the top navigation bar
spaquet Mar 25, 2026
152fdac
Fix AI Agent system and improve UX
spaquet Mar 25, 2026
d1f43c4
Working tests
spaquet Mar 25, 2026
e079153
Add comprehensive UI for AI Agent resources and parameters management
spaquet Mar 25, 2026
c3208d8
Fix parameters field handling for string/hash formats
spaquet Mar 25, 2026
cf69402
Gate resource edit/delete buttons by parent agent authorization
spaquet Mar 25, 2026
a49ce48
Fix resource delete button using correct Turbo confirmation
spaquet Mar 25, 2026
d68acfd
Add comprehensive AI Agents architecture documentation
spaquet Mar 25, 2026
23d37fc
New AI Agent documentation
spaquet Mar 25, 2026
90f66c7
Fix AiAgent.active scope error in AgentEventDispatchJob
spaquet Mar 26, 2026
043ec33
temp docs
spaquet Mar 26, 2026
b9ec700
fixing the svg diagrams
spaquet Mar 26, 2026
a335bd0
adding ai agent visual guide
spaquet Mar 26, 2026
9556d01
Renaming DOCUMENTATION_MAP.md to README.md
spaquet Mar 26, 2026
ad1e18d
refactor: migrate chat to agent-based orchestration and remove ChatCo…
spaquet Mar 26, 2026
76ad1c8
Fix test failures from ChatContext removal
spaquet Mar 26, 2026
ef79d58
Remove missing PreCreationPlanningController import
spaquet Mar 26, 2026
d3302e7
Phase 3: Complete agent-based list creation with full AiAgent wiring
spaquet Mar 26, 2026
2869ddb
Fix AiAgentRun enum method names in show view
spaquet Mar 26, 2026
945e9d8
Fix remaining AiAgentRun enum method names in agent views
spaquet Mar 26, 2026
5a98ac8
Fix result_summary reference in broadcast_list_created_to_chat
spaquet Mar 26, 2026
564ea08
Fix AgentContextBuilder to use prompt instead of non-existent persona…
spaquet Mar 26, 2026
e687425
Fix AiAgentRun enum method names - use status_ prefix for all enum pr…
spaquet Mar 26, 2026
e2821fe
Fix RubyLLM tools integration and AiAgentRunStep token recording
spaquet Mar 26, 2026
0bba417
WIP: Fix agent execution and begin RubyLLM tool integration
spaquet Mar 26, 2026
731338c
Implement RubyLLM::Tool subclasses - tool objects now properly recogn…
spaquet Mar 26, 2026
643648f
Fix List Creator agent to properly create lists and items
spaquet Mar 26, 2026
23e7817
Updates
spaquet Mar 26, 2026
a9b1c84
Complete agent system fixes and RubyLLM documentation
spaquet Mar 27, 2026
ae344b7
Fix HITL (ask_user) pausing in agent chat flow
spaquet Mar 27, 2026
a18a5e0
Add AI-generated follow-up options after list creation in chat
spaquet Mar 27, 2026
af19b9f
Upgrading pagy, bigdecimal, parser gems
spaquet Mar 27, 2026
d35783b
Upgrading positioning from version 0.4.7 to 0.4.8
spaquet Mar 30, 2026
ee76539
Upgrading prosemirror-transform to version 1.12.0
spaquet Mar 30, 2026
b98bbed
Updating gems and libs
spaquet Apr 2, 2026
3676fb8
Remove unused dependencies (lodash, prosemirror packages)
spaquet Apr 2, 2026
0d4bfa8
Updating dependencies
spaquet Apr 12, 2026
db29213
One step closer to ruby 4
spaquet Apr 26, 2026
7022d6c
aligning docker with ruby 4.0.3
spaquet Apr 26, 2026
7490a0e
Add AGENTS.md guide and update dependencies
spaquet Apr 26, 2026
a1e18d6
PHASE 1.1: Setup design system foundation (tokens + theme infrastruct…
spaquet Apr 26, 2026
6972044
PHASE 1.2: Update base styles with design system tokens
spaquet Apr 26, 2026
01c5c5d
PHASE 2: Update navigation with design system colors
spaquet Apr 26, 2026
a2efcca
PHASE 3: Add component library (cards, buttons, forms, alerts)
spaquet Apr 26, 2026
8defa86
PHASE 4: Update lists views with design system
spaquet Apr 26, 2026
54f42ea
Update progress summary: Phases 1-4 complete
spaquet Apr 26, 2026
3f951d3
Add comprehensive restart prompt with all design system context
spaquet Apr 26, 2026
10af895
PHASE 4.3: Update list show page and item rows with design system
spaquet Apr 26, 2026
6e87650
PHASE 4.4: Update list item editor modal with design system
spaquet Apr 26, 2026
e9f0f73
PHASE 4.5: Update quick add form and custom selects with design system
spaquet Apr 26, 2026
b7adec9
Update RESTART_PROMPT for Phase 5 (13 commits complete, ready to cont…
spaquet Apr 26, 2026
e6f620e
PHASE 5: Update search & filter component with design system
spaquet Apr 26, 2026
cd903f3
PHASE 5: Update team members search & message templates search results
spaquet Apr 26, 2026
dc1ea3b
PHASE 5: Update Google Drive files browser with design system
spaquet Apr 26, 2026
f1c88aa
Update RESTART_PROMPT: Phase 5 complete, ready for Phase 6
spaquet Apr 26, 2026
462e8e3
PHASE 6: AI Agent Runs & Chat Interface Design System Styling
spaquet Apr 26, 2026
f9dcd40
Update RESTART_PROMPT: Phase 6 complete, ready for Phase 7
spaquet Apr 26, 2026
68256a3
PHASE 7: Dashboard, Admin & Email Views - Design System Migration
spaquet Apr 26, 2026
f2d3e9b
PHASE 8.1: Add modal, toast, spinner, toggle, tabs, and alert-info co…
spaquet Apr 26, 2026
7012207
PHASE 8.2: Update flash messages and forms with design system tokens
spaquet Apr 26, 2026
b0e64bf
PHASE 8.2 (continued): Update team members form with design system
spaquet Apr 26, 2026
c7f9b0f
PHASE 8.2 (final): Update auth forms with design system
spaquet Apr 27, 2026
ea126bd
PHASE 8.3: Update loading states with design system spinners
spaquet Apr 27, 2026
f2a6dc8
Update RESTART_PROMPT: Phase 8 (95% complete) status
spaquet Apr 27, 2026
7b9d99a
Update RESTART_PROMPT: Phase 8 (95%) complete, ready for Phase 9
spaquet Apr 27, 2026
a7c2747
PHASE 8.4 (FINAL): Refactor 5 modals with design system
spaquet Apr 27, 2026
dea1da8
Update docs: Phase 8 complete (100%), ready for Phase 9 testing
spaquet Apr 27, 2026
d2db472
PHASE 10: Migrate all email mailers to design system
spaquet Apr 27, 2026
b833e86
Update RESTART_PROMPT: Phase 10 complete, Phase 11 ready
spaquet Apr 27, 2026
24c6e3f
PHASE 11.1: Admin dashboard styling with design system
spaquet Apr 27, 2026
6caf804
PHASE 11.2: Polish admin tables and audit displays
spaquet Apr 27, 2026
7fdf66a
Update all auth views to design system (login, signup, email verifica…
spaquet Apr 27, 2026
292bc7d
PHASE 11.3: Settings pages with design system components
spaquet Apr 27, 2026
989f5be
Fix missed invitations view - apply design system
spaquet Apr 27, 2026
c69095c
Apply design system to dashboard view and components
spaquet Apr 27, 2026
9d6cedc
Fix ERB syntax in filters and apply design system to AI agents browse
spaquet Apr 27, 2026
a8e5569
Register theme stimulus controller
spaquet Apr 27, 2026
1d0758f
Upgrading Puma to version 8.0.1
spaquet Apr 27, 2026
a688dd6
Apply design system to home page view
spaquet Apr 29, 2026
f3fbee7
Add theme toggle helpers to browser console
spaquet Apr 29, 2026
d576241
Simplify theme console helpers to use existing Stimulus controller
spaquet Apr 29, 2026
d97c9a8
Fix themeToggle console function to actually toggle
spaquet Apr 29, 2026
89895a9
Call actual Stimulus theme controller from console
spaquet Apr 29, 2026
c3faffe
Fix theme controller detection in console
spaquet Apr 29, 2026
dedf38b
Add debug logging for Stimulus controller detection
spaquet Apr 29, 2026
1ea01e9
Remove debug logging from theme console helpers
spaquet Apr 29, 2026
611431c
Improve primary button text contrast on hover
spaquet Apr 29, 2026
8b0b69d
Use btn-primary class for nav Get Started button
spaquet Apr 29, 2026
73dee5a
Fix duplicate htmlElement declaration on theme script
spaquet Apr 29, 2026
1fd8855
Update DEPENDENCIES.md with current gem and JS versions
spaquet Apr 29, 2026
62db14f
Fix duplicate stylesheet asset loading
spaquet Apr 29, 2026
b8a8996
Upgrade dashboard, kanban, and connector views to design system
spaquet Apr 29, 2026
cbec3f6
Upgrade AI agent show view to design system
spaquet Apr 29, 2026
bbd451c
Update remaining AI agent views to design system typography
spaquet Apr 29, 2026
6fa5eee
Fix ERB syntax error in invitations clear button class
spaquet Apr 29, 2026
f8b5adf
Fix ERB syntax by collapsing form_with to single line
spaquet Apr 29, 2026
67c688f
Fix ERB syntax by using form_with without output tag
spaquet Apr 29, 2026
a72a09a
Upgrade list creation/edit views to design system
spaquet Apr 29, 2026
f132502
Upgrade notifications dropdown and agent form tabs to design system
spaquet Apr 29, 2026
2ac92fc
Upgrade notifications index page to design system
spaquet Apr 29, 2026
f6036c6
Fix New List button text contrast on hover
spaquet Apr 29, 2026
558cafa
Fix profile edit routes
spaquet Apr 29, 2026
d95cfb2
Add changelog for version 0.9
spaquet Apr 29, 2026
b72aadc
Fix duplicate mailer spec key warning
spaquet Apr 29, 2026
2fdbcc6
Remove Sidekiq option from agent schedule job
spaquet Apr 29, 2026
386c410
Potential fix for pull request finding 'CodeQL / Insecure Mass Assign…
spaquet Apr 29, 2026
febfe07
Potential fix for pull request finding 'CodeQL / Insecure Mass Assign…
spaquet Apr 29, 2026
d7089b6
Potential fix for pull request finding 'CodeQL / Insecure Mass Assign…
spaquet Apr 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: spaquet
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ruby-3.4.4
ruby-4.0.3
212 changes: 212 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
# Listopia Codebase Guide for AI Coding Agents

This is the code base of the Listopia Ruby on Rails application.

## Architecture Overview

This is a Ruby on Rails application with the following structure:

- **app/models** - Active Record models
- **app/views** - View templates (ERB, etc.)
- **app/controllers** - Controllers
- **app/services** - Service objects for business logic
- **app/queries** - Query objects for complex queries
- **app/jobs** - Background jobs
- **app/policies** - Pundit authorization policies
- **config/** - Application configuration
- **docs/** - Detailed documentation

## Tech Stack

- **Database**: PostgreSQL only (no Redis)
- **CSS**: Tailwind CSS 4 with Bun
- **Pagination**: Pagy v43+ (uses `series_nav`, not `pagy_nav`)
- **Components**: ViewComponent for reusable view components
- **JavaScript**: Hotwire (Turbo Streams) preferred over Stimulus
- **Stimulus Controllers**: Plain JavaScript (no TypeScript)

### UI Guidelines

- Prefer Turbo Stream responses for reactive UI over custom JavaScript
- Use Stimulus only when Turbo can't solve the problem
- All Stimulus controllers are plain JavaScript in `app/javascript/controllers/`

## Testing Commands

This project uses **RSpec** for testing with Capybara.

### Running Tests

```bash
bundle exec rspec # Run all specs
bundle exec rspec spec/ # Run all specs
bundle exec rspec spec/models/ # Run model specs
bundle exec rspec spec/models/user_spec.rb
bundle exec rspec -e "test name" # Filter by spec name
```

### Running Specific Specs

```bash
bundle exec rspec spec/models/user_spec.rb:10 # Run specific spec at line 10
```

## Code Conventions

### Service Objects

Favor service objects when implementing CRUD and related operations so that the methods can be used by controllers, APIs, background jobs, and other service objects. Services inherit from `ApplicationService` and live in `app/services/`. Name with the operation (e.g., `CreateList`, `UpdateUser`, `Finder`).

```ruby
class MyService < ApplicationService
def call
# Return success(data: ...) or failure(errors: ...)
end
end
```

### Query Objects

Use query objects in `app/queries/` for complex database queries.

### Code Style

- Run RuboCop: `bundle exec rubocop` (there's a project-wide `.rubocop.yml`)
- Run Brakeman: `bundle exec brakeman` (security)
- Use `# frozen_string_literal: true` at top of all files

## Finding Related Code

- **Ruby LSP**: This project supports Ruby LSP for code navigation. Use your editor's LSP features for go-to-definition, find references, hover for type info, document symbols, and workspace symbols.
- **Models**: Look in `app/models/`
- **Services**: Check `app/services/` for business logic
- **Policies**: Check `app/policies/` for authorization
- **Queries**: Check `app/queries/` for complex queries
- **Configuration**: Check `config/` for application configuration

## Key Patterns

### Organization Scoping
```ruby
policy_scope(List) # Returns only user's org lists
current_organization.lists # Access through org
```

### Authorization
```ruby
authorize @list # Use Pundit on every action
```

### Turbo Stream Response
```erb
<%= turbo_stream.replace(@list) { render "list", list: @list } %>
```

## File Organization Principles

- `app/models` - Active Record models (UUID primary keys)
- `app/views` - View templates (ERB, etc.)
- `app/controllers` - Controllers
- `app/services` - Service objects (inherit ApplicationService)
- `app/queries` - Query objects for complex queries
- `app/jobs` - Background jobs
- `app/policies` - Pundit authorization policies
- `config/` - Application configuration
- `spec/` - Test files using RSpec with Factory Bot, Faker
- `docs/` - Detailed documentation
- `bin/` - Executable scripts (e.g., `bin/dev`)

## Documentation

- Detailed documentation is in `docs/` folder
- See `docs/README.md` for documentation index
- Key docs: ARCHITECTURE_GENERIC_DESIGN.md, CHAT_CONTEXT.md, ORGANIZATIONS_TEAMS.md, AUTHENTICATION.md, REAL_TIME.md
- API docs use standard Rails conventions

## Quick Setup

```bash
rails db:create db:migrate
bundle exec rspec
bun install && bun run build:css
```

## Common Issues

| Issue | Solution |
|-------|----------|
| N+1 Queries | Use `includes`, `preload`, or `joins` |
| Auth Failed | Call `authorize @resource` after load |
| Turbo not working | Respond with `format.turbo_stream` |
| Test DB issues | `RAILS_ENV=test rails db:reset` |
| No org selected | Select in nav bar; redirect if `Current.organization` nil |
| Cross-org data leak | Always scope queries with `organization_id`; use `Current.organization` |

## Behavioral Guidelines for Coding

Reduce common mistakes. Bias toward clarity over speed. For trivial tasks, use judgment.

### 1. Think Before Coding

Don't assume. Surface confusion and tradeoffs explicitly.

Before implementing:
- State assumptions clearly. If uncertain, ask.
- If multiple interpretations exist, present them—don't pick silently.
- If a simpler approach exists, say so. Push back when warranted.
- If something is unclear, stop. Name what's confusing and ask.

### 2. Simplicity First

Minimum code that solves the problem. Nothing speculative.

- No features beyond what was asked.
- No abstractions for single-use code.
- No "flexibility" or "configurability" that wasn't requested.
- No error handling for impossible scenarios.
- If you write 200 lines and it could be 50, rewrite it.
- **Test:** Would a senior engineer say this is overcomplicated? If yes, simplify.

### 3. Surgical Changes

Touch only what you must. Clean up only your own mess.

When editing existing code:
- Don't "improve" adjacent code, comments, or formatting.
- Don't refactor things that aren't broken.
- Match existing style, even if different approach preferred.
- If you notice unrelated dead code, mention it—don't delete it.

When your changes create orphans:
- Remove imports/variables/functions that **your** changes made unused.
- Don't remove pre-existing dead code unless asked.

**Test:** Every changed line traces directly to the user's request.

### 4. Goal-Driven Execution

Define success criteria. Loop until verified.

Transform tasks into verifiable goals:
- "Add validation" → Write tests for invalid inputs, then make them pass
- "Fix the bug" → Write a test that reproduces it, then make it pass
- "Refactor X" → Ensure tests pass before and after

For multi-step tasks, state a brief plan:
```
1. [Step] → verify: [check]
2. [Step] → verify: [check]
3. [Step] → verify: [check]
```

Strong success criteria enable independent looping. Weak criteria ("make it work") require constant clarification.

## Testing Strategy

- **RSpec** for unit and integration tests
- **Factory Bot** for test data
- **WebMock + VCR** for stubbing provider APIs
- **Pundit matchers** for authorization testing
- **Shoulda matchers** for model validations

Every service should have corresponding test exercising Result pattern (success and failure paths).
76 changes: 76 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Changelog

All notable changes to Listopia are documented in this file.

## [0.9.0] - 2026-04-29

### Highlights

- Introduced the new Listopia design system across the application, with semantic design tokens, reusable component classes, and full light/dark theme support.
- Added a persistent theme toggle backed by the new `theme` Stimulus controller and CSS variable-based Editorial/Console themes.
- Migrated major UI surfaces to the new design system, including navigation, dashboard, lists, list items, kanban, search/filtering, auth, settings, admin, notifications, invitations, AI agents, chat, connectors, modals, mailers, loading states, and shared components.
- Added modal, toast, spinner, toggle, tab, alert, card, button, form, pill, pagination, and theme-toggle primitives for reuse across views.
- Added fiber-capable Solid Queue support by using `solid_queue` from `https://github.com/crmne/solid_queue.git` on the `async-worker-execution-mode` branch.

### Added

- Complete AI Agents system with four-scope access control, agent resources, team memberships, runs, run steps, feedback, event triggers, scheduling hooks, token budgeting, and tool execution.
- Agent UI for browsing, creating, editing, running, and reviewing agents, including run progress, run result, status, and interaction partials.
- AI agent documentation and visual guides covering architecture, lifecycle, HITL flow, triggers, chat integration, and UI usage.
- Event system, audit trail, compliance report, and admin audit views.
- Calendar connector event sync, webhook subscriptions, conflict detection, attendee contact enrichment, people pages, and conflict UI.
- Recurring tasks with recurrence models, jobs, services, specs, and recurrence form fields.
- Generic clarifying-question and follow-up-question UI flows for chat and list creation.
- Context reuse flows after list creation, including buttons to keep or clear planning context.
- AI-generated follow-up options after list creation.
- Shared `AGENTS.md` guidance for coding agents and updated dependency documentation.

### Changed

- Upgraded to Rails 8.1.3 and Ruby 4.0.3.
- Upgraded Puma to 8.0.1.
- Upgraded Pagy to 43.4.2 and updated pagination integration.
- Updated current gem and JavaScript dependency documentation.
- Refactored chat orchestration toward a unified AI agent-based flow.
- Renamed and reorganized chat context concepts around `ChatUiContext`.
- Migrated mailer layouts and notification mailers to the design system.
- Updated Docker and CI/runtime dependency alignment.
- Removed unused JavaScript dependencies, including lodash and unused ProseMirror packages.

### Fixed

- Fixed profile edit route generation by posting the form to `profile_path` and sending Cancel back to `profile_path`.
- Fixed AI agent form tabs so fields render under the design-system `.tab-content.active` convention.
- Fixed invitations index ERB syntax and form rendering errors.
- Fixed list filter ERB syntax issues.
- Fixed duplicate stylesheet asset loading.
- Fixed duplicate `htmlElement` declaration in theme scripts.
- Fixed Stimulus theme controller registration and console theme toggle helpers.
- Fixed primary button and New List button text contrast on hover.
- Fixed AI agent active scope usage in `AgentEventDispatchJob`.
- Fixed AI agent run enum method names by using status-prefixed predicates.
- Fixed AgentContextBuilder field usage after schema changes.
- Fixed AI agent resource delete buttons to use the correct Turbo confirmation behavior.
- Fixed AI agent resource edit/delete authorization gates.
- Fixed AI agent parameter handling for both string and hash formats.
- Fixed RubyLLM tool integration so tool objects are recognized correctly.
- Fixed AiAgentRunStep token recording.
- Fixed HITL `ask_user` pausing in agent chat flow.
- Fixed List Creator agent behavior so it can create lists and items correctly.
- Fixed clarifying-question rendering, answer submission, Turbo Stream broadcasts, and parameter conversion.
- Fixed structured JSON follow-up question detection and prevented JSON payloads from leaking as user-visible messages.
- Fixed context reuse buttons and completed-context handling in chat.
- Fixed planning context references and hierarchy generation after chat-context refactors.
- Fixed generic subdivision generation so sublists can be created from arbitrary array data.
- Fixed redundant complexity analysis by reusing the first intent/complexity result.
- Fixed template variable errors in planning state and item generation progress views.
- Fixed unsupported or mismatched item-generation parameters.
- Fixed test failures from ChatContext removal.
- Fixed pre-creation planning controller import errors.
- Fixed recurring item background safety-net behavior.

### Removed

- Removed legacy list refinement services and specs replaced by the unified chat/list generation flow.
- Removed the old pre-creation planning JavaScript controller and obsolete planning partials.
- Removed outdated documentation files after migration into the refreshed docs structure.
Loading
Loading