Kanban Board

View and manage tasks from TODO.md file. Filter, search, and drag tasks across columns.

Manage Tags Logs Dashboard

Backlog

High
high agent Documentation

**Priority Classification**: Functional failures → High priority (To Do), General errors → Medium priority (Backlog)

ID 1025
high agent Documentation

**User Request Handling**: Direct requests added as high priority to To Do section

ID 1027
high agent Hosting Management System

Hosting Management System: Implement Nginx config reading service in web/services/config_manager.py. Add methods to list all Nginx configs, read specific config file, validate config paths, and return formatted config content. Include error handling for missing files and permission issues.

ID 1152
high agent Hosting Management System

Hosting Management System: Create config editing UI at /configs route. Display list of all Nginx configs with syntax-highlighted editor using CodeMirror or Monaco. Add save/cancel buttons and real-time validation feedback. Ensure changes are staged before applying.

ID 1153
high agent Hosting Management System

Hosting Management System: Implement Nginx config validation with 'nginx -t' before applying changes. Add API endpoint POST /api/configs/nginx/test that runs validation and returns success/error. Display validation results in UI before allowing save. Test with intentionally broken config.

ID 1154
high agent Hosting Management System

Hosting Management System: Add API endpoint PUT /api/configs/nginx/{site} for updating config files. Validate input, create backup, write new config, test with nginx -t, reload if valid. Rollback on failure. Test with all three sites (cigar, tobacco, hosting).

ID 1156
high agent Testing System

Hosting Management System: Write pytest tests for config management covering read, write, validate, backup, restore, and rollback scenarios. Achieve 100% coverage for config_manager.py. Mock filesystem operations and nginx commands.

ID 1157
high agent Cigar Management System

Cigar Management System: Setup Devise gem for user authentication. Configure Devise with email/password authentication, confirmable, recoverable, and rememberable modules. Create User model with email, encrypted_password, and admin boolean. Verify Devise routes are properly installed.

ID 1168
high agent Cigar Management System

Cigar Management System: Create default admin user via rake task using credentials from .secrets.json (email: admin@remoteds.us). Add db/seeds.rb entry for admin user creation. Verify admin user can login, logout, and reset password. Test all Devise flows with RSpec.

ID 1169
high agent Cigar Management System

Cigar Management System: Modify ApplicationController to require authentication for all routes using before_action :authenticate_user! Add public routes exception list if needed. Verify unauthenticated users are redirected to login. Test with RSpec request specs.

ID 1170
high agent Cigar Management System

Cigar Management System: Create Humidor model with name, location, capacity, and temperature/humidity fields. Add CRUD views with Bootstrap 5 styling. Implement humidor listing, create, edit, and delete functionality. Verify all CRUD operations work correctly.

ID 1176
high agent Cigar Management System

Cigar Management System: Create Cigar model with brand, name, size, wrapper, strength, humidor association. Add CRUD views with search and filtering. Implement pagination for large lists. Test all CRUD operations and associations with RSpec.

ID 1177
high agent Testing System

Cigar Management System: Write comprehensive RSpec tests for all models, controllers, and views covering validations, associations, CRUD operations, search, and filtering. Achieve minimum 80% test coverage.

ID 1179
high agent Tobacco Management System

Tobacco Management System: Create default admin user via rake task using credentials from .secrets.json (email: admin@remoteds.us). Add db/seeds.rb entry for admin user creation. Verify admin user can login, logout, and reset password. Test all Devise flows with RSpec.

ID 1181
high agent Tobacco Management System

Tobacco Management System: Modify ApplicationController to require authentication for all routes using before_action :authenticate_user! Add public routes exception list if needed. Verify unauthenticated users are redirected to login. Test with RSpec request specs.

ID 1182
high agent Tobacco Management System

Tobacco Management System: Create Product model with name, brand, type (pipe/cigar/cigarette), flavor_profile, nicotine_strength fields. Add CRUD views with Bootstrap 5 styling. Implement search and filtering by type and brand. Test all CRUD operations with RSpec.

ID 1184
high agent Testing System

Tobacco Management System: Write comprehensive RSpec tests for all models, controllers, and views covering validations, associations, CRUD operations, search, and inventory tracking. Achieve minimum 80% test coverage.

ID 1187
high agent Documentation

Infrastructure: Document PostgreSQL restore procedure in BACKUP_RESTORE_GUIDE.md. Include steps for stopping services, dropping/creating database, restoring from backup, and restarting services. Test restore procedure on QA environment.

ID 1189
high agent Documentation

Documentation: Document full Ruby 3.3+/Rails 7.2+ local development setup including rbenv/rvm installation, PostgreSQL setup, gem installation, and database creation. Add to development guide with step-by-step instructions.

ID 1199
high agent Hosting Management System

Hosting Management System: Implement Nginx config reading service in web/services/config_manager.py. Add methods to list all Nginx configs, read specific config file, validate config paths, and return formatted config content. Include error handling for missing files and permission issues.

ID 1201
high agent Hosting Management System

Hosting Management System: Create config editing UI at /configs route. Display list of all Nginx configs with syntax-highlighted editor using CodeMirror or Monaco. Add save/cancel buttons and real-time validation feedback. Ensure changes are staged before applying.

ID 1202
high agent Hosting Management System

Hosting Management System: Implement Nginx config validation with 'nginx -t' before applying changes. Add API endpoint POST /api/configs/nginx/test that runs validation and returns success/error. Display validation results in UI before allowing save. Test with intentionally broken config.

ID 1203
high agent Hosting Management System

Hosting Management System: Add API endpoint PUT /api/configs/nginx/{site} for updating config files. Validate input, create backup, write new config, test with nginx -t, reload if valid. Rollback on failure. Test with all three sites (cigar, tobacco, hosting).

ID 1205
high agent Testing System

Hosting Management System: Write pytest tests for config management covering read, write, validate, backup, restore, and rollback scenarios. Achieve 100% coverage for config_manager.py. Mock filesystem operations and nginx commands.

ID 1206
high agent Cigar Management System

Cigar Management System: Setup Devise gem for user authentication. Configure Devise with email/password authentication, confirmable, recoverable, and rememberable modules. Create User model with email, encrypted_password, and admin boolean. Verify Devise routes are properly installed.

ID 1217
high agent Cigar Management System

Cigar Management System: Create default admin user via rake task using credentials from .secrets.json (email: admin@remoteds.us). Add db/seeds.rb entry for admin user creation. Verify admin user can login, logout, and reset password. Test all Devise flows with RSpec.

ID 1218
high agent Cigar Management System

Cigar Management System: Create Cigar model with brand, name, size, wrapper, strength, humidor association. Add CRUD views with search and filtering. Implement pagination for large lists. Test all CRUD operations and associations with RSpec.

ID 1226
high agent Testing System

Cigar Management System: Write comprehensive RSpec tests for all models, controllers, and views covering validations, associations, CRUD operations, search, and filtering. Achieve minimum 80% test coverage.

ID 1228
high agent Tobacco Management System

Tobacco Management System: Create default admin user via rake task using credentials from .secrets.json (email: admin@remoteds.us). Add db/seeds.rb entry for admin user creation. Verify admin user can login, logout, and reset password. Test all Devise flows with RSpec.

ID 1230
high agent Tobacco Management System

Tobacco Management System: Create Product model with name, brand, type (pipe/cigar/cigarette), flavor_profile, nicotine_strength fields. Add CRUD views with Bootstrap 5 styling. Implement search and filtering by type and brand. Test all CRUD operations with RSpec.

ID 1233
high agent Testing System

Tobacco Management System: Write comprehensive RSpec tests for all models, controllers, and views covering validations, associations, CRUD operations, search, and inventory tracking. Achieve minimum 80% test coverage.

ID 1236
high agent Infrastructure

Infrastructure: Implement automated PostgreSQL backup with pg_dump running via cron every 6 hours. Store backups in /opt/backups/postgresql/ with 7-day rotation. Create backup script in /usr/local/bin/backup_databases.sh. Verify backup files are created and rotated correctly.

ID 1237
high agent Documentation

Infrastructure: Document PostgreSQL restore procedure in BACKUP_RESTORE_GUIDE.md. Include steps for stopping services, dropping/creating database, restoring from backup, and restarting services. Test restore procedure on QA environment.

ID 1238
high agent Documentation

Documentation: Document full Ruby 3.3+/Rails 7.2+ local development setup including rbenv/rvm installation, PostgreSQL setup, gem installation, and database creation. Add to development guide with step-by-step instructions.

ID 1248
high agent infrastructure

Phase 4: Add local/remote execution modes to manager.py (--execute-locally, --execute-remotely flags)

ID 1272
high agent deployment

Deploy cigar app from scratch with new database-backed setup

ID 1273
high agent deployment

Deploy hosting app updates to production server

ID 1277
Medium
medium agent Architecture

Test input validation

ID 707
medium agent Architecture

Test error responses

ID 708
medium agent Architecture

Test full workflows (deploy → start → stop)

ID 709
medium agent Architecture

Test with real systemctl commands (in test environment)

ID 710
medium agent Architecture

Test Nginx config changes

ID 711
medium agent Architecture

Test CLI commands

ID 712
medium agent Architecture

Test API communication

ID 713
medium agent Architecture

Test error handling

ID 714
medium agent Architecture

Test authentication

ID 715
medium agent Architecture

Test JWT token validation

ID 716
medium agent Architecture

Test rate limiting

ID 717
medium agent Architecture

Test password requirements

ID 718
medium agent Architecture

✅ Minimum 80% code coverage

ID 720
medium agent Architecture

✅ No hardcoded credentials in tests

ID 721
medium agent Architecture

✅ Use fixtures for test data

ID 722
medium agent Architecture

✅ Clean up test data after tests

ID 723
medium agent Architecture

[x] Update .secrets.json format

ID 724
medium agent Architecture

[x] Create web/ directory structure

ID 725
medium agent Architecture

