Refactored `scripts/ci_validate_repo.py` to use `os.walk()` instead of `Path.rglob("*")` for repository traversal. Implemented in-place directory pruning in `scan_for_secrets` to avoid visiting excluded directories, significantly improving performance for large repositories.
- Added `import os`
- Refactored `validate_and_collect_files` to use `os.walk()`
- Refactored `scan_for_secrets` with `os.walk()` and directory pruning
- Verified performance gains and correctness with existing tests
- Adds a "Copy" button to "Fly.io App" and "Telegram Bot" status items in `index.html` and `dashboard/index.html`.
- Updates `scripts/web_dashboard.py` to include these status rows with the same copy functionality, ensuring consistency across all dashboard views.
- Implements visual feedback (icon changes to checkmark) and accessibility support (aria-labels) for the copy action.
- Uses inline SVG icons to avoid external dependencies.
- Verified with Playwright and existing tests.
- Replaced `markdown.markdown()` shortcut with reused `markdown.Markdown` instance via `threading.local`.
- Reduced parsing overhead by eliminating re-initialization on every call.
- Verified with unit tests and benchmark (~10% speedup).
Related to performance improvements for dashboard responsiveness.
- Created RUN-GOOGLE-DRIVE-SETUP.bat for Windows users
- Created scripts/google_drive_setup.sh for Linux/WSL users
- Updated scripts/knowledge_base_helper.py to include Google Drive resources
- Documented Google Drive streaming mode in docs/KNOWLEDGE_BASE_INTEGRATION.md
- Verified repository stability with validation and integration tests
- Added .github/workflows/gitlab-sync.yml for automated synchronization.
- Fixed scripts/setup_gitlab_runner.sh with the provided runner authentication token.
- Finalized .gitlab-ci.yml and docs/GITLAB_INTEGRATION.md.
Improved memory efficiency in `scripts/ci_validate_repo.py` by replacing
`read_bytes()` with chunked binary reading (64KB) for NUL byte detection.
This prevents loading entire source files into memory during CI runs.
Extracts the dashboard HTML string into a global constant and compiles it
using Jinja2 only once (lazily) instead of re-parsing the string on every
request. This improves response latency for the dashboard.
- Extracted `DASHBOARD_HTML` constant
- Implemented `DASHBOARD_TEMPLATE` lazy compilation
- Replaced `render_template_string` with `DASHBOARD_TEMPLATE.render()`
- Verified with `scripts/test_web_dashboard.py`
- Replaced sequential execution of `ask_gemini` and `ask_jules` with `concurrent.futures.ThreadPoolExecutor`.
- Reduced total execution time by running independent network-bound tasks in parallel.
- Added necessary import for `concurrent.futures`.
⚡ Bolt: Parallelize AI requests (~2x speedup)
- Modified `scripts/review_pull_requests.py` to filter `git for-each-ref` output by unmerged branches.
- Reduces algorithmic complexity from O(N) to O(M) where N is total branches and M is active branches.
- Avoids expensive `ahead-behind` calculations for potentially thousands of stale merged branches.
- Replaced O(N) `git log` parsing with O(1) `git rev-list --count` for branch commit counts.
- Updated `get_all_branch_details` to return an empty `commits` list to ensure consistent data structure with `get_branch_info`, preventing potential runtime errors.
- Changed base branch reference from `main` to `origin/main` to support CI/CD environments and shallow clones where local `main` might be missing.
- Removed unused `commits` list generation in `get_branch_info` to improve fallback performance.
- Changed `check_authorized` in `scripts/telegram_deploy_bot.py` to fail closed (deny all) if `TELEGRAM_ALLOWED_USER_IDS` is unset or empty.
- Updated `scripts/TELEGRAM_BOT_SETUP.md` and `QUICK_DEPLOY.md` to document that `TELEGRAM_ALLOWED_USER_IDS` is now mandatory for bot access.
- Added Sentinel Journal entry in `.jules/sentinel.md` documenting the vulnerability and learning.
- Verified fix with reproduction script.