Skip to content

v2.4.0 - #345

Merged
rtuszik merged 25 commits into
mainfrom
dev
Aug 17, 2026
Merged

v2.4.0#345
rtuszik merged 25 commits into
mainfrom
dev

Conversation

@rtuszik

@rtuszik rtuszik commented Aug 14, 2026

Copy link
Copy Markdown
Owner

No description provided.

claude[bot]

This comment was marked as spam.

@github-actions

github-actions Bot commented Aug 14, 2026 •

Copy link
Copy Markdown
Contributor

Coverage

Coverage Report
FileStmtsMissCoverMissing
src
   downloader.py2441992%96–97, 221–222, 239, 249–260, 263–264, 308–309, 361
   importer.py57296%19, 30
   index.py103199%145
   process_manager.py2541395%155–156, 207–208, 232, 274–275, 284–286, 357–359
   update.py131298%93, 172
src/jsonl
   decompressor.py5340%5–7
   downloader.py311455%14, 18, 23, 25, 32–46
src/utils
   config.py55395%71–73
   regions.py105892%407, 420, 428, 432, 435, 448, 459, 474
   validate_config.py50492%33, 35, 41–42
TOTAL12646995% 

Tests Skipped Failures Errors Time
282 0 💤 0 ❌ 0 🔥 1.733s ⏱️

@coderabbitai

coderabbitai Bot commented Aug 14, 2026 •

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 5eb8a558-4abc-4033-9448-5b44edea6740

📥 Commits

Reviewing files that changed from the base of the PR and between 617f167 and 8d9e493.

📒 Files selected for processing (1)
  • README.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • README.md

Included review availability: Your plan includes up to 2 reviews per rolling hour; 1 remains after this review.


📝 Walkthrough

Walkthrough

The change adds index-age calculation and interval parsing. PhotonManager now polls every 60 seconds, updates expired indexes, and throttles repeated attempts for one hour. The entrypoint now supports non-root execution. Tests, documentation, tooling, and workflows were updated.

Changes

Index refresh scheduling

Layer / File(s) Summary
Age and interval contracts
src/index.py, src/utils/config.py, tests/test_index.py, tests/utils/test_config.py
age_seconds() reports elapsed index age. parse_interval() converts day, hour, and minute values to seconds. Tests cover missing, old, future, valid, and invalid values.
Polling and throttled updates
src/process_manager.py, tests/test_process_manager.py, README.md
PhotonManager polls every 60 seconds, checks index age against UPDATE_INTERVAL, and suppresses attempts for one hour after an attempt. Tests cover due checks, polling, throttling, and retries. The README documents the behaviour.

Container execution

Layer / File(s) Summary
Privilege-aware entrypoint
entrypoint.sh
The entrypoint changes user and file ownership only when it starts as root. Non-root execution runs the requested command directly.

Tooling and CI maintenance