[x] Implement basic FastAPI app with authentication

ID 726
medium agent Architecture

[x] Create dashboard HTML template

ID 727
medium agent Architecture

[x] Deploy to server (bootstrap method)

ID 728
medium agent Architecture

[x] Write tests for authentication

ID 729
medium agent Architecture

[x] Implement app status checking

ID 730
medium agent Architecture

[x] Implement start/stop/restart functionality

ID 731
medium agent Architecture

[x] Create app management UI

ID 732
medium agent Architecture

[x] Add API endpoints for app control

ID 733
medium agent Architecture

[x] Write tests for app management

ID 734
medium agent Architecture

[x] Test with cigar and tobacco apps

ID 735
medium agent Architecture

[x] Add `letsencrypt_email` to `config.json` (contact for LE terms)

ID 736
medium agent Architecture

[x] Install Certbot + nginx plugin on remote host

ID 737
medium agent Architecture

[x] Issue staging certs for: hosting.remoteds.us, cigars.remoteds.us, tobacco.remoteds.us

ID 738
medium agent Architecture

[x] Switch to production issuance for all three domains

ID 739
medium agent Architecture

[ ] Verify auto-renew timer and dry-run; confirm Nginx reload on renew

ID 740
medium agent Architecture

[x] Update `ssl_config` to LE live paths (if not already)

ID 741
medium agent Architecture

[x] Implement log reading service

ID 742
medium agent Architecture

[x] Create logs UI with filtering

ID 743
medium agent Architecture

[x] Add Nginx log support

ID 744
medium agent Architecture

[x] Implement real-time log tailing

ID 745
medium agent Architecture

[x] Write tests for log viewing

ID 746
medium agent Architecture

[ ] Implement config reading/writing

ID 747
medium agent Architecture

[ ] Create config editing UI

ID 748
medium agent Architecture

[ ] Add Nginx config validation

ID 749
medium agent Architecture

[ ] Implement backup/restore

ID 750
medium agent Architecture

[ ] Write tests for config management

ID 751
medium agent Architecture

[ ] Create troubleshooting scripts

ID 752
medium agent Architecture

[ ] Implement script runner service

ID 753
medium agent Architecture

[ ] Create scripts UI

ID 754
medium agent Architecture

[ ] Add script output streaming

ID 755
medium agent Architecture

[ ] Write tests for script execution

ID 756
medium agent Architecture

[ ] Implement self-update functionality

ID 757
medium agent Architecture

[ ] Add deployment UI

ID 758
medium agent Architecture

[ ] Test graceful restart

ID 759
medium agent Architecture

[ ] Document update procedures

ID 760
medium agent Architecture

[ ] Write tests for self-updates

ID 761
medium agent Architecture

✅ Can access https://hosting.remoteds.us with password

ID 762
medium agent Architecture

✅ Dashboard shows all apps with status

ID 763
medium agent Architecture

✅ Authentication tests pass

ID 764
medium agent Architecture

✅ Deployed via bootstrap method

ID 765
medium agent Architecture

✅ Can start/stop/restart all Rails apps via web UI

ID 766
medium agent Architecture

✅ Can start/stop/restart via API from laptop

ID 767
medium agent Architecture

✅ All app management tests pass

ID 768
medium agent Architecture

✅ Can view logs for all Rails apps

ID 769
medium agent Architecture

✅ Can view Nginx access and error logs

ID 770
medium agent Architecture

✅ Can search and filter logs

ID 771
medium agent Architecture

✅ All log viewing tests pass

ID 772
medium agent Architecture

✅ Can view all Nginx configs

ID 773
medium agent Architecture

✅ Can edit and test configs

ID 774
medium agent Architecture

✅ Changes are validated before applying

ID 775
medium agent Architecture

✅ All config management tests pass

ID 776
medium agent Architecture

✅ Can list all troubleshooting scripts

ID 777
medium agent Architecture

✅ Can execute scripts with parameters

ID 778
medium agent Architecture

✅ Can view script output in real-time

ID 779
medium agent Architecture

✅ All script execution tests pass

ID 780
medium agent Architecture

✅ Can update hosting system via web UI

ID 781
medium agent Architecture

✅ Updates are graceful (no downtime)

ID 782
medium agent Architecture

✅ Can rollback if needed

ID 783
medium agent Architecture

✅ All self-update tests pass

ID 784
medium agent Architecture

**Phase 1**: Core Infrastructure - Authentication, basic web interface

ID 785
medium agent Architecture

**Phase 2**: App Management - Start/stop/restart functionality

ID 786
medium agent Architecture

**Phase 3**: Log Viewing - Comprehensive log viewing with filtering

ID 787
medium agent Architecture

**Phase 4**: Config Management - Nginx configuration editing

ID 788
medium agent Architecture

**Phase 5**: Script Execution - Troubleshooting script runner

ID 789
medium agent Architecture

**Phase 6**: Self-Management - System updates and deployment

ID 790
medium agent Architecture

**Total Tests**: 89 passing tests

ID 791
medium agent Architecture

**Log Viewer Tests**: 23 tests covering all functionality

ID 792
medium agent Architecture

**API Routes Tests**: 26 tests covering all endpoints

ID 793
medium agent Architecture

**Existing Tests**: 40 tests for core functionality

ID 794
medium agent Architecture

**NO root-level git repository** - only individual app repos exist

ID 795
medium agent Architecture

**Local CLI tool only** (no Flask/FastAPI locally)

ID 796
medium agent Architecture

**Rails-only** applications on remote (Puma + Nginx)

ID 797
medium agent Architecture

**Remote web interface** at hosting.remoteds.us (to be built)

ID 798
medium agent Architecture

**Infrastructure as Code** - everything automated and repeatable

ID 799
medium agent Architecture

**Location**: `/Users/bpauley/Projects/mangement-systems/hosting-management-system/`

ID 800
medium agent Architecture

**Type**: Python 3.12 CLI tool (`manager.py`)

ID 801
medium agent Architecture

**Framework**: Click + Fabric/Paramiko

ID 802
medium agent Architecture

**Purpose**: Provision servers, deploy apps, manage configs

ID 803
medium agent Architecture

**No Web Server**: CLI-only, no local dashboard

ID 804
medium agent Architecture

**Host**: Ubuntu 25.04 LTS (Digital Ocean)

ID 805
medium agent Architecture

**Apps Deployed**:

ID 806
medium agent Architecture

`cigars.remoteds.us` → Cigar Management (Rails 7.2.2 + Puma)

ID 807
medium agent Architecture

`tobacco.remoteds.us` → Tobacco Management (Rails 7.2.2 + Puma)

ID 808
medium agent Architecture

`hosting.remoteds.us` → Management Interface (Rails 7.2.2 + Puma)

ID 809
medium agent Architecture

**Web Server**: Nginx (reverse proxy to Puma)

ID 810
medium agent Architecture

**App Server**: Puma (running as www-data user)

ID 811
medium agent Architecture

**Database**: PostgreSQL

ID 812
medium agent Architecture

Local: CLI tool (`manager.py`)

ID 813
medium agent Architecture

Remote: Rails web interface (to be built)

ID 814
medium agent Architecture

Same Ruby version (3.3+)

ID 815
medium agent Architecture

Same Rails version (7.2.2)

ID 816
medium agent Architecture

Same gem versions

ID 817
medium agent Architecture

✅ Manual verification complete

ID 820
medium agent Architecture

Redeployments **NEVER erase production data** by default

ID 821
medium agent Architecture

Database and uploaded files are preserved

ID 822
medium agent Architecture

Only use `--reset-data` flag when explicitly needed

ID 823
medium agent Architecture

All operations are idempotent (safe to run multiple times)

ID 824
medium agent Architecture

[ ] Create `DEPLOYMENT_LOG.md` in hosting-management-system/

ID 825
medium agent Architecture

[ ] Verify `deployment_key` and `deployment_key.pub` exist

ID 826
medium agent Architecture

[ ] Create `remote_cli_tools/` directory with scripts:

ID 827
medium agent Architecture

`parse_logs.sh` - Find errors in logs

ID 828
medium agent Architecture

`check_status.sh` - Check all service statuses

ID 829
medium agent Architecture

`restart_service.sh` - Quick service restart

ID 830
medium agent Architecture

[ ] Add `_install_remote_cli_tools()` method to provisioning

ID 831
medium agent Architecture

[ ] Add `view_logs` CLI command (stream journalctl)

ID 832
medium agent Architecture

[ ] Add `check_status` CLI command (query systemctl)

ID 833
medium agent Architecture

[ ] Verify SSH key deployment works correctly

ID 834
medium agent Architecture

[ ] Verify www-data ownership is set correctly

ID 835
medium agent Architecture

[ ] Document current server state in DEPLOYMENT_LOG.md

ID 836
medium agent Architecture

[ ] Run full provision + deploy cycle

ID 837
medium agent Architecture

[ ] Verify all apps deploy successfully

ID 838
medium agent Architecture

[ ] Test SSH key deployment

ID 839
medium agent Architecture

[ ] Test www-data ownership

ID 840
medium agent Architecture

[ ] **Destroy server and rebuild** to verify repeatability

ID 841
medium agent Architecture

[ ] Rewrite hosting-management-system/README.md

ID 842
medium agent Architecture

[ ] Remove all FastAPI/Flask references

ID 843
medium agent Architecture

[ ] Document CLI-only architecture

ID 844
medium agent Architecture

[ ] Add deployment procedure examples

ID 845
medium agent Architecture

[ ] Cross-reference with agents.md

ID 846
medium agent Architecture

[ ] Install Ruby 3.3+ locally

ID 847
medium agent Architecture

[ ] Install Rails 7.2.2 locally

ID 848
medium agent Architecture

[ ] Verify local environment matches production

ID 849
medium agent Architecture

[ ] Document local setup process

ID 850
medium agent Architecture

[ ] Create test checklist template

ID 851
medium agent Architecture

**Technology**: Rails 7.2.2 application

