Skip to content

release: promote canary to main#362

Merged
Abhash-Chakraborty merged 22 commits into
mainfrom
canary
Jul 15, 2026
Merged

release: promote canary to main#362
Abhash-Chakraborty merged 22 commits into
mainfrom
canary

Conversation

@Abhash-Chakraborty

Copy link
Copy Markdown
Owner

This is the protected promotion from canary to main and replaces the branch-name-specific PR #356 after GitHub closed that PR during the canary rename.

It preserves #356 as review history and carries the fully tested v1.1.3 application work plus the new canary, CI, and release governance. Merge only after every required check and review is complete. Merging starts the three-hour release quiet period.

Closes #356

Copilot AI review requested due to automatic review settings July 15, 2026 14:28
@Abhash-Chakraborty Abhash-Chakraborty added the promotion Maintainer-controlled canary to main promotion label Jul 15, 2026

Copilot AI 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.

Copilot wasn't able to review this pull request because it exceeds the maximum number of lines (20,000). Try reducing the number of changed lines and requesting a review from Copilot again.

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 176 files, which is 26 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 2f4e1cb9-0b82-4f1f-b48d-94aab57da95e

📥 Commits

Reviewing files that changed from the base of the PR and between 9ff3843 and 162cb44.

⛔ Files ignored due to path filters (3)
  • backend/uv.lock is excluded by !**/*.lock
  • frontend/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • frontend/src-tauri/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (176)
  • .dockerignore
  • .env.example
  • .github/CODEOWNERS
  • .github/ISSUE_TEMPLATE/config.yml
  • .github/ISSUE_TEMPLATE/documentation.yml
  • .github/SECURITY.md
  • .github/dependabot.yml
  • .github/pull_request_template.md
  • .github/workflows/ci.yml
  • .github/workflows/codeql.yml
  • .github/workflows/issue-triage.yml
  • .github/workflows/manual-ghcr-publish.yml
  • .github/workflows/pr-triage.yml
  • .github/workflows/prepare-release.yml
  • .github/workflows/promote-canary.yml
  • .github/workflows/publish.yml
  • .github/workflows/release.yml
  • .github/workflows/stale-pr.yml
  • .github/workflows/testsprite.yml
  • .gitignore
  • AGENTS.md
  • CHANGELOG.md
  • CONTRIBUTING.md
  • GSSOC_CONTRIBUTOR_GUIDE.md
  • README.md
  • backend/Dockerfile
  • backend/alembic/versions/20260712_media_gps.py
  • backend/alembic/versions/20260714_vault_credentials_and_storage_mode.py
  • backend/pyproject.toml
  • backend/src/find_api/__init__.py
  • backend/src/find_api/core/config.py
  • backend/src/find_api/core/database.py
  • backend/src/find_api/core/dependencies.py
  • backend/src/find_api/core/hardware.py
  • backend/src/find_api/core/model_manager.py
  • backend/src/find_api/core/runtime_profile.py
  • backend/src/find_api/core/sqlite_queue.py
  • backend/src/find_api/main.py
  • backend/src/find_api/ml/captioner.py
  • backend/src/find_api/ml/clip_embedder.py
  • backend/src/find_api/ml/clusterer.py
  • backend/src/find_api/ml/face_detector.py
  • backend/src/find_api/ml/object_detector.py
  • backend/src/find_api/models/app_setting.py
  • backend/src/find_api/models/media.py
  • backend/src/find_api/models/vault.py
  • backend/src/find_api/routers/auth.py
  • backend/src/find_api/routers/config.py
  • backend/src/find_api/routers/gallery.py
  • backend/src/find_api/routers/map.py
  • backend/src/find_api/routers/search.py
  • backend/src/find_api/routers/status.py
  • backend/src/find_api/routers/vault.py
  • backend/src/find_api/utils/exif.py
  • backend/src/find_api/workers/jobs.py
  • backend/src/find_api/workers/processors.py
  • backend/src/find_api/workers/rq_worker.py
  • backend/tests/test_auth.py
  • backend/tests/test_cluster_images_regression.py
  • backend/tests/test_clustering_edge_cases.py
  • backend/tests/test_exif.py
  • backend/tests/test_gallery.py
  • backend/tests/test_hardware.py
  • backend/tests/test_hybrid_embedding.py
  • backend/tests/test_map.py
  • backend/tests/test_model_manager.py
  • backend/tests/test_release_version_script.py
  • backend/tests/test_rq_worker.py
  • backend/tests/test_runtime_profile.py
  • backend/tests/test_search.py
  • backend/tests/test_settings.py
  • backend/tests/test_status.py
  • backend/tests/test_thumbnails.py
  • backend/tests/test_vault.py
  • compose.base.yml
  • compose.cpu.yml
  • compose.mock.yml
  • compose.no-ai.yml
  • compose.yml
  • docker-compose.light.yml
  • docker-compose.yml
  • docs/guides/common-setup-errors.md
  • docs/guides/hardware-acceleration.md
  • docs/guides/real-ml-troubleshooting.md
  • docs/guides/testsprite-ci.md
  • docs/index.md
  • docs/overhaul/inventory/lane-a-timeline-grid.md
  • docs/overhaul/inventory/lane-b-albums-sharing.md
  • docs/overhaul/inventory/lane-c-archive-favorites-trash.md
  • docs/overhaul/inventory/lane-d-viewer-slideshow.md
  • docs/overhaul/inventory/lane-e-backend-api.md
  • docs/overhaul/inventory/lane-f-ml.md
  • docs/overhaul/inventory/lane-g-settings.md
  • docs/overhaul/inventory/lane-h-mobile-desktop.md
  • docs/plans/not-started/desktop-runtime-comparison.md
  • docs/plans/not-started/remote-acceleration.md
  • docs/plans/not-started/storage-provider-neutrality-adr.md
  • docs/plans/partial/vault-encryption-design.md
  • frontend/biome.json
  • frontend/e2e/app-shell.spec.ts
  • frontend/package.json
  • frontend/public/maps/NATURAL_EARTH_NOTICE.md
  • frontend/public/maps/ne_110m_land.geojson
  • frontend/src-tauri/Cargo.toml
  • frontend/src-tauri/tauri.conf.json
  • frontend/src/__tests__/a11y-smoke.test.tsx
  • frontend/src/__tests__/account-auth.test.tsx
  • frontend/src/__tests__/album-detail-viewer.test.tsx
  • frontend/src/__tests__/app-shell.test.tsx
  • frontend/src/__tests__/archive-trash.test.tsx
  • frontend/src/__tests__/asset-viewer.test.tsx
  • frontend/src/__tests__/hardware-accel-settings.test.tsx
  • frontend/src/__tests__/map-page.test.tsx
  • frontend/src/__tests__/media-timeline.test.ts
  • frontend/src/__tests__/private-map-style.test.ts
  • frontend/src/__tests__/public-shared-timeline.test.tsx
  • frontend/src/__tests__/root-page.test.tsx
  • frontend/src/__tests__/search-page.test.tsx
  • frontend/src/__tests__/settings-page.test.tsx
  • frontend/src/__tests__/timeline-media-view.test.tsx
  • frontend/src/__tests__/timeline-page.test.tsx
  • frontend/src/__tests__/upload-queue.test.ts
  • frontend/src/__tests__/vault-gallery.test.tsx
  • frontend/src/__tests__/vault-store.test.ts
  • frontend/src/app/account/page.tsx
  • frontend/src/app/albums/[id]/page.tsx
  • frontend/src/app/albums/page.tsx
  • frontend/src/app/archive/page.tsx
  • frontend/src/app/auth/login/page.tsx
  • frontend/src/app/auth/setup/page.tsx
  • frontend/src/app/clusters/page.tsx
  • frontend/src/app/duplicates/page.tsx
  • frontend/src/app/gallery/page.tsx
  • frontend/src/app/globals.css
  • frontend/src/app/image/[id]/page.tsx
  • frontend/src/app/layout.tsx
  • frontend/src/app/map/page.tsx
  • frontend/src/app/page.tsx
  • frontend/src/app/people/page.tsx
  • frontend/src/app/providers.tsx
  • frontend/src/app/public/shared/[key]/page.tsx
  • frontend/src/app/search/page.tsx
  • frontend/src/app/settings/page.tsx
  • frontend/src/app/timeline/page.tsx
  • frontend/src/app/trash/page.tsx
  • frontend/src/app/upload/page.tsx
  • frontend/src/components/CursorGlow.tsx
  • frontend/src/components/NavBar.tsx
  • frontend/src/components/ai-runtime-settings.tsx
  • frontend/src/components/album-asset-picker.tsx
  • frontend/src/components/app-shell.tsx
  • frontend/src/components/appearance-settings.tsx
  • frontend/src/components/asset-viewer.tsx
  • frontend/src/components/hardware-accel-settings.tsx
  • frontend/src/components/image-preview-modal.tsx
  • frontend/src/components/justified-grid.tsx
  • frontend/src/components/map-privacy-settings.tsx
  • frontend/src/components/map-timeline-panel.tsx
  • frontend/src/components/private-map.module.css
  • frontend/src/components/private-map.tsx
  • frontend/src/components/timeline-media-view.tsx
  • frontend/src/components/trash-retention-settings.tsx
  • frontend/src/components/universal-search.tsx
  • frontend/src/components/upload-status-indicator.tsx
  • frontend/src/components/vault/VaultGallery.tsx
  • frontend/src/components/vault/VaultUnlock.tsx
  • frontend/src/components/vault/vault-client.ts
  • frontend/src/lib/api.ts
  • frontend/src/lib/media-timeline.ts
  • frontend/src/lib/theme.ts
  • frontend/src/lib/use-ai-availability.ts
  • frontend/src/lib/use-body-scroll-lock.ts
  • frontend/src/lib/viewer-preload.ts
  • frontend/src/store/uploadQueueStore.ts
  • plan.md
  • scripts/bump_version.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@github-actions

Copy link
Copy Markdown

PR Context Summary

  • Linked issue(s): feat: ship the v1.1 application and modular AI overhaul #356
  • Referenced but not closing: none
  • PR author trusted by GitHub: yes
  • Dependabot PR: no
  • PR assignee synced from linked issue: yes
  • Macroscope review status: Waiting for under-review or ready-to-merge before triggering Macroscope.

Suggested issue links

  • No strong issue match found yet.

Use Fixes #123 or Closes #123 in the PR body when one of the suggestions is the intended issue.
Manual rerun: Actions > PR Context Triage > Run workflow > set pr_number and force_review=true.

@macroscopeapp

macroscopeapp Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Macroscope skipped reviewing this pull request. Per-review cost limit exceeded (workspace setting).

This review would cost an estimated $33.12, which exceeds your per-review limit of $2.00.

The top 3 files driving up this estimate:

File Size Estimate
frontend/src/components/vault/VaultGallery.tsx 26.92KB $1.35
backend/src/find_api/routers/vault.py 26.30KB $1.32
frontend/src/components/private-map.tsx 18.88KB $0.94

Tip

To get this pull request reviewed, you can:

  1. Comment @macroscope-app on this PR to request a manual review (monthly spend limits still apply).
  2. Exclude the file(s) above from review by adding a pattern to your .macroscope/ignore.md — note that creating this file replaces Macroscope's built-in default ignores rather than extending them.
  3. Raise your cost limit in your workspace billing settings.

Turn off this reminder going forward

@macroscopeapp

macroscopeapp Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

Unable to check for correctness in 162cb44. CODEOWNERS file was modified by a non-owner — requires human review

You can customize Macroscope's approvability policy. Learn more.

@Abhash-Chakraborty
Abhash-Chakraborty merged commit 3d2ea2b into main Jul 15, 2026
45 of 46 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

promotion Maintainer-controlled canary to main promotion

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants