- Fix lxc-attach command in build.func line 1341 to use pct exec for consistency
- Add alternative lxc-attach method for script execution using local files
- Fix FUNCTIONS_FILE_PATH to include core.func, tools.func, and install.func content
- Replace GitHub curl downloads with local file sources in build.func
- Update install.func to work with FUNCTIONS_FILE_PATH approach
- Add support for local config-file.func and alpine-install.func
- Add new install scripts: 2fauth-install.sh and alpine-install.sh
- Add new CT scripts: 2fauth.sh and alpine.sh
This improves script execution reliability and removes dependency on GitHub downloads.
- Fixed syntax errors in build.func (duplicate export, unmatched quotes)
- Fixed color variable initialization by calling load_functions in core.func
- Replaced undefined function calls (post_to_api, post_update_to_api) with echo statements
- Fixed install script execution by copying scripts into container first
- Made create_lxc.sh executable
- Improved error handling and script sourcing
- Added missing core functions and tools
- Enhanced script downloader and local script management
- Add proper flex layout with overflow handling
- Use flex-1 and overflow-auto for scrollable content area
- Change height to minHeight for SyntaxHighlighter
- Ensure content can scroll when scripts are longer than viewport
- Maintain proper layout structure for both tabs
- Replace direct tRPC hook calls with fetch requests
- Fix 'hooks[lastArg] is not a function' error
- Use proper tRPC API endpoint format with JSON encoding
- Remove unused tRPC import from TextViewer component
- Create TextViewer component for displaying script code
- Add react-syntax-highlighter for bash syntax highlighting
- Implement tabbed interface for CT and install scripts
- Add getScriptContent tRPC endpoint for secure file reading
- Update ScriptsList to use TextViewer for View button
- Include security checks to prevent path traversal
- Support both CT and install script viewing in same modal
- Add line numbers and proper code formatting
- Remove executable check from ScriptsList component
- All scripts now show as runnable regardless of permissions
- Add logo support using JSON data from script metadata
- Update ScriptInfo interface to include logo and slug fields
- Modify getCtScripts to fetch logo from corresponding JSON files
- Update ScriptsList UI to display logos with fallback to file icons
- Fix TypeScript errors for proper type safety
- Add getCtScripts() method to ScriptManager to scan ct subdirectory
- Add getCtScripts tRPC endpoint for local scripts tab
- Update ScriptsList component to use getCtScripts instead of getScripts
- Fix script path construction to use relative paths for terminal
- Local scripts tab now correctly shows scripts from /scripts/ct folder
- Fix script execution by using resolvedPath instead of scriptPath
- This ensures the correct absolute path is used when spawning bash
- Previously was looking for scripts/ct/script.sh inside scripts/ directory
- Now correctly uses /root/Dev/PVESciptslocal/scripts/ct/script.sh
- Add Install button that appears when script files are loaded
- Integrate with existing terminal component for script execution
- Pass correct script path to terminal (scripts/ct/script.sh)
- Close modal when installation starts
- Add proper TypeScript handling for union types
- Install button only shows when CT script is available locally
- Add refetchScriptFiles to checkScriptFiles query
- Call refetchScriptFiles after successful script loading
- This ensures the status indicators update immediately after loading
- Create ScriptDownloaderService to download and modify script files from GitHub
- Add tRPC routes for loading scripts and checking file existence
- Add Load Script button to ScriptDetailModal with loading states
- Implement sed replacement for build.func source line in CT scripts
- Download CT scripts to scripts/ct/ and install scripts to scripts/install/
- Add visual indicators for script file availability
- Show success/error messages for script loading operations
- Update Script type to handle notes as objects with text and type
- Add ScriptNote interface for structured note format
- Update ScriptDetailModal to render notes with proper styling based on type
- Add backward compatibility for string notes
- Fix React error 'Objects are not valid as a React child'
- Make GitHub service work without REPO_URL environment variable
- Add debug logging to ScriptsGrid to troubleshoot rendering issues
- Improve error handling for missing GitHub configuration
- Add null checks for script properties to prevent undefined errors
- Add proper key props to prevent React warnings
- Add validation for script objects before rendering
- Improve error handling for missing or malformed data
- Create LocalScriptsService to read from scripts/json directory
- Update tRPC routes to use local files by default
- Implement resync functionality to download from GitHub and save locally
- Make GitHub optional - only needed for resyncing
- Update UI to reflect local-first approach
- Add proper error handling for missing local files
- Fix ScriptsGrid to properly handle card clicks by using selectedSlug state
- Add proper error handling for missing REPO_URL environment variable
- Add debug information for development mode
- Improve error messages to guide users on environment setup
- Add JSON_FOLDER environment variable for GitHub repo JSON path
- Create TypeScript types for script JSON structure
- Implement GitHub API service to fetch scripts from repository
- Add tRPC routes for script management (getScriptCards, getAllScripts, getScriptBySlug, resyncScripts)
- Create ScriptCard component for displaying script information
- Create ScriptDetailModal for full script details view
- Create ScriptsGrid component with loading and error states
- Add ResyncButton component for refreshing scripts from upstream
- Update main page with tabbed interface (GitHub Scripts vs Local Scripts)
- Add proper error handling and loading states throughout