Skip to content

fix(webapp): improve preview branch auto-archive settings UI - #4957

Closed
samejr wants to merge 8 commits into
mainfrom
samejr/podgorica
Closed

samejr wants to merge 8 commits into
mainfrom
samejr/podgorica

Conversation

@samejr

@samejr samejr commented Sep 19, 2026

Copy link
Copy Markdown
Member

Preview branch auto-archive settings now use clearer field descriptions, a Keep specific branches checkbox with removable branch-name rows, a full-width days input with an inline suffix, and the standard modal footer. Configured policies show Manage auto-archive, with Disable auto-archiving inside the dialog. Preview counts use tabular numerals, and protected branches appear as a bullet list under a matching heading. While refreshing, a blue spinner appears beside Preview and the previous results retain their height. Both preview changes and branch-field additions/removals animate their height, respecting reduced-motion preferences.

The first-branch blank state hides the search and filter toolbar while retaining its own creation button. Projects with only archived branches retain the toolbar. Empty projects at their branch limit keep the purchase/upgrade action in the page header. New branch now sits at the far right of the search row.

Unchecking Keep specific branches hides the fields and excludes their values from previews and saves, while preserving draft entries if the section is checked again. Saved exclusions automatically enable the checkbox when reopening the dialog.

Archiving rules, scheduling, policy validation, and rollout defaults are unchanged; disabling uses the existing save action and preserves saved exclusions.

✅ Checklist

  • Followed the contributing guidance applicable to this UI change.
  • The PR title follows the convention.
  • Ran and tested the code.

Testing

  • pnpm run format, pnpm run lint:fix, pnpm run typecheck --filter webapp, and pnpm run knip pass.
  • Browser checks with a local database verified empty and archived-only states, creation buttons, adding/removing exclusions, saving settings, and disabling with invalid or unsaved draft values while preserving saved exclusions.
  • Browser checks verified checkbox visibility, draft retention across toggles, empty preview/save payloads when unchecked, hidden invalid entries not blocking saves, and saved exclusions restoring the checked state.
  • Browser checks with network throttling verified the Preview spinner, retained results while loading, smooth growth/shrinkage for results and branch fields, checkbox collapse/expansion, and reduced-motion behavior.
  • Browser measurements confirmed equal 6px toolbar gaps and a two-line field description.
  • Final copy, spacing, and input-suffix refinements passed formatting, lint, and typecheck.

Changelog

Simplify preview branch auto-archive configuration and keep branch creation alongside the search controls.


Open workspace in Conductor

@changeset-bot

changeset-bot Bot commented Sep 19, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 28aaf1c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

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

@coderabbitai

coderabbitai Bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Advanced

Run ID: 8605b65f-7d6a-4d31-8a73-33a495a6cfce

📥 Commits

Reviewing files that changed from the base of the PR and between 53e6d94 and 28aaf1c.