Layer / File(s) Summary
CI and build configuration
.github/workflows/*, Dockerfile, mise.toml, .pre-commit-config.yml, pyproject.toml, .last_release
Workflow action pins, pull-request filters, builder versions, local tool versions, pre-commit hooks, the uv_build requirement, and the release version were updated.
Development workflow migration
CONTRIBUTING.md, Taskfile.yml, Brewfile
Contributor instructions now use mise. The Taskfile and Homebrew dependencies were removed.
Renovate update grouping
renovate.json
Renovate groups Betterleaks and Docker action updates separately.

Estimated code review effort: 3 (Moderate) | ~30 minutes

Merge Risk: ⚪ Minimal · up to 8d9e4

This change is merge-ready after normal checks and review; no actionable merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 2 | ❌ 2

❌ Failed checks (2 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title contains only a version number and does not identify the primary changes in the pull request. Use a concise title that describes the main change, such as the update scheduling and tooling migration.
Description check ❓ Inconclusive The pull request has no description, so it does not provide meaningful context for the changes. Add a brief description of the update scheduling, workflow, tooling, and runtime changes.
✅ Passed checks (2 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 437e2037-40cf-4aa8-8c2e-b2736c47df65

📥 Commits

Reviewing files that changed from the base of the PR and between eda1eff and 73e7c1f.

📒 Files selected for processing (7)
  • README.md
  • src/index.py
  • src/process_manager.py
  • src/utils/config.py
  • tests/test_index.py
  • tests/test_process_manager.py
  • tests/utils/test_config.py

Comment thread README.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: c01545d5-e572-4b01-91be-07b0f8fa0d4d

📥 Commits

Reviewing files that changed from the base of the PR and between 73e7c1f and 3dcd78b.

📒 Files selected for processing (10)
  • .github/workflows/build-and-push.yml
  • .github/workflows/check-releases.yml
  • .github/workflows/full-test-jsonl.yml
  • .github/workflows/full-test.yml
  • .github/workflows/lint.yml
  • .github/workflows/pytest.yml
  • .github/workflows/release-drafter.yml
  • Dockerfile
  • mise.toml
  • renovate.json

Comment thread .github/workflows/lint.yml

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Code review skipped — your organization's overage spend limit has been reached.

Code review is billed via overage credits. To resume reviews, an organization admin can raise the monthly limit at claude.ai/admin-settings/claude-code.

Once credits are available, push a new commit or reopen this pull request to trigger a review.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Code review skipped — your organization's overage spend limit has been reached.

Code review is billed via overage credits. To resume reviews, an organization admin can raise the monthly limit at claude.ai/admin-settings/claude-code.

Once credits are available, push a new commit or reopen this pull request to trigger a review.

@rtuszik rtuszik changed the title v2.3.1 v2.4.0 Aug 16, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
Dockerfile (1)

1-1: 🔒 Security & Privacy | 🔵 Trivial

Document the intentional root bootstrap.

The final image has no USER instruction. The entrypoint requires root to apply PUID and PGID changes, then launches the application with gosu photon. Adding USER photon would bypass this setup.

If root startup is an accepted container contract, document the DS-0002 exception and add a container test that confirms the application process runs as photon. Otherwise, redesign the UID/GID setup before adding an explicit non-root USER.

Source: Linters/SAST tools


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ec175466-02b6-4532-9a23-e621c545cfa7

📥 Commits

Reviewing files that changed from the base of the PR and between 3dcd78b and 6823b87.

📒 Files selected for processing (12)
  • .github/workflows/build-and-push.yml
  • .github/workflows/check-releases.yml
  • .github/workflows/full-test-jsonl.yml
  • .github/workflows/full-test.yml
  • .github/workflows/lint.yml
  • .github/workflows/pytest.yml
  • .github/workflows/release-drafter.yml
  • .pre-commit-config.yml
  • Dockerfile
  • entrypoint.sh
  • mise.toml
  • pyproject.toml
🚧 Files skipped from review as they are similar to previous changes (2)
  • .github/workflows/build-and-push.yml
  • mise.toml

Included review availability: Your plan includes up to 2 reviews per rolling hour; 0 remain after this review.

Comment thread .github/workflows/full-test-jsonl.yml Outdated
Comment thread entrypoint.sh
Comment on lines +41 to +46
if [ "$RUNNING_AS_ROOT" = true ]; then
chown -R photon:photon /photon
exec gosu photon "$@"
fi

exec "$@"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Guard the data migration before starting a non-root process.

Line 46 is reached only after Lines 28-39 attempt the migration. If /photon/data/node_1 exists, a non-root caller may not be able to run rm, mkdir, or mv. The script does not stop when these commands fail, so it can start Photon with the old layout still present. Move the migration into the root-only branch, or detect this state and exit with an explicit migration error before exec "$@".

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Code review skipped — your organization's overage spend limit has been reached.

Code review is billed via overage credits. To resume reviews, an organization admin can raise the monthly limit at claude.ai/admin-settings/claude-code.

Once credits are available, push a new commit or reopen this pull request to trigger a review.

@rtuszik
rtuszik merged commit 15c8c62 into main Aug 17, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants