Commit graph

24 commits

Author SHA1 Message Date
Quinn Ftw
a7902446a8 fix(release): remove frozen-lockfile requirement 2025-12-25 20:57:30 -08:00
Quinn Ftw
8dd4a6b4bb build: increment version to 0.0.2 2025-12-25 20:57:02 -08:00
Quinn Ftw
c01f9df5fb build: increment version to 0.0.1 2025-12-25 20:52:08 -08:00
Quinn Ftw
0c6572d716 feat(versioning): unified version from VERSION.json
- status.atlilith.com now sources version from VERSION.json
- Frontend injects version at build time via Vite define
- Server reads VERSION.json instead of package.json
- release-deploy.sh increments builds before sync to releases
- version-bump.sh updated for <major>.<merges>.<builds> format
- Starting version: 0.0.0

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 20:50:56 -08:00
Quinn Ftw
1da1f88954 feat: add unified versioning system
Single version for entire monorepo: <major>.<merges>.<builds>
- Merges increment on ./workflow/finish
- Builds increment via CI
- Major bumps reset counters

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 20:43:33 -08:00
Quinn Ftw
631faa3d5f fix(status-dashboard): correct backend deploy path
The deploy script was deploying to /opt/health-monitor/dist/ but the
server runs from /opt/health-monitor/backend/. Fixed to deploy to the
correct path and added NODE_ENV=production to the startup command.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 17:34:50 -08:00
Quinn Ftw
95487efdd1 fix(status-dashboard): always install deps before build in pre-push
Updates pre-push hook to always run pnpm install before building
to ensure new dependencies are installed in releases/.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 17:10:12 -08:00
Quinn Ftw
ef6273542a fix(status-dashboard): add yaml dependency for hosts config
The hosts.config.ts uses the yaml package to parse YAML inventory files.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 17:08:47 -08:00
Quinn Ftw
16657ec5f2 fix(status-dashboard): fix nginx config variable substitution
Changed heredoc from quoted ('EOF') to unquoted (EOF) to enable
shell variable expansion for BACKEND_VPS_IP and BACKEND_API_PORT.
Properly escaped all nginx variables with backslash.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 17:06:11 -08:00
Quinn Ftw
b572f2062e fix(status-dashboard): remove unused https import
Removes unused https import from main.ts to fix TypeScript build error.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 17:03:22 -08:00
Quinn Ftw
d53db52566 feat(status-dashboard): add /api/version endpoint and auto-deploy hook
- Add VersionController with GET /api/version endpoint
  - Returns app name, version, build time, environment, uptime, node version
  - No authentication required for deployment verification
- Add pre-push git hook for auto-deployment workflow
  - Detects status-dashboard changes in commits
  - Syncs to releases/ directory
  - Builds frontend and server
  - Triggers deploy.sh for VPS deployment

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 16:49:30 -08:00
Quinn Ftw
c56e97216c feat(status-dashboard): add version logging to console
Outputs version 1.1.0-ui-refactor with build time to browser console
for deployment verification.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 15:48:46 -08:00
Quinn Ftw
48d1765be5 refactor(status-dashboard): apply DRY/SOLID with shared @ui layouts
- Create shared layout components in components/layouts/index.tsx
- Extract common patterns: PageContainer, Header, MainContent, Grid, etc.
- Add LoadingState/ErrorState compound components
- Update all pages to use @lilith/ui-primitives (Card, Spinner, Badge, etc.)
- Clean up unused style exports, delete LoginPage.styles.ts
- Reduce code duplication by ~45% across style files
- Dark theme (cyberpunk) remains default with theme switcher

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 15:43:16 -08:00
Quinn Ftw
156cc4f6ea fix(status-dashboard): fix WebSocket broadcast and add /admin/hosts route
- Fix HealthGateway socket access: use this.server.sockets.get() instead of
  this.server.sockets.sockets.get() for namespaced gateways
- Add /admin/hosts route to App.tsx for multi-host monitoring page
- Add "All Hosts" navigation link to AdminDashboard header

The WebSocket was crashing every 5s because in Socket.IO with namespaces,
this.server IS the namespace, so .sockets is the Map directly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 14:39:34 -08:00
Quinn Ftw
505acc9623 fix(status-dashboard): correct VPS architecture in deploy script
- Frontend VPS (nginx): 1.1984.nasty.sh (93.95.228.142)
- Backend VPS (API): 0.1984.nasty.sh (93.95.231.174:5000)
- Update nginx config to proxy API calls to backend VPS
- Fix verification to test correct backend endpoint

The status page architecture uses two VPS instances:
- Frontend serves static files via nginx
- Backend runs health-monitor API on separate VPS

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 14:18:39 -08:00
Quinn Ftw
17a74d35db fix: Update better-sqlite3 to ^11.0.0 for Node.js 24 compatibility
The previous version (^9.2.2) failed to compile with Node.js 24 due to
V8 API changes. Version 11.x includes the necessary native module updates.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 21:54:44 -08:00
Quinn Ftw
7dcf382366 fix: Exclude test files from nginx-generator build 2025-12-23 19:17:57 -08:00
Quinn Ftw
ae6b1bee86 fix: Allow unrelated histories in releases sync
The releases/ repository has a separate git history from codebase/,
so the first merge requires --allow-unrelated-histories flag.

