diff --git a/.gitignore b/.gitignore index 55730ec..2eed6f2 100644 --- a/.gitignore +++ b/.gitignore @@ -66,4 +66,7 @@ ehthumbs.db # Coverage reports coverage/ -*.lcov \ No newline at end of file +*.lcov + +# AI Assistant metadata +.serena/ \ No newline at end of file diff --git a/.serena/cache/rust/document_symbols_cache_v23-06-25.pkl b/.serena/cache/rust/document_symbols_cache_v23-06-25.pkl deleted file mode 100644 index 78cb919..0000000 Binary files a/.serena/cache/rust/document_symbols_cache_v23-06-25.pkl and /dev/null differ diff --git a/.serena/memories/project_overview.md b/.serena/memories/project_overview.md deleted file mode 100644 index 2b1695b..0000000 --- a/.serena/memories/project_overview.md +++ /dev/null @@ -1,56 +0,0 @@ -# RTSDA Web Project Overview - -## Project Purpose -This is a church website project for Rockville Tolland Seventh-day Adventist Church, featuring: -- Event management and submission system -- Sermon archive and streaming -- Bulletin management -- Contact forms -- Admin interface - -## Tech Stack -- **Frontend**: Astro 5.13.0 with TailwindCSS -- **Backend**: Rust-based church-core library with NAPI-RS bindings -- **Architecture**: Hybrid - Astro frontend with Rust backend via native bindings -- **API**: External API at `https://api.rockvilletollandsda.church/api/` - -## Key Components -- `astro-church-website/` - Main Astro frontend -- `church-core/` - Rust backend library -- `axum-church-website/` - Alternative backend (Axum-based) - -## Project Structure -``` -/ -├── astro-church-website/ # Main Astro frontend -│ ├── src/ -│ │ ├── components/ # Reusable components -│ │ ├── layouts/ # Page layouts -│ │ ├── pages/ # Astro pages and API routes -│ │ │ ├── api/ # API endpoints -│ │ │ ├── events/ # Event-related pages -│ │ │ ├── admin/ # Admin interface -│ │ │ └── bulletin/ # Bulletin management -│ │ └── lib/ # Utilities and bindings -│ ├── package.json -│ ├── Cargo.toml # Rust dependencies for NAPI -│ └── build.rs # Build script -├── church-core/ # Rust backend library -└── axum-church-website/ # Alternative Axum backend -``` - -## Development Commands -- `npm run dev` - Start development server (localhost:4321) -- `npm run build` - Build production site (includes native build) -- `npm run build:native` - Build native Rust bindings only -- `npm run preview` - Preview built site - -## Key Features -1. **Event Submission Form** (`/events/submit`) - Users can submit events for approval -2. **Admin Interface** (`/admin`) - Event management and approval -3. **Bulletin Archive** (`/bulletin`) - Historical bulletins -4. **Live Streaming** (`/live`) - Church service streaming -5. **Sermon Archive** (`/sermons`) - Past sermons and audio - -## Known Issue -There's a database error when users select "2nd 3rd Saturday" in the recurring field of the event submission form, causing a 500 error. \ No newline at end of file diff --git a/.serena/memories/suggested_commands.md b/.serena/memories/suggested_commands.md deleted file mode 100644 index 834afa2..0000000 --- a/.serena/memories/suggested_commands.md +++ /dev/null @@ -1,71 +0,0 @@ -# Suggested Development Commands - -## Core Development Commands -```bash -# Install dependencies -npm install - -# Start development server -npm run dev # Starts at localhost:4321 - -# Build for production -npm run build # Includes native Rust build -npm run build:native # Build only Rust bindings -npm run preview # Preview production build - -# Astro CLI commands -npm run astro ... # Run any Astro CLI command -npm run astro -- --help # Get Astro CLI help -``` - -## System Utilities (Darwin/macOS) -```bash -# Basic file operations -ls # List files -cd # Change directory -find . -name "*.ts" # Find TypeScript files -grep -r "pattern" . # Search for patterns - -# Git operations -git status # Check git status -git add . # Stage all changes -git commit -m "message" # Commit changes -git push # Push to remote - -# Package management -npm install # Install new package -npm uninstall # Remove package -npm audit # Check for vulnerabilities -``` - -## Rust/NAPI Commands -```bash -# Native bindings -cargo build --release # Build Rust code -napi build --platform --release # Build NAPI bindings - -# Rust development -cargo check # Check Rust code -cargo test # Run Rust tests -cargo clippy # Rust linter -``` - -## Testing & Quality (when available) -```bash -# Check if these exist in project: -npm run test # Run tests (if configured) -npm run lint # Lint code (if configured) -npm run format # Format code (if configured) -npm run typecheck # TypeScript checking (if configured) -``` - -## Debugging -```bash -# Development debugging -npm run dev -- --verbose # Verbose development mode -npm run build -- --verbose # Verbose build - -# View logs -tail -f logs/app.log # If logs exist -console logs via browser dev tools # For frontend debugging -``` \ No newline at end of file diff --git a/.serena/memories/task_completion_checklist.md b/.serena/memories/task_completion_checklist.md deleted file mode 100644 index 406252d..0000000 --- a/.serena/memories/task_completion_checklist.md +++ /dev/null @@ -1,52 +0,0 @@ -# Task Completion Checklist - -When completing any development task in this project, follow these steps: - -## 1. Code Quality Checks -- [ ] **TypeScript Validation**: Run `npx tsc --noEmit` to check TypeScript types -- [ ] **Build Test**: Run `npm run build` to ensure the project builds successfully -- [ ] **Development Server**: Test with `npm run dev` to ensure functionality works locally - -## 2. Rust/Native Code (if applicable) -- [ ] **Rust Check**: Run `cargo check` in the church-core directory -- [ ] **Native Build**: Run `npm run build:native` to ensure NAPI bindings compile -- [ ] **Cargo Clippy**: Run `cargo clippy` for Rust linting (if available) - -## 3. Frontend Testing -- [ ] **Manual Testing**: Test all affected functionality in the browser -- [ ] **Cross-browser Check**: Test in different browsers if UI changes were made -- [ ] **Mobile Responsiveness**: Check mobile layout if UI changes were made - -## 4. API Integration -- [ ] **API Endpoints**: Test any modified API routes (`/api/*`) -- [ ] **External API**: Verify integration with `https://api.rockvilletollandsda.church/api/` -- [ ] **Error Handling**: Ensure proper error responses and user feedback - -## 5. Documentation -- [ ] **Code Comments**: Add comments for complex logic -- [ ] **README Updates**: Update documentation if new features or requirements -- [ ] **Memory Updates**: Update project memory files if architecture changes - -## 6. Git Best Practices -- [ ] **Commit Messages**: Use clear, descriptive commit messages -- [ ] **Branch Management**: Work on feature branches when appropriate -- [ ] **Clean History**: Squash commits if multiple small fixes - -## 7. Performance & Security -- [ ] **Bundle Size**: Check if changes affect build size significantly -- [ ] **Security**: Ensure no sensitive data is exposed -- [ ] **Caching**: Verify API caching headers are appropriate - -## Common Issues to Watch For -- **NAPI Bindings**: Ensure native code compiles on target platforms -- **External API Dependency**: Handle cases where external API is unavailable -- **Image Uploads**: Validate file sizes and types properly -- **Form Validation**: Both client-side and server-side validation -- **Recurring Events**: Special attention to date/time handling - -## Pre-deployment Checklist -- [ ] All TypeScript errors resolved -- [ ] Production build succeeds -- [ ] All features tested manually -- [ ] External dependencies verified -- [ ] Environment variables documented (if new ones added) \ No newline at end of file diff --git a/.serena/project.yml b/.serena/project.yml deleted file mode 100644 index f1a0ec1..0000000 --- a/.serena/project.yml +++ /dev/null @@ -1,68 +0,0 @@ -# language of the project (csharp, python, rust, java, typescript, go, cpp, or ruby) -# * For C, use cpp -# * For JavaScript, use typescript -# Special requirements: -# * csharp: Requires the presence of a .sln file in the project folder. -language: rust - -# whether to use the project's gitignore file to ignore files -# Added on 2025-04-07 -ignore_all_files_in_gitignore: true -# list of additional paths to ignore -# same syntax as gitignore, so you can use * and ** -# Was previously called `ignored_dirs`, please update your config if you are using that. -# Added (renamed)on 2025-04-07 -ignored_paths: [] - -# whether the project is in read-only mode -# If set to true, all editing tools will be disabled and attempts to use them will result in an error -# Added on 2025-04-18 -read_only: false - - -# list of tool names to exclude. We recommend not excluding any tools, see the readme for more details. -# Below is the complete list of tools for convenience. -# To make sure you have the latest list of tools, and to view their descriptions, -# execute `uv run scripts/print_tool_overview.py`. -# -# * `activate_project`: Activates a project by name. -# * `check_onboarding_performed`: Checks whether project onboarding was already performed. -# * `create_text_file`: Creates/overwrites a file in the project directory. -# * `delete_lines`: Deletes a range of lines within a file. -# * `delete_memory`: Deletes a memory from Serena's project-specific memory store. -# * `execute_shell_command`: Executes a shell command. -# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced. -# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type). -# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type). -# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes. -# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file or directory. -# * `initial_instructions`: Gets the initial instructions for the current project. -# Should only be used in settings where the system prompt cannot be set, -# e.g. in clients you have no control over, like Claude Desktop. -# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol. -# * `insert_at_line`: Inserts content at a given line in a file. -# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol. -# * `list_dir`: Lists files and directories in the given directory (optionally with recursion). -# * `list_memories`: Lists memories in Serena's project-specific memory store. -# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building). -# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context). -# * `read_file`: Reads a file within the project directory. -# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store. -# * `remove_project`: Removes a project from the Serena configuration. -# * `replace_lines`: Replaces a range of lines within a file with new content. -# * `replace_symbol_body`: Replaces the full definition of a symbol. -# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen. -# * `search_for_pattern`: Performs a search for a pattern in the project. -# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase. -# * `switch_modes`: Activates modes by providing a list of their names -# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information. -# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task. -# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed. -# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store. -excluded_tools: [] - -# initial prompt for the project. It will always be given to the LLM upon activating the project -# (contrary to the memories, which are loaded on demand). -initial_prompt: "" - -project_name: "rtsda-web-main"