📒 Files selected for processing (2)
  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx
  • apps/webapp/app/routes/resources.branches.auto-archive.tsx

Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (12)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (17, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (18, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (20, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (14, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (16, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (13, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (19, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (21, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (15, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (11, 24)
  • GitHub Check: e2e-webapp / 🧪 E2E Tests: Webapp (2, 2)
  • GitHub Check: e2e-webapp / 🧪 E2E Tests: Webapp (1, 2)
🧰 Additional context used
📓 Path-based instructions (5)
For dashboard changes, visually verify the running Remix app with Chrome DevTools MCP, using snapshots, screenshots, interaction, and console-message checks as appropriate.

📄 CodeRabbit inference engine (apps/webapp/CLAUDE.md)

Files:

  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx
  • apps/webapp/app/routes/resources.branches.auto-archive.tsx
Use zod for validation in packages/core and apps/webapp

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx
  • apps/webapp/app/routes/resources.branches.auto-archive.tsx
Access environment variables through the `env` export of `env.server.ts` instead of directly accessing `process.env` Use subpath exports from `@trigger.dev/core` package instead of importing from the root `@trigger.dev/core` path

📄 CodeRabbit inference engine (.cursor/rules/webapp.mdc)

Files:

  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx
  • apps/webapp/app/routes/resources.branches.auto-archive.tsx
Use function declarations instead of default exports

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx
  • apps/webapp/app/routes/resources.branches.auto-archive.tsx
Use types over interfaces for TypeScript Avoid using enums; prefer string unions or const objects instead

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx
  • apps/webapp/app/routes/resources.branches.auto-archive.tsx
🔇 Additional comments (2)
apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx (1)

290-300: LGTM!

Also applies to: 613-613

apps/webapp/app/routes/resources.branches.auto-archive.tsx (1)

3-5: LGTM!

Also applies to: 268-274, 282-283, 361-400, 402-476, 508-524


Walkthrough

The preview branches page now adjusts its header layout based on branch availability and limits. The auto-archive form now supports checkbox-gated branch exclusions, animated sections, explicit preview states, protected-branch output, updated triggers, and revised save or disable actions.

Priority: ⬇️ Low

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 11.11% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 9 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 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.
Title check ✅ Passed The title clearly and concisely describes the main change: improving the preview branch auto-archive settings UI.
Description check ✅ Passed The description gives a detailed change summary, completed checklist, testing evidence, and changelog. It does not include the required issue closure line or Screenshots section, but the main required…
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

@devin-ai-integration devin-ai-integration 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.

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

@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.

🧹 Nitpick comments (1)
apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx (1)

293-350: 🎯 Functional Correctness | 🔵 Trivial

Run the required dashboard checks before merge.

Use Chrome DevTools MCP to inspect the branch controls in empty, archived-only, paginated, branch-limit, and narrow-viewport states. Inspect the auto-archive dialog triggers, row insertion and removal, validation and preview states, dismissal actions, keyboard interaction, focus trapping and restoration, responsive layout, and console messages.

Source: Coding guidelines


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Advanced

Run ID: 6b60dece-2279-454b-a0b7-463f1b6595b5

📥 Commits

Reviewing files that changed from the base of the PR and between 4e83d83 and 9b54df8.

📒 Files selected for processing (3)
  • .server-changes/preview-auto-archive-settings-ui.md
  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx
  • apps/webapp/app/routes/resources.branches.auto-archive.tsx

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.

📜 Review details
⏰ Context from checks skipped due to timeout. (16)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (7, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (13, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (14, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (17, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (19, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (21, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (16, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (12, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (18, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (20, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (15, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (11, 24)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (6, 24)
  • GitHub Check: e2e-webapp / 🧪 E2E Tests: Webapp (1, 2)
  • GitHub Check: e2e-webapp / 🧪 E2E Tests: Webapp (2, 2)
  • GitHub Check: Analyze (javascript-typescript)
🧰 Additional context used
📓 Path-based instructions (5)
For dashboard changes, visually verify the running Remix app with Chrome DevTools MCP, using snapshots, screenshots, interaction, and console-message checks as appropriate.

📄 CodeRabbit inference engine (apps/webapp/CLAUDE.md)

Files:

  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx
  • apps/webapp/app/routes/resources.branches.auto-archive.tsx
Use zod for validation in packages/core and apps/webapp

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx
  • apps/webapp/app/routes/resources.branches.auto-archive.tsx
Access environment variables through the `env` export of `env.server.ts` instead of directly accessing `process.env` Use subpath exports from `@trigger.dev/core` package instead of importing from the root `@trigger.dev/core` path

📄 CodeRabbit inference engine (.cursor/rules/webapp.mdc)

Files:

  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx
  • apps/webapp/app/routes/resources.branches.auto-archive.tsx
Use function declarations instead of default exports

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx
  • apps/webapp/app/routes/resources.branches.auto-archive.tsx
Use types over interfaces for TypeScript Avoid using enums; prefer string unions or const objects instead

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.branches/route.tsx
  • apps/webapp/app/routes/resources.branches.auto-archive.tsx
🧠 Learnings (2)
📚 Learning: 2026-07-26T13:14:02.968Z
Learnt from: ericallam
Repo: triggerdotdev/trigger.dev PR: 4378
File: .server-changes/realtime-run-reads-from-primary.md:0-0
Timestamp: 2026-07-26T13:14:02.968Z
Learning: For files in the .server-changes directory, the body text is published verbatim as dashboard-facing user release notes. Write entries in terms of user-visible behavior (what users can do/see), and avoid implementation-oriented details such as environment-variable names, internal mechanisms, or configuration knobs. If you need to include operational/configuration specifics, put those details in the PR description instead of the .server-changes entry.

Applied to files:

  • .server-changes/preview-auto-archive-settings-ui.md
📚 Learning: 2026-08-21T14:06:29.516Z
Learnt from: 0ski
Repo: triggerdotdev/trigger.dev PR: 4741
File: apps/webapp/app/components/integrations/VercelBuildSettings.tsx:22-30
Timestamp: 2026-08-21T14:06:29.516Z
Learning: In triggerdotdev/trigger.dev webapp TypeScript and TSX files, treat `// crumbs`, `#region crumbs`, and agentcrumbs imports as temporary runtime-debugging instrumentation. Do not require contributors to add these markers or flag existing markers during review; they are used only when runtime tracing is needed during development and are removed before merge.

Applied to files:

  • apps/webapp/app/routes/resources.branches.auto-archive.tsx
🔇 Additional comments (2)
apps/webapp/app/routes/resources.branches.auto-archive.tsx (1)

4-4: LGTM!

Also applies to: 15-35, 61-61

.server-changes/preview-auto-archive-settings-ui.md (1)

1-6: LGTM!

devin-ai-integration[bot]

This comment was marked as resolved.

@samejr samejr closed this Sep 20, 2026
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.

1 participant