ID 853
medium agent Architecture

**Location**: `/var/www/hosting` on remote server

ID 854
medium agent Architecture

**Domain**: hosting.remoteds.us

ID 855
medium agent Architecture

**Features**:

ID 856
medium agent Architecture

Secure login/password authentication

ID 857
medium agent Architecture

Dashboard showing all app statuses

ID 858
medium agent Architecture

Real-time log viewing

ID 859
medium agent Architecture

App control (start/stop/restart)

ID 860
medium agent Architecture

Trigger deployments

ID 861
medium agent Architecture

View configurations

ID 862
medium agent Architecture

API endpoints for programmatic access

ID 863
medium agent Architecture

Backup management

ID 864
medium agent Architecture

Create new Rails 7.2.2 app in hosting-management-system repo

ID 865
medium agent Architecture

Add to config.json as deployment target

ID 866
medium agent Architecture

Deploy via same manager.py tool

ID 867
medium agent Architecture

Build authentication system

ID 868
medium agent Architecture

Create dashboard views

ID 869
medium agent Architecture

Implement API endpoints

ID 870
medium agent Architecture

[ ] Pytest coverage for ALL manager.py Fabric tasks

ID 871
medium agent Architecture

[ ] Mock connection tests

ID 872
medium agent Architecture

[ ] qa-test-repo deployment smoke tests

ID 873
medium agent Architecture

[ ] Full deployment cycle automated tests

ID 874
medium agent Architecture

[ ] Data preservation verification tests

ID 875
medium agent Architecture

"In Progress" item references old secrets management (complete)

ID 876
medium agent Architecture

Missing Phase 1 infrastructure tasks

ID 877
medium agent Architecture

No tasks for DEPLOYMENT_LOG.md creation

ID 878
medium agent Architecture

No tasks for remote CLI tools

ID 879
medium agent Architecture

Verify and document SSH key deployment

ID 880
medium agent Architecture

Create remote_cli_tools directory and scripts

ID 881
medium agent Architecture

Update manager.py with remote tool installation

ID 882
medium agent Architecture

Full provision + deploy cycle test

ID 883
medium agent Architecture

✅ Can provision bare Ubuntu server to production-ready state

ID 884
medium agent Architecture

✅ All steps documented in DEPLOYMENT_LOG.md

ID 885
medium agent Architecture

✅ Destroy/rebuild produces identical results

ID 886
medium agent Architecture

✅ No manual intervention required

ID 887
medium agent Architecture

✅ All configuration in code (Infrastructure as Code)

ID 888
medium agent Architecture

✅ Local Ruby/Rails environment matches production

ID 889
medium agent Architecture

✅ Can develop and test Rails apps locally

ID 890
medium agent Architecture

✅ Test suite running locally

ID 891
medium agent Architecture

✅ Development workflow documented

ID 892
medium agent Architecture

✅ hosting.remoteds.us serves management interface

ID 893
medium agent Architecture

✅ Can monitor all apps via web dashboard

ID 894
medium agent Architecture

✅ Can control apps via web interface

ID 895
medium agent Architecture

✅ API endpoints functional

ID 896
medium agent Architecture

✅ Secure authentication working

ID 897
medium agent Architecture

**Remember**: NO root-level git - only individual app repos

ID 898
medium agent Architecture

**Testing**: No production deploy without passing local tests

ID 900
medium agent Architecture

**Data Safety**: Never erase production data unless explicitly told

ID 901
medium agent Architecture

**Documentation**: Update DEPLOYMENT_LOG.md with every change

ID 902
medium agent Documentation

**Fixed Delete Bug**: Template was using `task.line_number` instead of `task.id` for PostgreSQL

ID 903
medium agent Documentation

**Fixed Pydantic v2**: Changed `regex` to `pattern` in field validation

ID 904
medium agent Documentation

**Added Tags API**: `/api/v1/kanban/tags` endpoint for tag management

ID 905
medium agent Documentation

**Added Tag Management**: Full CRUD interface at `/tags`

ID 906
medium agent Documentation

**Added Tag Filter**: Filter kanban tasks by assigned tags

ID 907
medium agent Documentation

<7 Days, <=2 Weeks, <=1 Month, <=3 Months, <=1 Year, All Issues

ID 908
medium agent Documentation

**Updated Task Cards**: Display tags with custom colors

ID 909
medium agent Documentation

**Added Manage Tags Button**: Quick access from kanban board

ID 910
medium agent Documentation

**Added Unit Tests**: 20 comprehensive pytest tests for all CRUD operations

ID 911
medium agent Documentation

**All Tests Pass**: Verified locally before deployment

ID 912
medium agent Documentation

**Test Coverage**: API endpoints, database models, validation rules

ID 913
medium agent Documentation

**PostgreSQL Remote Access**: Configured for user `bpauley`

ID 914
medium agent Documentation

**Firewall**: Opened port 5432 for remote connections

ID 915
medium agent Documentation

**Dependencies**: `sqlalchemy` and `psycopg2-binary` in requirements.txt

ID 916
medium agent Documentation

**Database**: `hosting_production` PostgreSQL database

ID 917
medium agent Documentation

**Tables**:

ID 918
medium agent Documentation

`kanban_tasks` - Main task storage with full metadata

ID 919
medium agent Documentation

`kanban_task_history` - Audit log for all changes

ID 920
medium agent Documentation

`kanban_tags` - Flexible tagging system

ID 921
medium agent Documentation

`kanban_task_tags` - Many-to-many task/tag relationship

ID 922
medium agent Documentation

**Schema File**: `docs/DATABASE_MIGRATION_KANBAN.sql`

ID 923
medium agent Documentation

**Migration Script**: `docs/migrate_todo_to_postgres.py`

ID 924
medium agent Documentation

**Source**: `/opt/hosting-api/TODO.md` → PostgreSQL

ID 925
medium agent Documentation

**Preserves**: All metadata (created_at, epic, priority, occurrence_count)

ID 926
medium agent Documentation

**Backup**: Original TODO.md automatically backed up

ID 927
medium agent Documentation

**Base URL**: `/api/v1/kanban/*`

ID 928
medium agent Documentation

**Authentication**: JWT Bearer token required

ID 929
medium agent Documentation

**All endpoints updated** to use SQLAlchemy instead of file operations

ID 930
medium agent Documentation

`GET /tasks` - Now supports advanced filtering (section, priority, status, epic)

ID 931
medium agent Documentation

`GET /tasks/{task_id}` - Changed from line_number to database ID

ID 932
medium agent Documentation

`POST /tasks` - Returns database ID instead of line number

ID 933
medium agent Documentation

`PUT /tasks/{task_id}` - Database-backed updates with transaction support

ID 934
medium agent Documentation

`POST /tasks/{task_id}/move` - Atomic section moves with position tracking

ID 935
medium agent Documentation

`DELETE /tasks/{task_id}` - Proper cascade delete with history preservation

ID 936
medium agent Documentation

`GET /health` - New endpoint for database connectivity checks

ID 937
medium agent Documentation

**Routes**: `docs/kanban_api_routes_postgres.py`

ID 938
medium agent Documentation

**Models**: `docs/kanban_models.py` (SQLAlchemy)

ID 939
medium agent Documentation

**File**: `docs/test_kanban_postgres.py`

ID 940
medium agent Documentation

**Framework**: pytest with requests library

ID 941
medium agent Documentation

**Test Classes**:

ID 942
medium agent Documentation

✅ API endpoint testing (all CRUD operations)

ID 943
medium agent Documentation

✅ Database constraint validation

ID 944
medium agent Documentation

✅ Authentication/authorization

ID 945
medium agent Documentation

✅ Filtering and pagination

ID 946
medium agent Documentation

✅ Task lifecycle (create → move → complete → delete)

ID 947
medium agent Documentation

✅ Concurrent access scenarios

ID 948
medium agent Documentation

✅ Web interface integration

ID 949
medium agent Documentation

**agents.md**:

ID 950
medium agent Documentation

Updated TODO Management System Rules section

ID 951
medium agent Documentation

Changed data storage from file to PostgreSQL database

ID 952
medium agent Documentation

Updated API endpoint documentation

ID 953
medium agent Documentation

Added database backup information

ID 954
medium agent Documentation

Removed file-based references

ID 955
medium agent Documentation

**KANBAN_POSTGRES_IMPLEMENTATION.md**: Complete implementation guide

ID 956
medium agent Documentation

Step-by-step migration procedures

ID 957
medium agent Documentation

Testing checklist

ID 958
medium agent Documentation

Troubleshooting guide

ID 959
medium agent Documentation

Rollback plan

ID 960
medium agent Documentation

Security considerations

ID 961
medium agent Documentation

**config.json**: Added `hosting` app configuration with database field

ID 962
medium agent Documentation

**.secrets.json**: Requires `hosting_production` database credentials

ID 963
medium agent Documentation

**Dependencies**: Added SQLAlchemy, psycopg2-binary, alembic to requirements.txt

ID 964
medium agent Documentation

**Included**: Kanban data now part of PostgreSQL backup system

ID 965
medium agent Documentation

**Automatic**: Same backup schedule as Rails applications

ID 966
medium agent Documentation

**No additional work**: Leverages existing infrastructure

ID 967
medium agent Documentation

Check: `priority IN ('high', 'medium', 'low')`

ID 968
medium agent Documentation

Check: `owner IN ('user', 'agent')`

ID 969
medium agent Documentation

`idx_kanban_section` on `section`

ID 970
medium agent Documentation

`idx_kanban_status` on `status`

ID 971
medium agent Documentation

`idx_kanban_priority` on `priority`

ID 972
medium agent Documentation

`idx_kanban_created_at` on `created_at DESC`

ID 973
medium agent Documentation

`idx_kanban_epic` on `epic`

ID 974
medium agent Documentation

`idx_kanban_position` on `section, position`

ID 975
medium agent Documentation

Auto-update `updated_at` on row modification

