Skip to content

feat: Restore Support bundle download from Settings → About - #608

Merged
frankieramirez merged 1 commit into
mainfrom
frankieramirez/cookiecutter
Aug 10, 2026
Merged

feat: Restore Support bundle download from Settings → About#608
frankieramirez merged 1 commit into
mainfrom
frankieramirez/cookiecutter

Conversation

@frankieramirez

Copy link
Copy Markdown
Owner

Summary

Operators can create a session-authenticated Support bundle from Settings → About for troubleshooting after mandatory review. This restores the missing CarePackage UI path as the new allowlisted Support bundle contract (#590).

Changes

  • Add locked v1 contract assets, architecture spec, and deep support_bundle generator (no legacy CarePackage import)
  • Expose session-only POST /api/system/support-bundle with fixed headers, typed errors, and process single-flight lock
  • Add Settings → About Create → Inspect → Share UI, binary download helper, unit/component/smoke tests, dialect CI, docs activation, terminology guard, and operator changeset

Test plan

  • uv run pytest tests/unit/test_support_bundle.py tests/unit/test_support_bundle_api.py -q
  • DATABASE_URL=sqlite:////tmp/comicarr-sb-dialect.db uv run pytest tests/integration/test_support_bundle_dialects.py -q
  • cd frontend && npm run test:run -- tests/unit/lib/supportBundle.test.ts tests/components/SupportBundle.test.tsx
  • Settings About placement test
  • cd frontend && npm run test:e2e:smoke (includes support-bundle.smoke.spec.ts)
  • Maintainer/security review of one complete and one partial seeded artifact
  • Manual: Settings → About → Create support bundle → inspect ZIP members

Closes #590

Operators can create a session-authenticated, allowlisted diagnostic ZIP for
troubleshooting after mandatory review. Ships the locked v1 contract assets,
deep generator (no legacy CarePackage path), Settings Create → Inspect → Share
flow, disclosure docs, terminology guard, and dialect/CI coverage for #590.
@changeset-bot

changeset-bot Bot commented Aug 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 047e8a8

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
comicarr Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@frankieramirez, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 35 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 804a8226-def9-40d2-8e98-fede9273f21c

📥 Commits

Reviewing files that changed from the base of the PR and between d132c73 and 047e8a8.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (28)
  • .changeset/support-bundle.md
  • .github/ISSUE_TEMPLATE/bug_report.md
  • .github/workflows/test.yml
  • CONTRIBUTING.md
  • SECURITY.md
  • comicarr/app/system/router.py
  • comicarr/app/system/support_bundle.py
  • comicarr/app/system/support_bundle_contract/__init__.py
  • comicarr/app/system/support_bundle_contract/v1/README.txt
  • comicarr/app/system/support_bundle_contract/v1/__init__.py
  • comicarr/app/system/support_bundle_contract/v1/diagnostics.schema.json
  • comicarr/app/system/support_bundle_contract/v1/field-manifest.json
  • comicarr/app/system/support_bundle_contract/v1/manifest.schema.json
  • docs/architecture/support-bundle-spec.md
  • frontend/src/components/settings/AboutTab.tsx
  • frontend/src/components/settings/SupportBundleSection.tsx
  • frontend/src/lib/supportBundle.ts
  • frontend/tests/components/SupportBundle.test.tsx
  • frontend/tests/e2e/support-bundle.smoke.spec.ts
  • frontend/tests/pages/SettingsPage.test.ts
  • frontend/tests/unit/lib/supportBundle.test.ts
  • package.json
  • pyproject.toml
  • scripts/check_support_bundle_terms.py
  • scripts/support_bundle_legacy_terms_allowlist.txt
  • tests/integration/test_support_bundle_dialects.py
  • tests/unit/test_support_bundle.py
  • tests/unit/test_support_bundle_api.py

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.

@frankieramirez
frankieramirez merged commit 880300d into main Aug 10, 2026
15 of 16 checks passed
@frankieramirez
frankieramirez deleted the frankieramirez/cookiecutter branch August 10, 2026 01:52
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.

No CarePackage button in the UI

1 participant