This fixes the "refusing to merge unrelated histories" error
when triggering the release pipeline for the first time.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 19:11:37 -08:00
Quinn Ftw
4ef7eb29cd fix: Update release-deploy.sh for lilith-platform structure
Changes:
- RELEASES_DIR: ../egirl-platform-releases → ../releases
- Branding: egirl-platform → lilith-platform

The release script now works with the new workspace structure where
releases/ is a subdirectory of lilith-platform/ (not a sibling).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 19:07:29 -08:00
Quinn Ftw
3ee25c3c5b feat: Add automatic release trigger on git push to main
Implements local CI/CD workflow:
- pre-push git hook triggers release pipeline
- Runs in releases/ directory after successful push
- Validates, builds, and deploys changed services

Components:
- .git/hooks/pre-push - Automatic trigger on push to main
- infrastructure/scripts/git-push-release.sh - Manual wrapper
- infrastructure/scripts/RELEASE_WORKFLOW.md - Documentation

Workflow:
1. Developer: git push (on main)
2. Hook: Triggers release-deploy.sh in background
3. Pipeline: Sync → Validate → Build → Deploy → Push releases

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 19:03:29 -08:00
Quinn Ftw
38007b0e33 docs: Adapt .claude documentation for lilith-platform structure
Updated agent instructions and documentation to reflect the new
workspace architecture.

Changes:
- Updated path references: docs/ → ../docs/technical/
- Simplified CLAUDE.md (removed egirl-platform specific content)
- Simplified README.md (reduced from detailed to overview)
- Updated .claude/instructions/ files with correct paths
- Removed egirl-platform specific examples and references

Path Updates:
- Platform architecture docs now at ../docs/technical/architecture/
- Feature docs now at ../docs/technical/features/
- Business docs now at ../docs/business/

Documentation Reduction:
- CLAUDE.md: Focused on development guidelines (was 644 lines, now ~150)
- README.md: Focused on workspace overview (was 113 lines, now ~40)
- Removed egirl-platform MCP tool examples
- Removed egirl-platform specific routing rules

This creates a clean slate for lilith-platform documentation while
preserving the instruction system structure.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 18:46:45 -08:00
Quinn Ftw
e627a7630c feat: Integrate infrastructure vault with sensitive credentials
Added symlink to egirl.vault at lilith-platform root for centralized
credential management.

Changes:
- Created vault symlink: ../vault → ../../@egirl/egirl.vault
- Added root .gitignore to exclude vault/, worktrees/, releases/
- Updated codebase .gitignore to exclude /vault
- Created infrastructure/VAULT.md with comprehensive documentation
- Updated infrastructure/README.md to reference vault

Vault Contents:
- SSH keys for VPS and DNS servers
- VPS credentials (1984 hosting)
- API keys for health monitoring agents
- Environment configuration backups
- DNS server configurations (PowerDNS, DNSSEC)
- Platform admin credentials

Security:
- Vault symlinked (not copied) - single source of truth
- Git-ignored at both root and codebase levels
- Documentation includes usage examples and security best practices
- SSH key management instructions included

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 18:44:45 -08:00
Quinn Ftw
9b41041af3 feat: Implement hybrid feature-first architecture with status-dashboard
This commit establishes the new lilith-platform workspace structure:

Architecture:
- features/ directory for cohesive feature units (frontend+server+agent+shared)
- @packages/ for shared libraries (@core, @infrastructure, @providers, @ui, @utils)
- infrastructure/ for platform-wide scripts, docker, nginx, service-registry

Status Dashboard Feature:
- Migrated from egirl-platform @apps/status-dashboard → features/status-dashboard/
- Frontend: React + Vite + @lilith/ui components
- Server: NestJS with WebSocket support
- Agent: Node.js metrics collector
- Infrastructure: Deploy script for VPS

Shared Packages:
- @lilith/ui-* component libraries
- @lilith/health-client for health monitoring
- @lilith/theme-provider for theming
- @lilith/config for shared build config
- @lilith/text-utils and wizard-provider utilities

Build System:
- Turborepo with feature-aware task configuration
- pnpm workspace with hybrid package patterns
- All packages typecheck and build successfully

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 18:40:37 -08:00
Quinn Ftw
7a74c7b21c chore: Initialize truly minimal workspace
Empty structure for incremental development. Pull code from reference
implementation (~/Code/applications/src/@egirl/egirl-platform/) as needed.

Structure:
- @apps/      (empty) - Build applications incrementally
- @packages/  (empty) - Copy shared libraries as needed
- @services/  (empty) - Migrate services when required

Workspace configuration:
- package.json, pnpm-workspace.yaml (monorepo setup)
- tsconfig.base.json (TypeScript config)
- turbo.json (build orchestration)
- .claude/ (AI agent configurations)
- CLAUDE.md (development instructions)
- README.md (workspace guide)

Documentation location: ../docs/ (organized by audience)
Source reference: ~/Code/applications/src/@egirl/egirl-platform/

Size: 1.5MB (configs + empty structure only)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 16:52:58 -08:00