ID 976
medium agent Documentation

Log changes to `kanban_task_history` table

ID 977
medium agent Documentation

✅ Backup existing TODO.md file

ID 978
medium agent Documentation

✅ Document current task count and distribution

ID 979
medium agent Documentation

✅ Test migration script with dry-run

ID 980
medium agent Documentation

✅ Verify database connectivity

ID 981
medium agent Documentation

Run migration script: `python migrate_todo_to_postgres.py /opt/hosting-api/TODO.md`

ID 982
medium agent Documentation

Verify all tasks imported correctly

ID 983
medium agent Documentation

Check for any parsing errors

ID 984
medium agent Documentation

Validate metadata preservation

ID 985
medium agent Documentation

Remove or archive TODO.md files

ID 986
medium agent Documentation

Update all references to file-based system

ID 987
medium agent Documentation

Verify web interface displays correctly

ID 988
medium agent Documentation

Run full test suite

ID 989
medium agent Documentation

Monitor performance

ID 990
medium agent Documentation

[ ] All pytest tests pass

ID 991
medium agent Documentation

[ ] Database connection successful

ID 992
medium agent Documentation

[ ] CRUD operations work correctly

ID 993
medium agent Documentation

[ ] Constraints enforce data integrity

ID 994
medium agent Documentation

[ ] Audit trail logs changes

ID 995
medium agent Documentation

[ ] API endpoints respond correctly

ID 996
medium agent Documentation

[ ] Web interface renders tasks

ID 997
medium agent Documentation

[ ] Filtering and sorting work

ID 998
medium agent Documentation

[ ] Drag-and-drop functionality preserved

ID 999
medium agent Documentation

[ ] Authentication enforced

ID 1000
medium agent Documentation

[ ] List queries < 100ms

ID 1001
medium agent Documentation

[ ] Concurrent user access works

ID 1002
medium agent Documentation

[ ] No file locking issues

ID 1003
medium agent Documentation

[ ] Database indexes utilized

ID 1004
medium agent Documentation

**Implementation Guide**: [docs/KANBAN_POSTGRES_IMPLEMENTATION.md](KANBAN_POSTGRES_IMPLEMENTATION.md)

ID 1005
medium agent Documentation

**Database Schema**: [docs/DATABASE_MIGRATION_KANBAN.sql](DATABASE_MIGRATION_KANBAN.sql)

ID 1006
medium agent Documentation

**SQLAlchemy Models**: [docs/kanban_models.py](kanban_models.py)

ID 1007
medium agent Documentation

**API Routes**: [docs/kanban_api_routes_postgres.py](kanban_api_routes_postgres.py)

ID 1008
medium agent Documentation

**Test Suite**: [docs/test_kanban_postgres.py](test_kanban_postgres.py)

ID 1009
medium agent Documentation

**Migration Script**: [docs/migrate_todo_to_postgres.py](migrate_todo_to_postgres.py)

ID 1010
medium agent Documentation

