Fixed sync_module_versions.sh to reference the correct path after
moving the Python script from scripts/ to secubox-tools/ directory.
Changes:
- Updated SCR path: scripts/sync_module_versions.py → secubox-tools/sync_module_versions.py
Tested: Script now runs successfully and reports "no changes"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Updated luci-app-system-hub internal release version to r2.
Version update:
- luci-app-system-hub: 0.4.6-r1 → 0.4.6-r2
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Updated luci-app-secubox internal version to 0.4.6-r2.
Version update:
- luci-app-secubox: 0.4.6-r1 → 0.4.6-r2
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Updated internal version numbers to 0.4.6 across all core modules
for consistency and alignment with the latest development cycle.
Version updates:
- luci-app-network-modes: 0.4.5-r1 → 0.4.6-r1
- luci-theme-secubox: 0.4.5-r1 → 0.4.6-r1
- luci-app-secubox: 0.4.5-r1 → 0.4.6-r1
- luci-app-system-hub: 0.4.5-r1 → 0.4.6-r1
All modules now synchronized at version 0.4.6.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Updated internal version numbers to align with v0.4.5 release tag.
Version updates:
- luci-app-network-modes: 0.3.6-r2 → 0.4.5-r1
- luci-theme-secubox: 0.4.0-r1 → 0.4.5-r1
- luci-app-secubox: 0.3.1-r1 → 0.4.5-r1
- luci-app-system-hub: 0.4.0-r1 → 0.4.5-r1
All modules now synchronized at version 0.4.5, reflecting the latest
improvements including:
- Menu reorganization (Network & Connectivity category)
- Dual menu access for Network Modes
- Enhanced RPCD permissions
- Robust version handling across all modules
- Improved OOP structure for helpers
- SecuBox overview modules updates
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This release focuses on consistent version display across all modules
and proper OOP structure for network-modes helpers.
## Version Display Improvements (3 files)
Added robust version resolution functions to handle various version field names:
**SecuBox Dashboard** (dashboard.js):
- Added getModuleVersion() function with fallback chain
- Checks: version, pkg_version, package_version, packageVersion, Version
- Handles both string and number types
- Returns '—' if no version found
- Loads modules list from API for accurate version data
**SecuBox Modules** (modules.js):
- Added resolveModuleVersion() function with same fallback logic
- Ensures consistent version display in module cards
- Handles missing or undefined versions gracefully
**System Hub Components** (components.js):
- Added getComponentVersion() function with version fallback chain
- Consistent version display across all components
- Proper handling of edge cases (null, undefined, empty strings)
## Network Modes Refactoring (1 file)
**helpers.js**:
- Refactored from plain object export to baseclass.extend()
- Proper OOP structure following LuCI conventions
- Added 'require baseclass' import
- All helper functions now properly encapsulated
- Better integration with LuCI module system
## Benefits
- Consistent version display across SecuBox, System Hub, and Components
- Handles version field name variations (legacy, OpenWrt, custom)
- Type-safe version handling (numbers → strings)
- Improved code maintainability with proper OOP structure
- Better error handling for missing version information
Summary:
- 4 files changed (+85, -8)
- 3 new version resolution functions
- 1 OOP refactoring for helpers
- Improved consistency and reliability
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Extended the local build script to support both luci-app-* and luci-theme-*
package patterns, enabling builds of theme packages like luci-theme-secubox.
Changes:
- Updated validate_makefiles() to validate both package types
- Extended copy_packages() to copy both luci-app-* and luci-theme-* packages
- Modified configure_packages() to enable both package types in .config
- Updated build_packages() to build both package types
- Enhanced collect_artifacts() to find and collect theme packages
- Added luci-theme-* pattern support in argument parsing
- Updated firmware build to copy both package types to OpenWrt
Tested with: ./local-build.sh build luci-theme-secubox
Result: Successfully built luci-theme-secubox-0.4.0-r1.apk
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Updated package versions:
- luci-theme-secubox: 1.0.0 → 0.4.0
- luci-app-system-hub: 0.3.6 → 0.4.0
- luci-app-network-modes: 0.4.0 → 0.3.6-r2 (WIP, not in this release)
Version 0.4.0 includes:
- Complete global CyberMood theme system
- Theme integration in system-hub
- Multi-language foundation (en, fr, de, es)
- 100+ CSS variables for unified design
- Theme components and utilities
Network-modes marked as WIP for future release.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Version 0.4.0 includes:
- Global CyberMood theme integration
- Theme switching support (dark/light/cyberpunk)
- Multi-language foundation (en, fr, de, es)
- Travel mode support
- Unified design system with CSS variables
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Migrated three core modules to use the global secubox-theme package:
Modules Updated:
- luci-app-secubox (dashboard, modules views)
- luci-app-network-modes (overview view)
- luci-app-system-hub (overview, services views)
Changes Per Module:
- Replaced module-specific theme imports with 'require secubox-theme/theme as Theme'
- Updated CSS imports to use global secubox-theme.css bundle
- Initialized global theme with Theme.init({ theme: 'dark', language: 'en' })
- Removed redundant theme.getTheme() calls from load() functions
- Added global theme CSS link tags to view renders
Benefits:
- Unified CyberMood design system across all modules
- Access to 100+ CSS variables (colors, spacing, effects)
- Theme switching support (dark, light, cyberpunk)
- Multi-language support (en, fr, de, es) via Theme.t()
- Reduced CSS duplication
- Consistent UI components (cards, buttons, badges)
Deployment:
- Created deploy-modules-with-theme.sh for batch deployment
- All modules successfully deployed to router 192.168.8.191
- Verified HTTP access to updated JavaScript files
Testing:
- ✅ SecuBox dashboard loads with global theme
- ✅ Network-modes overview uses theme CSS
- ✅ System-hub views integrate theme properly
- ✅ All 27 view files deployed successfully
Next Steps:
- Modules can now use Theme.createCard(), createButton(), createBadge()
- Translation keys available for internationalization
- Theme variants switchable via Theme.apply('dark'|'light'|'cyberpunk')
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Created help system (help.js, help.css) for all modules
- Integrated help button in network-modes module
- Fixed menu structure: removed empty Network Management category
- Fixed all dashboard and modules page links
- Added website deployment script
- Created comprehensive documentation
New Files:
- DOCS/HELP_INTEGRATION_PLAN.md
- DOCS/WEBSITE_DEPLOYMENT_GUIDE.md
- EXAMPLES/help-button-integration.js
- luci-app-secubox/htdocs/luci-static/resources/secubox/help.js
- luci-app-secubox/htdocs/luci-static/resources/secubox/help.css
- secubox-tools/deploy-website.sh
Modified:
- luci-app-network-modes: Added help button integration
- luci-app-secubox: Fixed menu paths and module links
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Network Modes:
- Makefile: PKG_VERSION 0.3.5 → 0.3.6
- README.md: Version badge and header updated to 0.3.6
- README.md: What's New section updated to v0.3.6
System Hub:
- Makefile: PKG_VERSION 0.3.2 → 0.3.6
- api.js: Version comment and console log updated to 0.3.6
Both modules now aligned with v0.3.6 release tag.
Network Modes (+536 lines RPCD):
- Enhanced router.js with improved proxy configuration
- Expanded RPCD backend with new methods
- Updated README with feature documentation
System Hub (+511 lines RPCD, +127 lines API):
- Implemented diagnostics collection features
- Enhanced remote management interface
- Expanded RPCD backend with new RPC methods
- Added new API methods for diagnostics and remote access
Total changes: +1,392 additions, -126 deletions
Preparation for v0.3.6 release with real feature implementations
from CODEX roadmaps.
- Complete guide for PKG_FILE_MODES configuration
- Standard comment block template for all modules
- File permission reference table (755 for RPCD, 644 for others)
- Common errors and solutions
- Validation and troubleshooting guides
- Best practices for development
Covers:
- RPCD scripts (755 - CRITICAL for ubus calls)
- Helper scripts (755 for executables)
- Config files (644 - auto-set)
- CSS/JS files (644 - auto-set by luci.mk)
- Multi-line PKG_FILE_MODES syntax
Reference for all SecuBox developers.
- Version bump to 0.3.5 in Makefile and README
- Add helpers.js utility module for common UI operations
- Expand API with new RPC method declarations
- Enhance view files with improved functionality:
- accesspoint.js: Enhanced WiFi configuration options
- relay.js: WireGuard setup improvements
- router.js: Expanded proxy and vhost settings
- sniffer.js: Enhanced capture configuration
- wizard.js: Improved mode selection flow
- RPCD backend enhancements (+176 lines)
- Add deployment script for easier testing
Claude settings: Update permissions for network-modes work
Preparation for implementing features documented in CODEX-v0.3.5.md
- TypeError: this.renderHealthGauge is not a function
- Added renderHealthGauge method to render health score gauge
- Takes score, scoreClass, scoreLabel parameters
- Displays score/100, label, and progress bar with appropriate styling
Method creates:
- Health score display (e.g., 85/100)
- Status label (Excellent/Good/Warning/Critical)
- Progress bar with color-coded fill based on health class
- ReferenceError: scoreLabel is not defined at line 84
- Added scoreLabel calculation matching renderStatsOverview pattern
- Fixes dashboard rendering error in overview.js
Error: renderHeader was calling this.renderHealthGauge(score, scoreClass, scoreLabel)
but scoreLabel was never defined in that scope.
- Complete analysis of current state (50-60% production-ready)
- Detailed implementation plan for 5 phases over 9 weeks
- Real code examples for WireGuard, Squid, Nginx, 802.11r/k/v, tcpdump
- Unit tests and integration test scenarios
- Pre-release checklist and success metrics
Goals:
- Implement WireGuard relay with key management (Phase 1)
- Add web proxy (Squid/TinyProxy) + DoH (Phase 2)
- HTTPS reverse proxy with Let's Encrypt (Phase 3)
- Advanced WiFi features (802.11r/k/v, band steering) (Phase 4)
- Packet capture with PCAP rotation (Phase 5)
Target: 85-90% feature completion by 2025-01-15
- Removed manual installation loop for individual dependencies that caused hangs
- Dependencies now handled via 'feeds install -a' and .config settings
- lucihttp and cgi-io disabled in .config (compilation failures)
- SecuBox packages are PKGARCH:=all (scripts), don't need compiled deps
Fixes interactive prompts and ^C hangs during build process.