153 Commits

Author SHA1 Message Date
32253724b0 Update frontend/app/providers.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-30 22:43:00 +00:00
f9d781271f Update frontend/lib/store/authErrorHandler.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-30 22:42:47 +00:00
69dee82d89 Update frontend/lib/api.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-30 22:42:23 +00:00
5343fd9f51 Update frontend/lib/store/authSlice.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-30 22:42:10 +00:00
Claude
b580744f32 Fix logout and auth redirect issues with Redux implementation
- Install Redux Toolkit and React Redux
- Create Redux store with auth slice for centralized state management
- Implement global auth error handler to redirect to login on auth failures
- Update API client to trigger auth errors on 401 responses
- Replace React Context auth with Redux throughout the app
- Fix logout button to properly clear auth state and redirect
- Add automatic redirect to dashboard when already logged in on login page
- Add automatic redirect to login when not authenticated on dashboard
- Improve error handling for all container API methods

https://claude.ai/code/session_01U3wVqokhrL3dTeq2dTq73n
2026-01-30 22:22:12 +00:00
dependabot[bot]
cc2915e82d Bump python-socketio in /backend in the pip group across 1 directory
Bumps the pip group with 1 update in the /backend directory: [python-socketio](https://github.com/miguelgrinberg/python-socketio).


Updates `python-socketio` from 5.11.0 to 5.14.0
- [Release notes](https://github.com/miguelgrinberg/python-socketio/releases)
- [Changelog](https://github.com/miguelgrinberg/python-socketio/blob/main/CHANGES.md)
- [Commits](https://github.com/miguelgrinberg/python-socketio/compare/v5.11.0...v5.14.0)

---
updated-dependencies:
- dependency-name: python-socketio
  dependency-version: 5.14.0
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-30 22:03:12 +00:00
5daee2d445 Merge pull request #12 from johndoe6345789/claude/setup-docker-nodejs-rmRNK
Fix SSR compatibility for xterm terminal component
v1.5.0
2026-01-30 21:55:48 +00:00
Claude
a59b5ad527 Fix SSR build error by dynamically importing xterm modules
The Next.js build was failing with "ReferenceError: self is not defined"
during static page generation for the /dashboard page. This occurred because
the @xterm/xterm library uses browser-specific APIs like 'self' which are
not available during server-side rendering.

Fixed by:
- Converting xterm Terminal and FitAddon imports to dynamic imports
- Using type-only imports for TypeScript types
- Loading modules asynchronously only when the component is mounted in the browser
- Keeping CSS import at top level (safe for SSR as it's handled by bundler)

This ensures xterm code only executes in the browser environment while
maintaining full functionality of the interactive terminal feature.

https://claude.ai/code/session_01FwrvrFYEkL58b9HxjGDNUM
2026-01-30 21:54:00 +00:00
995b7442d7 Merge pull request #11 from johndoe6345789/claude/improve-responsiveness-add-buttons-VTdzq
Add container lifecycle management and improve mobile responsiveness
v1.4.0
2026-01-30 21:40:52 +00:00
Claude
ce997ebdda Add automatic fallback to Simple mode when Interactive terminal fails
Frontend changes (TerminalModal.tsx):
- Added fallback state tracking (interactiveFailed, fallbackReason)
- Implemented fallbackToSimpleMode() function for automatic mode switching
- Added connection attempt tracking to prevent infinite retry loops
- Enhanced WebSocket error handling:
  * Detects connection errors (connect_error event)
  * Falls back after 2 failed connection attempts
  * Identifies critical errors (auth, Docker connection failures)
  * Handles unexpected disconnections (transport errors)
- Added prominent notification system:
  * Snackbar alert appears at top-center when fallback occurs
  * Displays reason for fallback to user
  * Includes "Retry" button for easy reconnection attempt
  * Auto-dismisses after 10 seconds
- Visual feedback in mode toggle:
  * Interactive button shows warning icon when failed
  * Orange color indicates failure state
  * Tooltip updates to show failure and retry option
- Smart retry functionality:
  * Resets failure state and connection attempts
  * Clears error messages on retry
  * Can be triggered via notification button or toggle switch

User experience improvements:
- No silent failures - users always know why Interactive mode didn't work
- One-click retry makes recovering from transient errors easy
- Automatic fallback ensures terminal always works (degrades gracefully)
- Clear visual indicators prevent confusion about current mode state

https://claude.ai/code/session_01UFVy14uUD5Q7DjkUSgUFXC
2026-01-30 21:38:56 +00:00
Claude
d9c790c560 Add interactive terminal mode with sudo, nano, and vim support
Backend changes:
- Added flask-socketio and python-socketio for WebSocket support
- Implemented WebSocket endpoint /terminal for interactive terminal sessions
- Added bidirectional communication between client and container PTY
- Enabled full bash shell with stdin support for interactive commands
- Updated server startup to use socketio.run

Frontend changes:
- Added xterm.js (@xterm/xterm) and socket.io-client dependencies
- Added FitAddon for responsive terminal sizing
- Implemented mode toggle between "Simple" and "Interactive" modes
- Created interactive terminal with full PTY support using xterm.js
- Connected WebSocket to backend for real-time command execution
- Added empty directory detection for ls commands in simple mode
- Terminal now defaults to interactive mode for better UX

Features:
- Interactive mode supports sudo with password prompts
- Full support for interactive editors (nano, vim, emacs)
- Proper terminal emulation with color support and control sequences
- Responsive terminal sizing and window resize handling
- Empty folder detection shows "(empty directory)" message
- Mode toggle allows switching between simple and interactive modes

https://claude.ai/code/session_01UFVy14uUD5Q7DjkUSgUFXC
2026-01-30 21:33:54 +00:00
Claude
237ebcede1 Improve responsiveness and add container control buttons
- Added backend API endpoints for start/stop/restart/remove container operations
- Updated frontend API client with new container control methods
- Added start/stop/restart/remove buttons to ContainerCard with status-based visibility
- Added confirmation dialog for container removal
- Improved AppBar responsiveness with icon-only buttons on mobile screens
- Enhanced TerminalModal responsiveness:
  * Fullscreen mode on mobile devices
  * Stacked input layout on small screens
  * Icon-only send button on mobile
  * Responsive font sizes and spacing
- Added responsive typography using clamp() for fluid scaling
- Improved spacing and layout for mobile devices:
  * Reduced padding on small screens
  * Responsive grid layout for container metadata
  * Adaptive title sizes
- Added real-time notifications with Snackbar for operation feedback

https://claude.ai/code/session_01UFVy14uUD5Q7DjkUSgUFXC
2026-01-30 21:27:49 +00:00
2e176f3048 Merge pull request #10 from johndoe6345789/claude/fix-terminal-modal-typescript-X6MVx
Fix terminal input text color styling in TerminalModal
v1.3.0
2026-01-30 20:54:42 +00:00
Claude
938cb5a0ba Fix duplicate '& input' property in TerminalModal TextField sx prop
Merged two duplicate '& input' style properties into a single object to resolve TypeScript error during build. The color property is now combined with fontFamily, fontSize, and padding in one declaration.

https://claude.ai/code/session_X6MVx
2026-01-30 20:52:32 +00:00
85819a2f84 Merge pull request #9 from johndoe6345789/claude/cleanup-filesystem-xwToR
Add persistent working directory tracking to terminal sessions
v1.2.0
2026-01-30 20:34:22 +00:00
Claude
613c2dc55c Enhance terminal with Ubuntu-style UI and fix shell command issues
Backend improvements:
- Fix execline shadowing standard commands by setting proper PATH
- Add session-based working directory tracking for persistent cd
- Wrap all commands in bash/sh to avoid execline interpreter
- Handle cd commands specially to update session state
- Add robust error handling and fallback to sh

Frontend enhancements:
- Implement Ubuntu aubergine color scheme (#300A24 background)
- Add syntax highlighting for commands, arguments, and errors
- Display working directory in prompt (root@container:path#)
- Auto-scroll terminal output to bottom
- Improve terminal UX with Ubuntu Mono font
- Show current directory in command input prompt

https://claude.ai/code/session_01EvWjmaqmfnKwUTdBUj5JFY
2026-01-30 20:32:13 +00:00
1398b3a82f Merge pull request #8 from johndoe6345789/claude/fix-caprover-docker-U6NbO
Add manual Docker socket mount fix and comprehensive troubleshooting
v1.1.0
2026-01-30 19:53:28 +00:00
Claude
f8d2320236 Add manual Docker socket mount fix and comprehensive troubleshooting
Problem: CapRover's serviceUpdateOverride in captain-definition doesn't
always apply automatically, causing "Docker socket NOT found" errors.

Solution: Manual docker service update command to apply the mount.

Changes:
- Added CAPROVER_TROUBLESHOOTING.md with complete step-by-step fix
  - Manual docker service update command
  - Verification steps
  - Common issues and solutions
  - SELinux/AppArmor troubleshooting

- Created fix-caprover-docker-mount.sh automated script
  - Finds service automatically
  - Applies mount
  - Verifies configuration
  - Shows service status

- Enhanced backend/app.py diagnostics
  - Lists /var/run directory contents
  - Shows Docker-related files
  - Better error messages explaining the issue
  - Explicit note when mount is missing

- Updated backend/requirements.txt
  - Docker SDK 7.0.0 -> 7.1.0 (fixes URL scheme error)

- Updated CAPROVER_DEPLOYMENT.md
  - Prominent warning about serviceUpdateOverride limitation
  - New Step 4: Verify and Apply Docker Socket Mount
  - Quick fix command prominently displayed
  - Links to troubleshooting guide
  - Updated troubleshooting section with manual fix

- Updated QUICKSTART.md
  - Warning after backend deployment instructions
  - Quick fix command for both deployment options
  - Links to troubleshooting guide

This provides users with immediate solutions when encountering the
"Cannot connect to Docker" error, which is now properly diagnosed
and can be fixed with a single command.

https://claude.ai/code/session_01NfGGGQ9Zn6ue7PRZpAoB2N
2026-01-30 19:48:53 +00:00
c6731ce001 Merge pull request #7 from johndoe6345789/claude/fix-caprover-docker-U6NbO
Add CapRover deployment support with automated release packages
v1.0.0
2026-01-30 19:16:18 +00:00
Claude
97790045ff Add GitHub Actions for automated release builds and deployment tools
- Created GitHub Actions workflow for automated release packaging
  - Triggers on git tags (v*) or manual workflow dispatch
  - Builds uncompressed .tar files for CapRover (as required)
  - Creates checksums and deployment instructions
  - Automatically publishes to GitHub Releases

- Added release build script (create-caprover-releases.sh)
  - Generates backend-caprover-{version}.tar (uncompressed)
  - Generates frontend-caprover-{version}.tar (uncompressed)
  - Creates documentation package (compressed for convenience)
  - Generates SHA256 checksums for verification

- Created QUICKSTART.md for rapid deployment guide
  - Option 1: Pre-built releases (fastest)
  - Option 2: Deploy from source (latest changes)
  - Verification steps and troubleshooting

- Updated documentation for CapRover tar format
  - CapRover requires uncompressed .tar files (not .tar.gz)
  - Updated all references in README, QUICKSTART, and releases/README
  - Added clear notes about file format requirements

- Updated .gitignore to exclude release artifacts but keep README

- Updated main README with CapRover deployment section

This enables automated release creation on tag push and provides
easy deployment packages for CapRover users.

https://claude.ai/code/session_01NfGGGQ9Zn6ue7PRZpAoB2N
2026-01-30 19:14:52 +00:00
Claude
08d7ee16af Add comprehensive Docker debugging and CapRover configuration
- Enhanced Docker connection diagnostics in backend
  - Detailed logging of Docker environment variables
  - Socket permission and existence checks
  - User/group information logging
  - Multiple connection attempt strategies
  - Automatic diagnostics on startup

- Updated captain-definition with proper Swarm configuration
  - Added explicit Docker socket mount with read-write access
  - Configured User as root for socket access
  - Added DOCKER_HOST environment variable
  - Configured restart policy and replica settings

- Updated Dockerfile to run as root for Docker socket access

- Created comprehensive CapRover deployment documentation
  - Step-by-step deployment instructions
  - Troubleshooting guide
  - Security considerations
  - Architecture diagrams

- Updated backend README with debugging and deployment info

These changes fix the "Cannot connect to Docker" error by ensuring
proper permissions and providing detailed diagnostics for troubleshooting.

https://claude.ai/code/session_01NfGGGQ9Zn6ue7PRZpAoB2N
2026-01-30 19:10:42 +00:00
f0eb8b7df2 Merge pull request #6 from johndoe6345789/dependabot/npm_and_yarn/frontend/npm_and_yarn-a415b051ba
Bump next from 16.1.1 to 16.1.5 in /frontend in the npm_and_yarn group across 1 directory
2026-01-30 18:46:46 +00:00
dependabot[bot]
0242082ee1 Bump next in /frontend in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the /frontend directory: [next](https://github.com/vercel/next.js).


Updates `next` from 16.1.1 to 16.1.5
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v16.1.1...v16.1.5)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.1.5
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-27 23:00:04 +00:00
e16dcc9d12 Add captain-definition for service configuration 2026-01-26 05:48:55 +00:00
066578781c Create captain-definition for service setup
Add captain-definition file for service configuration
2026-01-26 05:36:24 +00:00
b7da481882 Merge pull request #5 from johndoe6345789/claude/fix-docker-env-file-pqumH
Fix Dockerfile to copy all files and build Next.js app
2026-01-26 05:07:13 +00:00
Claude
205b753e9b Fix Dockerfile to copy all files and build Next.js app
- Change COPY * to COPY . to include subdirectories (public/, app/, etc.)
- Add npm run build step for Next.js production build
- Change CMD from node server.js to npm start for Next.js
2026-01-26 05:05:52 +00:00
b28e7942c3 Update Dockerfile to copy all files to /app 2026-01-26 04:43:15 +00:00
e0ac4dae46 Simplify Dockerfile by removing libc6-compat
Removed unnecessary installation of libc6-compat.
2026-01-26 04:41:26 +00:00
02c05e7c8a Update Dockerfile 2026-01-26 04:38:13 +00:00
5fc761a3f1 Add entrypoint script to configure API URL 2026-01-26 04:28:41 +00:00
4edc7d1f5b Add script tag for env.js in layout.tsx 2026-01-26 04:27:20 +00:00
9a64cc8142 Create env.js 2026-01-26 04:26:15 +00:00
24d2c20e47 Update API_BASE_URL to support window environment 2026-01-26 04:25:17 +00:00
2e1dec93a9 Merge pull request #4 from johndoe6345789/copilot/remove-src-and-junk-files
Remove src and junk files from project root
2026-01-14 12:58:03 +00:00
copilot-swe-agent[bot]
8e03e214ed Remove src and junk files from project root
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-14 12:29:57 +00:00
copilot-swe-agent[bot]
866277ba4c Initial plan 2026-01-13 19:49:50 +00:00
c81fc52cca Generated by Spark: Check the app renders ok, playwright? 2026-01-13 19:34:16 +00:00
ac52706d05 Edited Spark 2026-01-13 19:33:39 +00:00
787b581573 Merge pull request #3 from johndoe6345789/copilot/fix-npm-build-error
Fix MUI v7 Grid API incompatibility in dashboard
2026-01-08 23:16:08 +00:00
copilot-swe-agent[bot]
6771dcbe21 Fix MUI v7 Grid API compatibility in dashboard
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 23:11:46 +00:00
copilot-swe-agent[bot]
686443d716 Initial plan 2026-01-08 23:08:16 +00:00
88f4c4f6e2 Merge pull request #2 from johndoe6345789/dependabot/pip/backend/pip-8fb5dba437
Bump flask-cors from 4.0.0 to 6.0.0 in /backend in the pip group across 1 directory
2026-01-08 23:07:12 +00:00
dependabot[bot]
e24ac42a6d Bump flask-cors in /backend in the pip group across 1 directory
Bumps the pip group with 1 update in the /backend directory: [flask-cors](https://github.com/corydolphin/flask-cors).


Updates `flask-cors` from 4.0.0 to 6.0.0
- [Release notes](https://github.com/corydolphin/flask-cors/releases)
- [Changelog](https://github.com/corydolphin/flask-cors/blob/main/CHANGELOG.md)
- [Commits](https://github.com/corydolphin/flask-cors/compare/4.0.0...6.0.0)

---
updated-dependencies:
- dependency-name: flask-cors
  dependency-version: 6.0.0
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-08 22:59:00 +00:00
2fda5f96d1 Merge pull request #1 from johndoe6345789/copilot/move-project-to-old-folder
Restructure project: migrate to Flask backend + Next.js/Material UI frontend
2026-01-08 22:57:51 +00:00
copilot-swe-agent[bot]
10a73fe03c Add migration summary documentation
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 22:48:41 +00:00
copilot-swe-agent[bot]
3ffb1da0f0 Fix font loading in Next.js layout
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 22:48:00 +00:00
copilot-swe-agent[bot]
a6f6c841cd Move old project and create new Flask + Next.js + MUI stack
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-08 22:46:46 +00:00
copilot-swe-agent[bot]
fd6af0c86b Initial plan 2026-01-08 22:37:34 +00:00
f42c69d621 Add spark configuration 2026-01-08 22:35:30 +00:00