**Updated Rules**: [agents.md § TODO Management System Rules](../agents.md#todo-management-system-rules)

ID 1011
medium agent Documentation

**agents.md**: Added comprehensive TODO Management System Rules section with kanban board management, data structure, startup workflow, error processing, completion criteria, filtering system, and future web interface specifications

ID 1012
medium agent Documentation

**TODO.md**: Completely restructured with proper kanban board format, metadata JSON structure, timestamps, epics, and filtering capabilities

ID 1013
medium agent Documentation

**Log Tracking**: Created `/tmp/last_log_check.txt` for tracking log parsing timestamps

ID 1014
medium agent Documentation

**Metadata Schema**: Implemented JSON metadata for each TODO item including:

ID 1015
medium agent Documentation

`created_at`: ISO 8601 timestamp for item creation

ID 1016
medium agent Documentation

`priority`: high/medium/low classification

ID 1017
medium agent Documentation

`assigned_to`: user/agent assignment

ID 1018
medium agent Documentation

`epic`: System or subsystem categorization

ID 1019
medium agent Documentation

`occurrence_count`: Tracking for recurring issues

ID 1020
medium agent Documentation

**Epic Organization**: 8 epics defined (Cigar Management System, Tobacco Management System, Hosting Management System, Infrastructure, Documentation, Testing, Integration, Development Environment)

ID 1021
medium agent Documentation

**Log Parsing**: Automated parsing of log files for errors/failures/404/500/auth errors

ID 1022
medium agent Documentation

**Duplicate Detection**: Checks existing TODO items before creating new error entries

ID 1023
medium agent Documentation

**Occurrence Tracking**: Increments count for recurring issues

ID 1024
medium agent Documentation

**Startup Workflow**: Defined 6-step process for every conversation (read agents.md, parse logs, create issues, work on To Do by priority)

ID 1026
medium agent Documentation

**Backup**: Original TODO.md backed up to TODO.md.backup

ID 1028
medium agent Documentation

**Data Migration**: All existing items preserved with proper metadata and timestamps

ID 1029
medium agent Documentation

**Rule Enforcement**: No duplicate items between columns, proper item movement (not copying)

ID 1030
medium agent Documentation

✅ agents.md rules updated and documented

ID 1031
medium agent Documentation

✅ TODO.md structure implemented with metadata

ID 1032
medium agent Documentation

✅ Log parsing system tested with actual log files

ID 1033
medium agent Documentation

✅ Error detection and TODO creation verified

ID 1034
medium agent Documentation

✅ Timestamp management implemented

ID 1035
medium agent Documentation

✅ Epic categorization system established

ID 1036
medium agent Documentation

✅ Filter framework in place for future web interface

ID 1037
medium agent Documentation

Web interface for drag-and-drop not yet implemented (planned future feature)

ID 1038
medium agent Documentation

Log parsing currently manual - automation to be added

ID 1039
medium agent Documentation

No API endpoints yet for programmatic TODO management

ID 1040
medium agent Documentation

Implement web-based kanban board with drag-and-drop functionality

ID 1041
medium agent Documentation

Add automated log parsing with scheduled execution

ID 1042
medium agent Documentation

Create API endpoints for TODO CRUD operations

ID 1043
medium agent Documentation

Implement priority lanes within each column

ID 1044
medium agent Documentation

Add subtask relationships and epic management

ID 1045
medium agent Documentation

**Cigar Management System**: Created Rails 8.1.0 app with "Hello Cigar World" landing page

ID 1046
medium agent Documentation

**Tobacco Management System**: Created Rails 8.1.0 app with "Hello Tobacco World" landing page

ID 1047
medium agent Documentation

Both apps configured with PostgreSQL database and Ruby 3.4.7

ID 1048
medium agent Documentation

Repository structure established for both apps under `/Users/bpauley/Projects/mangement-systems/`

ID 1049
medium agent Documentation

Git repositories initialized and committed with initial Rails setup

ID 1050
medium agent Documentation

Basic routing configured: `root "home#index"` for both applications

ID 1051
medium agent Documentation

Health check endpoint available at `/up` for both apps

ID 1052
medium agent Documentation

Home controller created with index action for both apps

ID 1053
medium agent Documentation

Rails apps scaffolded with standard directory structure

ID 1054
medium agent Documentation

Bootstrap and modern Rails stack (Turbo, Stimulus, Importmap) included

ID 1055
medium agent Documentation

Docker configuration added via Kamal

ID 1056
medium agent Documentation

Development environment ready for local testing

ID 1057
medium agent Documentation

Both apps start successfully in development mode

ID 1058
medium agent Documentation

Routes respond correctly with custom "Hello World" messages

ID 1059
medium agent Documentation

Git repositories properly initialized with 99 files each

ID 1060
medium agent Documentation

Updated `agents.md` with detailed domain models for both Cigar and Tobacco systems

ID 1061
medium agent Documentation

Added comprehensive JSON API format specifications

ID 1062
medium agent Documentation

TODO.md updated with granular task breakdown (29 total tasks)

ID 1063
medium agent Documentation

Ruby environment resolved using mise (Ruby 3.4.7, Rails 8.1.0)

ID 1064
medium agent Documentation

Proper shell configuration (zsh with .zshrc profile)

ID 1065
medium agent Documentation

Both apps committed to Git and ready for deployment

ID 1066
medium agent Documentation

Implement production deployment with Unicorn + Nginx

ID 1067
medium agent Documentation

Add database migrations and service management capabilities

ID 1068
medium agent Documentation

Scaffolded Flask dashboard with Bootstrap 5 and Bootstrap Icons

ID 1069
medium agent Documentation

Added routes: `GET /` (dashboard), `GET /health`, `POST /actions/run` (invoke manager actions),

ID 1070
medium agent Documentation

Admin endpoints for local control: `POST /_admin/shutdown`, `POST /_admin/restart`

ID 1071
medium agent Documentation

Configured file logging to `hosting-management-system/logs/web_app.log`

ID 1072
medium agent Documentation

Per-request logging via `after_request` hook

ID 1073
medium agent Documentation

Added uvicorn logging config at `hosting-management-system/uvicorn_logging.ini` to split app vs access logs (`web_app.log`, `web_access.log`)

ID 1074
medium agent Documentation

Repositories management: list/add/delete repos

ID 1075
medium agent Documentation

Backups panel: list backups, restore and delete actions; backup actions record entries in datastore

ID 1076
medium agent Documentation

Read-only `TODO.md` panel rendered on dashboard

ID 1077
medium agent Documentation

Extended `DataStore` to track `repos` and `backups` in addition to `hosts` and `activity`

ID 1078
medium agent Documentation

Added CRUD helpers: `add_repo/delete_repo`, `add_backup/delete_backup`, `list_backups`

ID 1079
medium agent Documentation

Updated `hosting-management-system/requirements.txt` to include `Flask`, `fabric`, `click`, `requests`, `pytest`

ID 1080
medium agent Documentation

Added `hosting-management-system/tests/test_app_health.py` to validate the `/health` endpoint

ID 1081
medium agent Documentation

`scripts/check_ruby_env.sh` verifies local Ruby (>= 3.3) and Rails (>= 7.2) versions

ID 1082
medium agent Documentation

`hosting-management-system/README.md` now uses `pip install -r requirements.txt` and documents scripts and testing

ID 1083
medium agent Documentation

Added Table of Contents, Local vs Remote sections, troubleshooting guide

ID 1084
medium agent Documentation

JWT authentication configuration with refresh tokens and rate limiting

ID 1085
medium agent Documentation

Link to `PRODUCTION_DEPLOYMENT.md` for production setup

ID 1086
medium agent Documentation

`agents.md` adds Rule 12 (dependency hygiene) and near-term requirements that mirror `TODO.md`

ID 1087
medium agent Documentation

Added `Runtime & Service Management` section to `agents.md` (FastAPI+uvicorn, systemd unit, local manager CLI, logs, maintenance flag)

ID 1088
medium agent Documentation

Added module/function docstrings to `hosting-management-system/scripts/manage.py`, endpoint docstrings to `app_fastapi.py`, and function docstrings to `scripts/smoke_test_fresh_host.py`

ID 1089
medium agent Documentation

New: `PRODUCTION_DEPLOYMENT.md` - Complete production deployment guide with JWT, HTTPS, monitoring, troubleshooting, and security checklist

ID 1090
medium agent Documentation

Introduced FastAPI app alongside Flask:

ID 1091
medium agent Documentation

`app_fastapi.py` with `GET /health` and read-only landing (`/`) rendering `api_landing.html`

ID 1092
medium agent Documentation

Dev run: `uvicorn app_fastapi:app --host 0.0.0.0 --port 5051 --reload` or via `scripts/manage.py restart`

ID 1093
medium agent Documentation

Systemd template: `templates/hms-api.service.tpl` (uvicorn service) with start/stop/status instructions in README

ID 1094
medium agent Documentation

ExecStart now points to project venv: `$project_dir/.venv/bin/uvicorn ...` to avoid PATH issues

ID 1095
medium agent Documentation

Requirements updated to include `fastapi==0.111.0`, `uvicorn[standard]==0.30.1`, `python-multipart`, `httpx`, `python-jose[cryptography]`, `passlib[bcrypt]`

ID 1096
medium agent Documentation

Tests: `tests/test_fastapi_health.py`, `tests/test_fastapi_subsystems.py`, `tests/test_fastapi_dashboard.py`, `tests/test_fastapi_auth.py`

ID 1097
medium agent Documentation

Phase 2 (complete): Added FastAPI dashboard with CRUD/action routes

ID 1098
medium agent Documentation

Endpoints: `GET /dashboard`, `POST /hosts`, `POST /hosts/{slug}/update|delete`, `POST /repos`, `POST /repos/{name}/update|delete`, `POST /backups/{id}/restore|delete`, `POST /actions/run`

ID 1099
medium agent Documentation

Templates: `web/templates/api_dashboard.html`, layout updated for both Flask/FastAPI flashes

ID 1100
medium agent Documentation

Full parity with Flask dashboard

ID 1101
medium agent Documentation

Phase 3 (complete): JWT authentication

ID 1102
medium agent Documentation

`POST /auth/login` endpoint (form: username/password, returns JWT)

ID 1103
medium agent Documentation

All POST endpoints (hosts, repos, backups, actions) protected with JWT via `Depends(get_current_user)`

ID 1104
medium agent Documentation

Configuration via env: `HMS_JWT_SECRET`, `HMS_ADMIN_USER`, `HMS_ADMIN_PASSWORD`

ID 1105
medium agent Documentation

Defaults: user=admin, password=admin, secret=dev-secret-change-in-production

ID 1106
medium agent Documentation

24-hour token expiration

ID 1107
medium agent Documentation

Test coverage: `tests/test_fastapi_auth.py`

ID 1108
medium agent Documentation

Phase 4 (complete): Flask deprecation

ID 1109
medium agent Documentation

Added deprecation notice to `app.py` module docstring

ID 1110
medium agent Documentation

README updated to recommend FastAPI as the primary service

ID 1111
medium agent Documentation

Flask remains available for backward compatibility but new features will only target FastAPI

ID 1112
medium agent Documentation

Migration complete: FastAPI now provides full parity + authentication

ID 1113
medium agent Documentation

JWT Enhancements (production-ready):

ID 1114
medium agent Documentation

Refresh tokens: 15-minute access tokens + 7-day refresh tokens (configurable via env)

ID 1115
medium agent Documentation

Rate limiting: login endpoint limited to 5 requests/minute via slowapi

ID 1116
medium agent Documentation

Role-based auth: JWT payload includes `role` field (admin role for admin user)

ID 1117
medium agent Documentation

Token type validation: access vs refresh tokens explicitly checked

ID 1118
medium agent Documentation

New endpoint: `POST /auth/refresh` to exchange refresh token for new access token

ID 1119
medium agent Documentation

Configuration: `HMS_JWT_ACCESS_EXPIRATION_MINUTES`, `HMS_JWT_REFRESH_EXPIRATION_DAYS`

ID 1120
medium agent Documentation

Password handling: Support for pre-hashed passwords via `HMS_ADMIN_PASSWORD_HASH` or plain via `HMS_ADMIN_PASSWORD`

ID 1121
medium agent Documentation

Lazy password hashing: Avoids import-time bcrypt issues, auto-truncates to 72 bytes

ID 1122
medium agent Documentation

Dependencies added: `slowapi` for rate limiting

ID 1123
medium agent Documentation

Updated tests: refresh token flow, rate limiting, token type validation

ID 1124
medium agent Documentation

**Pytest Fixtures** (`tests/conftest.py`):

ID 1125
medium agent Documentation

`qa_datastore`: Isolated temporary DataStore for testing

ID 1126
medium agent Documentation

`qa_host_data`, `qa_repo_data`, `qa_backup_data`: Factory fixtures with qa- prefix

ID 1127
medium agent Documentation

`qa_populated_store`: Pre-populated DataStore with 2 hosts, 2 repos, activity logs

ID 1128
medium agent Documentation

`qa_config_file`: Temporary config.json with qa- values

ID 1129
medium agent Documentation

`qa_temp_backup_dir`: Temporary backup directory

ID 1130
medium agent Documentation

**CLI Action Tests** (`tests/test_cli_actions.py`):

ID 1131
medium agent Documentation

Host management: add, update, delete, list (8 tests)

ID 1132
medium agent Documentation

Repository management: add, update, delete, list (8 tests)

ID 1133
medium agent Documentation

Backup management: add, list, delete (3 tests)

ID 1134
medium agent Documentation

Activity logging: record, list, timestamps (3 tests)

ID 1135
medium agent Documentation

Data isolation verification (2 tests)

ID 1136
medium agent Documentation

Total: 24 comprehensive tests with qa- prefixed data

ID 1137
medium agent Documentation

**QA Data Factories** (`tests/qa_factories.py`):

ID 1138
medium agent Documentation

`QAFactory` class with methods: host(), repo(), backup(), activity(), config()

ID 1139
medium agent Documentation

Batch generation: batch_hosts(), batch_repos(), batch_backups()

ID 1140
medium agent Documentation

Sequential ID generation for unique qa- prefixed names

ID 1141
medium agent Documentation

Convenience functions: qa_host(), qa_repo(), qa_backup(), qa_activity(), qa_config()

ID 1142
medium agent Documentation

**QA Cleanup Script** (`scripts/qa_cleanup.py`):

ID 1143
medium agent Documentation

Remove all qa- prefixed hosts, repos, backups

ID 1144
medium agent Documentation

Clean qa_ activity logs (reports count)

ID 1145
medium agent Documentation

Delete temporary qa-* files and directories

ID 1146
medium agent Documentation

Dry-run mode for safe preview

ID 1147
medium agent Documentation

Summary statistics with confirmation prompt

ID 1148
medium agent Documentation

Usage: `python scripts/qa_cleanup.py [--dry-run] [--force]`

ID 1149
medium agent Documentation

**qa-test-repo** (Rails deployment test app):

ID 1150
medium agent Hosting Management System

Hosting Management System: Implement Nginx config backup/restore functionality. Create timestamped backups before any config change in /opt/backups/nginx/. Add restore capability with backup listing UI. Test backup creation, listing, and restore procedures.

ID 1155
medium agent Hosting Management System

Hosting Management System: Create troubleshooting scripts in remote_cli_tools/ directory including parse_logs.sh, check_status.sh, check_disk_space.sh, and db_connection_test.sh. Install to /usr/local/bin/ during provisioning. Document each script's purpose and parameters.

ID 1158
medium agent Hosting Management System

Hosting Management System: Implement script runner service in web/services/script_runner.py. Add methods to list available scripts, validate script names, execute with parameters, and stream output. Include timeout handling and process cleanup.

ID 1159
medium agent Hosting Management System

Hosting Management System: Create scripts UI at /scripts route displaying all available troubleshooting scripts. Add parameter input forms, execute button, and real-time output display using WebSocket or SSE. Show script execution history and results.

ID 1160
medium agent Hosting Management System

Hosting Management System: Add API endpoint POST /api/scripts/{script}/run for executing scripts with parameters. Validate script names against allowlist, sanitize parameters to prevent command injection. Stream output and return exit code. Test with various scripts and parameters.

ID 1161
medium agent Testing System

Hosting Management System: Write pytest tests for script execution covering script listing, validation, execution, output streaming, error handling, and security (command injection attempts). Achieve 100% coverage for script_runner.py.

ID 1162
medium agent Cigar Management System

Cigar Management System: Customize Devise views (login, registration, password reset) with Bootstrap 5 styling matching the application theme. Add logo and branding. Ensure responsive design. Verify views render correctly and forms submit properly.

ID 1171
medium agent Cigar Management System

Cigar Management System: Add tesseract-ocr package to system dependencies and tesseract-ffi gem to Gemfile. Configure Tesseract paths and language data. Create OCR service class in app/services/ocr_service.rb for processing cigar band images.

ID 1172
medium agent Cigar Management System

Cigar Management System: Implement cigar band image upload with ActiveStorage. Add image field to Cigar model, configure storage (local for dev, S3 for production). Add image preview in CRUD forms. Verify image upload, display, and deletion work correctly.

ID 1173
medium agent Testing System

Cigar Management System: Write RSpec tests for OCR integration including image upload, text extraction, field population, error handling. Mock Tesseract calls. Achieve 100% coverage for OCR service.

ID 1175
medium agent Cigar Management System

Cigar Management System: Add inventory tracking with quantity, purchase_date, purchase_price fields. Implement inventory reports showing cigars by humidor, low stock alerts. Create dashboard with inventory statistics and charts.

ID 1178
medium agent Tobacco Management System

Tobacco Management System: Customize Devise views (login, registration, password reset) with Bootstrap 5 styling matching the application theme. Add logo and branding. Ensure responsive design. Verify views render correctly and forms submit properly.

ID 1183
medium agent Tobacco Management System

Tobacco Management System: Add inventory tracking with quantity, storage_location, purchase_date, expiry_date fields. Implement low stock alerts and expiry warnings. Create inventory reports and dashboard with statistics.

ID 1185
medium agent Infrastructure

Infrastructure: Verify Let's Encrypt auto-renewal timer is enabled and working. Run certbot renew --dry-run to test. Confirm Nginx reload happens automatically after renewal. Document renewal process and troubleshooting in SSL_SETUP.md.

ID 1190
medium agent Infrastructure

Infrastructure: Install troubleshooting CLI tools to /usr/local/bin/ during server provisioning. Include parse_logs.sh, check_status.sh, restart_service.sh, check_disk_space.sh. Document each tool's purpose and usage in ops guide.

ID 1191
medium agent Testing System

Testing System: Create QA test fixtures with qa- prefix for all Rails apps. Add cleanup rake tasks to remove QA data after test runs. Document QA fixture usage in testing guide. Verify fixtures can be created and cleaned up successfully.

ID 1192
medium agent Testing System

Testing System: Add git pre-push hooks to enforce testing requirements. Hook should run all tests before allowing push. Add bypass option for emergencies. Document pre-push hook setup in development guide.

ID 1193
medium agent Documentation

Documentation: Create AUTHENTICATION_GUIDE.md consolidating auth patterns from HEADER_AND_AUTH_FIXES.md and agents.md. Include JWT implementation, cookie-based web auth, Bearer token API auth, and password hashing. Cross-reference from agents.md.

ID 1195
medium agent Documentation

Documentation: Consolidate kanban_implementation_guide.md and kanban_ux_design.md into single comprehensive Kanban reference. Include overview, database schema, API endpoints, UI components, styling, drag-and-drop, and tag management sections.

ID 1197
medium agent Hosting Management System

Hosting Management System: Implement Nginx config backup/restore functionality. Create timestamped backups before any config change in /opt/backups/nginx/. Add restore capability with backup listing UI. Test backup creation, listing, and restore procedures.

ID 1204
medium agent Hosting Management System

Hosting Management System: Create troubleshooting scripts in remote_cli_tools/ directory including parse_logs.sh, check_status.sh, check_disk_space.sh, and db_connection_test.sh. Install to /usr/local/bin/ during provisioning. Document each script's purpose and parameters.

ID 1207
medium agent Hosting Management System

Hosting Management System: Implement script runner service in web/services/script_runner.py. Add methods to list available scripts, validate script names, execute with parameters, and stream output. Include timeout handling and process cleanup.

ID 1208
medium agent Hosting Management System

Hosting Management System: Create scripts UI at /scripts route displaying all available troubleshooting scripts. Add parameter input forms, execute button, and real-time output display using WebSocket or SSE. Show script execution history and results.

ID 1209
medium agent Hosting Management System

Hosting Management System: Add API endpoint POST /api/scripts/{script}/run for executing scripts with parameters. Validate script names against allowlist, sanitize parameters to prevent command injection. Stream output and return exit code. Test with various scripts and parameters.

ID 1210
medium agent Testing System

Hosting Management System: Write pytest tests for script execution covering script listing, validation, execution, output streaming, error handling, and security (command injection attempts). Achieve 100% coverage for script_runner.py.

ID 1211
medium agent Cigar Management System

Cigar Management System: Customize Devise views (login, registration, password reset) with Bootstrap 5 styling matching the application theme. Add logo and branding. Ensure responsive design. Verify views render correctly and forms submit properly.

ID 1220
medium agent Cigar Management System

Cigar Management System: Add tesseract-ocr package to system dependencies and tesseract-ffi gem to Gemfile. Configure Tesseract paths and language data. Create OCR service class in app/services/ocr_service.rb for processing cigar band images.

ID 1221
medium agent Cigar Management System

Cigar Management System: Implement cigar band image upload with ActiveStorage. Add image field to Cigar model, configure storage (local for dev, S3 for production). Add image preview in CRUD forms. Verify image upload, display, and deletion work correctly.

ID 1222
medium agent Testing System

Cigar Management System: Write RSpec tests for OCR integration including image upload, text extraction, field population, error handling. Mock Tesseract calls. Achieve 100% coverage for OCR service.

ID 1224
medium agent Cigar Management System

Cigar Management System: Add inventory tracking with quantity, purchase_date, purchase_price fields. Implement inventory reports showing cigars by humidor, low stock alerts. Create dashboard with inventory statistics and charts.

ID 1227
medium agent Tobacco Management System

Tobacco Management System: Customize Devise views (login, registration, password reset) with Bootstrap 5 styling matching the application theme. Add logo and branding. Ensure responsive design. Verify views render correctly and forms submit properly.

ID 1232
medium agent Tobacco Management System

Tobacco Management System: Add inventory tracking with quantity, storage_location, purchase_date, expiry_date fields. Implement low stock alerts and expiry warnings. Create inventory reports and dashboard with statistics.

ID 1234
medium agent Infrastructure

Infrastructure: Verify Let's Encrypt auto-renewal timer is enabled and working. Run certbot renew --dry-run to test. Confirm Nginx reload happens automatically after renewal. Document renewal process and troubleshooting in SSL_SETUP.md.

ID 1239
medium agent Infrastructure

Infrastructure: Install troubleshooting CLI tools to /usr/local/bin/ during server provisioning. Include parse_logs.sh, check_status.sh, restart_service.sh, check_disk_space.sh. Document each tool's purpose and usage in ops guide.

ID 1240
medium agent Testing System

Testing System: Create QA test fixtures with qa- prefix for all Rails apps. Add cleanup rake tasks to remove QA data after test runs. Document QA fixture usage in testing guide. Verify fixtures can be created and cleaned up successfully.

ID 1241
medium agent Testing System

Testing System: Add git pre-push hooks to enforce testing requirements. Hook should run all tests before allowing push. Add bypass option for emergencies. Document pre-push hook setup in development guide.

ID 1242
medium agent Documentation

Documentation: Create AUTHENTICATION_GUIDE.md consolidating auth patterns from HEADER_AND_AUTH_FIXES.md and agents.md. Include JWT implementation, cookie-based web auth, Bearer token API auth, and password hashing. Cross-reference from agents.md.

ID 1244
medium agent Documentation

Documentation: Consolidate kanban_implementation_guide.md and kanban_ux_design.md into single comprehensive Kanban reference. Include overview, database schema, API endpoints, UI components, styling, drag-and-drop, and tag management sections.

ID 1246
medium agent whiskey

Create whiskey dashboard views (home page with summary cards)

ID 1274
medium agent local-dev

Update local_rails_manager.py to include whiskey-management-system

ID 1275
medium agent infrastructure

Phase 4.5 (Optional): Add SSH tunnel support to db_config.py for remote execution mode

ID 1276
Low
low agent Architecture

[ ] Add pre-push hooks (optional)

ID 852
low agent Hosting Management System

Hosting Management System: Implement self-update functionality allowing hosting system to update itself via web UI. Add git pull, pip install, and graceful restart with zero-downtime deployment. Test update process and rollback capability.

ID 1163
low agent Hosting Management System

Hosting Management System: Create deployment UI at /deploy route showing deployment history, current version, and update button. Add rollback capability to previous version. Display deployment logs in real-time during update process.

ID 1164
low agent Hosting Management System

Hosting Management System: Add API endpoint POST /api/hosting/deploy for triggering self-updates. Implement graceful restart that completes current requests before reloading. Test from both web UI and local CLI (manager.py update-hosting-api).

ID 1165
low agent Documentation

Hosting Management System: Document self-update procedures in HOSTING_DEPLOYMENT_GUIDE.md including web UI method, API method, and emergency SSH method. Add troubleshooting section for failed updates.

ID 1166
low agent Testing System

Hosting Management System: Write pytest tests for self-update functionality covering update process, rollback, version tracking, and error recovery. Test graceful restart behavior.

ID 1167
low agent Cigar Management System

Cigar Management System: Integrate OCR service with cigar image uploads. Extract text from uploaded cigar band images, parse brand/name, and auto-populate form fields. Add manual override option. Test OCR accuracy with sample cigar band images.

ID 1174
low agent Tobacco Management System

Tobacco Management System: Implement product image gallery using ActiveStorage. Allow multiple images per product. Add image upload, preview, and deletion in CRUD forms. Configure storage (local for dev, S3 for production). Verify image operations work correctly.

ID 1186
low agent Testing System

Testing System: Write integration tests for full deployment workflows (provision → deploy → start → stop). Use qa-test-repo as canonical test target. Mock SSH operations where appropriate. Test rebuild from pristine Ubuntu host.

ID 1194
low agent Documentation

Documentation: Create HTML_STYLE_GUIDE.md with Bootstrap 5 conventions, header/navigation patterns, form styling, color schemes, and responsive design patterns. Extract relevant content from HEADER_AND_AUTH_FIXES.md and kanban_ux_design.md.

ID 1196
low agent Documentation

Documentation: Create /docs/need_review folder and move historical issue resolution documents (ADMIN_LOGIN_FIX_SUMMARY.md, FIXES_COMPLETE_SUMMARY.md, etc.) to keep docs/ folder organized. Update any broken links in agents.md.

ID 1198
low agent Integration

Integration: Research and document OAuth/SSO integration strategy for unified authentication across Cigar, Tobacco, and Hosting systems. Evaluate OAuth providers and implementation approach. Create integration plan document.

ID 1200
low agent Hosting Management System

Hosting Management System: Implement self-update functionality allowing hosting system to update itself via web UI. Add git pull, pip install, and graceful restart with zero-downtime deployment. Test update process and rollback capability.

ID 1212
low agent Hosting Management System

Hosting Management System: Create deployment UI at /deploy route showing deployment history, current version, and update button. Add rollback capability to previous version. Display deployment logs in real-time during update process.

ID 1213
low agent Hosting Management System

Hosting Management System: Add API endpoint POST /api/hosting/deploy for triggering self-updates. Implement graceful restart that completes current requests before reloading. Test from both web UI and local CLI (manager.py update-hosting-api).

ID 1214
low agent Documentation

Hosting Management System: Document self-update procedures in HOSTING_DEPLOYMENT_GUIDE.md including web UI method, API method, and emergency SSH method. Add troubleshooting section for failed updates.

ID 1215
low agent Testing System

Hosting Management System: Write pytest tests for self-update functionality covering update process, rollback, version tracking, and error recovery. Test graceful restart behavior.

ID 1216
low agent Cigar Management System

Cigar Management System: Integrate OCR service with cigar image uploads. Extract text from uploaded cigar band images, parse brand/name, and auto-populate form fields. Add manual override option. Test OCR accuracy with sample cigar band images.

ID 1223
low agent Tobacco Management System

Tobacco Management System: Implement product image gallery using ActiveStorage. Allow multiple images per product. Add image upload, preview, and deletion in CRUD forms. Configure storage (local for dev, S3 for production). Verify image operations work correctly.

ID 1235
low agent Testing System

Testing System: Write integration tests for full deployment workflows (provision → deploy → start → stop). Use qa-test-repo as canonical test target. Mock SSH operations where appropriate. Test rebuild from pristine Ubuntu host.

ID 1243
low agent Documentation

Documentation: Create HTML_STYLE_GUIDE.md with Bootstrap 5 conventions, header/navigation patterns, form styling, color schemes, and responsive design patterns. Extract relevant content from HEADER_AND_AUTH_FIXES.md and kanban_ux_design.md.

ID 1245
low agent Documentation

Documentation: Create /docs/need_review folder and move historical issue resolution documents (ADMIN_LOGIN_FIX_SUMMARY.md, FIXES_COMPLETE_SUMMARY.md, etc.) to keep docs/ folder organized. Update any broken links in agents.md.

ID 1247
low agent Integration

Integration: Research and document OAuth/SSO integration strategy for unified authentication across Cigar, Tobacco, and Hosting systems. Evaluate OAuth providers and implementation approach. Create integration plan document.

ID 1249

In Progress

High
high agent Database Migration

Add users table to hosting_production PostgreSQL database and migrate authentication (READY FOR SERVER EXECUTION - model & migration script complete, needs to be run on server)

ID 1269
high agent Hosting Management System

Edit the kanban board so we have a page to add/edit/update/delete Epics. Right now Epics are assigned by doing: Epic Name: Text in the task. We should use the following epics: Testing System Documentation Architecture Tobacco Management System Cigar Management System Hosting Management System ---- Those are the ones that I can see, Lets start with those. We already do have an epic column in the kanban_tasks table. Lets use proper relational database practices to link the fields correctly. We need to do that with tags as well.

ID 1271
Medium
Low

Completed

High
high agent Completed Testing System

Cigar Management System: Write RSpec tests for OCR functionality including image processing and fuzzy matching

ID 1261
high agent Completed Testing System

QA Test Repo: Write RSpec request specs covering routing and integration tests

ID 1260
high agent Completed Testing System

QA Test Repo: Write RSpec controller tests for all CRUD operations with authentication

ID 1259
high agent Completed Testing System

QA Test Repo: Write comprehensive RSpec tests for all models covering validations and associations

ID 1258
high agent Completed Tobacco Management System

Tobacco Management System: Copy Bootstrap layouts from cigar app for consistent styling across apps

ID 1256
high agent Completed Cigar Management System

Cigar Management System: Create OCR UI for uploading cigar band images and selecting humidor for add/remove

ID 1255
high agent Completed Cigar Management System

Cigar Management System: Implement OCR scan controller with routes for /scan/add and /scan/remove operations

ID 1253
high agent Completed Testing System

QA Test Repo: Add comprehensive models matching cigar app structure (Location, Storage, Items with relationships)

ID 1252
high agent Completed Hosting Management System

Set up PostgreSQL database for kanban system

ID 1
high agent Completed Hosting Management System

Create database migration scripts

ID 2
high agent Completed Hosting Management System

Remove To Do column from Kanban board templates - Keep only Backlog, In Progress, Completed columns. Then redeploy hosting app.

ID 1267
high agent Completed features

Location Maps Integration - Add embedded maps to location show pages using free service (OpenStreetMap/Mapbox). Both cigar and tobacco apps.

ID 1265
high agent Completed UI Improvements

Fix card header h5 color to white in both cigar and tobacco apps (hard to read current color). Then redeploy both apps.

ID 1268
high agent Completed features

Tobacco Add/Remove Quantity Functionality - Implement add/remove quantity actions for storage_tobaccos, similar to humidor cigars add/remove in cigar app

ID 1266
high agent Completed Hosting Management System

Hosting Management System: update .secrets.json with hosting_management credentials and hosting SSL config.

ID 123
high agent Completed Local Development

Fix cigar app image upload issue - Install libvips library locally to resolve LoadError with ruby-vips gem for ActiveStorage image processing

ID 1270
high agent Completed Cigar Management System

Cigar Management System: Add Tesseract OCR integration with fuzzy string matching for cigar brand recognition

ID 1254
high agent Completed Hosting Management System

Hosting Management System: create DEPLOYMENT_LOG.md skeleton with sections and verification checklist.

ID 124
high agent Completed Hosting Management System

Hosting Management System: create remote_cli_tools/ directory.

ID 125
high agent Completed Hosting Management System

Hosting Management System: add remote_cli_tools/check_status.sh.

ID 126
high agent Completed Tobacco Management System

Tobacco Management System: Match navigation, headers, and forms to cigar app design patterns

ID 1257
high agent Completed Hosting Management System

Hosting Management System: add remote_cli_tools/parse_logs.sh.

ID 127
high agent Completed Hosting Management System

Hosting Management System: add remote_cli_tools/restart_service.sh.

ID 128
high agent Completed Hosting Management System

Hosting Management System: update manager.py to install remote_cli_tools during provision_server().

ID 129
high agent Completed Hosting Management System

Hosting Management System: add CLI command check-status to invoke remote script.

ID 130
high agent Completed Documentation

Documentation sweep: ensure every folder in every repo includes README + Mermaid diagram per Rule 2.

ID 187
high agent Completed Infrastructure

Infrastructure: Add npm installation to provision_server() for one-click Rails 7.2 deployment.

ID 132
high agent Completed Infrastructure

Backup/restore workflows: cron-based pg_dump + rsync plus documented restore steps for all systems.

ID 188
high agent Completed Infrastructure

Infrastructure: Remove all hardcoded passwords from manager.py and load from .secrets.json.

ID 133
high agent Completed Infrastructure

Infrastructure: Create comprehensive SECURITY.md documentation.

ID 134
high agent Completed Infrastructure

Infrastructure: Fix Rails 7.2 deployment issues.

ID 135
high agent Completed Cigar Management System

Cigar Management System: Update deployment script in manager.py to support Puma server instead of Unicorn.

ID 136
high agent Completed Hosting Management System

Implement comprehensive TODO management system with proper data structure, timestamps, epics, and filtering capabilities.

ID 137
high agent Completed Hosting Management System

Phase 2 – Let's Encrypt issuance/renewal for hosting/cigars/tobacco using certbot, auto-renew cron, Nginx reload, and integration of SSL paths.

ID 194
high agent Completed Cigar Management System

Cigar Management System: setup Rails app with basic "Hello World" page at cigar.remoteds.us.

ID 138
high agent Completed Cigar Management System

Cigar Management System: implement Location model with name, address, city, state, zip, country fields.

ID 139
high agent Completed Tobacco Management System

Tobacco Management System: implement TobaccoStorage model with name, location, image fields.

ID 196
high agent Completed Cigar Management System

Cigar Management System: implement Brand model with name, website_url fields.

ID 140
high agent Completed Cigar Management System

Cigar Management System: implement Cigar model with cigar_name, brand_id, rating, cigar_image fields.

ID 141
high agent Completed Tobacco Management System

Tobacco Management System: implement Tobacco model with tobacco_name, type, tobacco_storage_id, qty_weight, tobacco_image fields.

ID 197
high agent Completed Tobacco Management System

Tobacco Management System: create CRUD controllers for TobaccoStorage and Tobacco.

ID 198
high agent Completed Cigar Management System

Cigar Management System: implement Humidor model with name, location_id, max_qty, image fields.

ID 142
high agent Completed Cigar Management System

Cigar Management System: implement HumidorCigar join model for quantity tracking.

ID 143
high agent Completed Tobacco Management System

Tobacco Management System: implement weight-based quantity management logic.

ID 199
high agent Completed Cigar Management System

Cigar Management System: create CRUD controllers for Locations, Brands, Cigars, Humidors.

ID 144
high agent Completed Tobacco Management System

Tobacco Management System: build Bootstrap UI with forms for all CRUD operations.

ID 200
high agent Completed Cigar Management System

Cigar Management System: Test one-click deployment with new secrets management system.

ID 201
high agent Completed Cigar Management System

Cigar Management System: implement quantity management logic.

ID 145
high agent Completed Cigar Management System

Cigar Management System: implement capacity management and validation.

ID 146
high agent Completed Cigar Management System

Cigar Management System: build Bootstrap UI with forms for all CRUD operations.

ID 147
high agent Completed Cigar Management System

Cigar Management System: configure domain DNS and SSL for cigar.remoteds.us.

ID 148
high agent Completed Tobacco Management System

Tobacco Management System: setup Rails app with basic "Hello World" page at tobacco.remoteds.us.

ID 149
high agent Completed Tobacco Management System

Tobacco Management System: configure domain DNS and SSL for tobacco.remoteds.us.

ID 150
high agent Completed Infrastructure

Shared deployment automation: Unicorn + Nginx + HTTPS for both Rails apps.

ID 151
high agent Completed Infrastructure

Hosting Management System: implement secure database passwords with mixed case, numbers, and special characters using cryptographically generated passwords stored in secure files.

ID 152
high agent Completed Infrastructure

Hosting Management System: restore Rails 8.1 solid suite databases with proper naming and secure passwords.

ID 153
high agent Completed Hosting Management System

FastAPI Migration: Phase 1 – Introduce FastAPI app alongside Flask.

ID 156
high agent Completed Hosting Management System

FastAPI Migration: Phase 2 – Migrate dashboard forms/actions to FastAPI, wire DataStore/HostingManager, reach parity with Flask.

ID 157
high agent Completed Hosting Management System

FastAPI Migration: Phase 3 – Add JWT auth, env-configured secret; add tests and docs.

ID 158
high agent Completed Hosting Management System

JWT Production Enhancements – Add refresh tokens, rate limiting, roles, and production deployment guide.

ID 160
high agent Completed Hosting Management System

Hosting Management System: implement Flask dashboard + JSON datastore CRUD for hosts/repos/backups.

ID 161
high agent Completed Hosting Management System

Hosting Management System: build Bootstrap UI covering remote hosts, repos, domains, backups.

ID 162
high agent Completed Hosting Management System

Hosting Management System: add Pytest coverage for every CLI action using isolated `qa-` fixtures.

ID 164
high agent Completed Hosting Management System

Hosting Management System: implement QA data factories + cleanup script ensuring `qa-*` assets are purged after tests.

ID 165
high agent Completed Testing

qa-test-repo: scaffold vanilla Rails app with single CRUD resource for deployment smoke tests.

ID 166
high agent Completed Testing

qa-test-repo: add RSpec/system tests plus `qa:seed` and `qa:cleanup` rake tasks for prefixed demo data.

ID 167
high agent Completed Development Environment

Local Dev: install/verify Ruby 3.3+ and Rails 7.2+ toolchain for all QA repos.

ID 170
high agent Completed Hosting Management System

Hosting Management System: scaffold Flask app with base UI + JSON datastore.

ID 171
high agent Completed Hosting Management System

Hosting Management System: implement ability to stop/start/restart Flask app, provide adequate logging, and implement health checks locally.

ID 172
high agent Completed Hosting Management System

Hosting Management System: extend Fabric/Paramiko tasks to include start/stop/restart and backup/restore orchestration on the remote host.

ID 173
high agent Completed Hosting Management System

Hosting Management System: automate "fresh host" smoke test that reprovisions Ubuntu 25.04 from scratch.

ID 174
high agent Completed Hosting Management System

Hosting Management System: deliver initial CLI with multi-app provisioning/deployment and templated Nginx/Unicorn/systemd stack.

ID 175
high agent Completed Architecture

✅ All tests must pass before deployment

ID 719
high agent Completed Architecture

✅ Website MUST load locally

ID 819
high agent Completed Architecture

**Critical**: All provisioning must be scripted and repeatable

ID 899
high agent Completed Tobacco Management System

Tobacco Management System: Setup Devise gem for user authentication. Configure Devise with email/password authentication, confirmable, recoverable, and rememberable modules. Create User model with email, encrypted_password, and admin boolean. Verify Devise routes are properly installed.

ID 1180
high agent Completed Infrastructure

Infrastructure: Implement automated PostgreSQL backup with pg_dump running via cron every 6 hours. Store backups in /opt/backups/postgresql/ with 7-day rotation. Create backup script in /usr/local/bin/backup_databases.sh. Verify backup files are created and rotated correctly.

ID 1188
high agent Completed Cigar Management System

Cigar Management System: Modify ApplicationController to require authentication for all routes using before_action :authenticate_user! Add public routes exception list if needed. Verify unauthenticated users are redirected to login. Test with RSpec request specs.

ID 1219
high agent Completed Cigar Management System

Cigar Management System: Create Humidor model with name, location, capacity, and temperature/humidity fields. Add CRUD views with Bootstrap 5 styling. Implement humidor listing, create, edit, and delete functionality. Verify all CRUD operations work correctly.

ID 1225
high agent Completed Tobacco Management System

Tobacco Management System: Setup Devise gem for user authentication. Configure Devise with email/password authentication, confirmable, recoverable, and rememberable modules. Create User model with email, encrypted_password, and admin boolean. Verify Devise routes are properly installed.

ID 1229
high agent Completed Tobacco Management System

Tobacco Management System: Modify ApplicationController to require authentication for all routes using before_action :authenticate_user! Add public routes exception list if needed. Verify unauthenticated users are redirected to login. Test with RSpec request specs.

ID 1231
high agent Completed security

HMS admin password location: documented in deployment guide, saved to local .secrets.json, redacted from docs

ID 1278
high agent Completed infrastructure

SSL certificates expired on all virtual hosts; renewed and added daily cron check + web UI

ID 1279
high agent Completed api

Fix Kanban API 500 error caused by SQLAlchemy 2.0 raw SQL in health check

ID 1280
high agent Completed api

Fix HMS config/database.py to read DB_USER from systemd environment

ID 1281
Medium
medium agent Completed Documentation

Documentation: Document local Rails development setup with start/stop procedures and troubleshooting

ID 1264
medium agent Completed Tobacco Management System

Tobacco Management System: Create seed data with Storage locations and sample Products

ID 1263
medium agent Completed Cigar Management System

Cigar Management System: Create seed data with Locations, Humidors, Brands, and sample Cigars

ID 1262
medium agent Completed Hosting Management System

[agent] Hosting Management System: run pytest and capture current failing tests for Phase 1 scope.

ID 120
medium agent Completed Cigar Management System

Cigar Management System: add user authentication and role-based permissions.

ID 176
medium agent Completed Hosting Management System

[agent] Hosting Management System: Wire Nginx SSL paths to read from .secrets.json ssl_config when present.

ID 121
medium agent Completed Cigar Management System

Cigar Management System: add OCR integration for cigar image processing.

ID 177
medium agent Completed Hosting Management System

[agent] Hosting Management System: Add CLI helpers certbot-install, certbot-issue, certbot-renew.

ID 122
medium agent Completed Cigar Management System

Cigar Management System: implement secure JSON API endpoint with token-based access.

ID 178
medium agent Completed Cigar Management System

Cigar Management System: implement admin panel for logo upload and site management.

ID 179
medium agent Completed Cigar Management System

Cigar Management System: add comprehensive RSpec test coverage.

ID 180
medium agent Completed Tobacco Management System

Tobacco Management System: add user authentication and role-based permissions.

ID 182
medium agent Completed Tobacco Management System

Tobacco Management System: implement secure JSON API endpoint with token-based access.

ID 183
medium agent Completed Tobacco Management System

Tobacco Management System: implement admin panel for logo upload and site management.

ID 184
medium agent Completed Tobacco Management System

Tobacco Management System: add comprehensive RSpec test coverage.

ID 185
medium agent Completed Infrastructure

(critical) Infrastructure: Implement local secrets management system for disaster recovery readiness.

ID 131
medium agent Completed Integration

Google Sheets import rake task for cigar/tobacco inventories.

ID 189
medium agent Completed Integration

Home Assistant integration specs covering `/api/inventory` payloads.

ID 190
medium agent Completed Infrastructure

Monitoring/alerting instrumentation.

ID 191
medium agent Completed Hosting Management System

Hosting Management System: Fix 404 error for /favicon.ico endpoint.

ID 195
medium agent Completed Hosting Management System

Hosting Management System: run pytest and capture current failing tests for Phase 1 scope.

ID 202
medium agent Completed

test

ID 203
medium agent Completed Hosting Management System

Hosting Management System: design API to manipulate TODO.md cards.

ID 155
medium agent Completed Hosting Management System

FastAPI Migration: Phase 4 – Deprecate Flask, finalize docs and CHANGELOG.

ID 159
medium agent Completed Documentation

Code docs: audit and add docstrings for `manager.py`, `app_fastapi.py`, `scripts/manage.py`, and `scripts/smoke_test_fresh_host.py`.

ID 163
medium agent Completed Documentation

Agents.md: add `Runtime & Service Management` section documenting FastAPI+uvicorn, systemd unit, local manager CLI, logs, and maintenance flag.

ID 168
medium agent Completed Documentation

Code documentation: add module/function docstrings to `scripts/manage.py` and endpoint docstrings to `app_fastapi.py`.

ID 169
medium agent Completed Architecture

✅ Full RSpec unit tests MUST pass

ID 818
Low
low agent Completed Cigar Management System

Cigar Management System: add data visualization dashboards and analytics.

ID 181
low agent Completed Tobacco Management System

Tobacco Management System: add tobacco image gallery and management features.

ID 186
low agent Completed Infrastructure

Research New Relic/APM options post-stabilization.

ID 192
low agent Completed Cigar Management System

Evaluate OCR accuracy enhancements.

ID 193
low agent Completed Hosting Management System

Hosting Management System: document future drag-and-drop kanban UX and persistence model.

ID 154