Skip to content

[3335 by GPT-6.1 Sol] Automation definition form has an empty gap above Repositories - #3342

Merged
integry merged 1 commit into
mainfrom
3335/gpt-6.1-sol-automation-definition-for-20261024-2038-afk
Oct 24, 2026
Merged

integry merged 1 commit into
mainfrom
3335/gpt-6.1-sol-automation-definition-for-20261024-2038-afk

Conversation

@propr-dev

@propr-dev propr-dev Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

AI Implementation Summary

Closes #3335

Branch: 3335/gpt-6.1-sol-automation-definition-for-20261024-2038-afk
Commits: ✅ Changes committed (c99e9eb)


AI Processing Completed

Execution Details:

Summary:
Fixed #3335 by hiding the extension profile wrapper when it’s empty, removing the extra gap above Repositories.

Verified with 25 editor tests and 3 browser tests. Captured a 1440px visual preview showing consistent spacing.

Detailed Logs:

  • Conversation: 25 messages
  • Session: 01a16fa9-b832-73d3-b010-e60ef5337c0a

Log files stored at:

  • conversation: /usr/src/app/logs/executions/issue-3335-2026-10-24T20-47-16-662Z-conversation.json
  • output: /usr/src/app/logs/executions/issue-3335-2026-10-24T20-47-16-662Z-output.txt
Latest Conversation Messages

This PR was created automatically by ProPR after processing issue #3335.


💡 Need changes?

Comment on this PR to request refinements — the AI agent monitors comments and will update the implementation based on your feedback. Keep iterating until you're satisfied!


Visual preview

Automation form spacing at 1440px

Automation form spacing at 1440px

Description and Repositories use consistent spacing when the optional extension profile selector is absent.

Original unavailable: managed storage is unavailable or the upload has expired.

…y gap above

Implemented by ProPR AI using gpt-6.1-sol model.

Implementation completed successfully.
@integry

integry commented Oct 24, 2026

Copy link
Copy Markdown
Owner

/ultrafix

@propr-dev propr-dev Bot added the ultrafix label Oct 24, 2026
@propr-dev

propr-dev Bot commented Oct 24, 2026

Copy link
Copy Markdown
Contributor Author

🔄 Ultrafix loop started (goal: 8/10, max cycles: 10)

First action: /review

💡 Tip: Remove the ultrafix label from this PR to stop further ultrafix cycles.

@propr-dev

propr-dev Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor Author

✅ AI Code Review Complete requested by @integry

Posted 1 review:

View Task Details

@propr-dev

propr-dev Bot commented Oct 24, 2026

Copy link
Copy Markdown
Contributor Author

🔍 AI Code Review — claude:claude-opus-5-5

Overall Evaluation

The PR fixes issue #3335, an empty gap above Repositories in the automation definition form. It adds Tailwind's empty:hidden variant to the padded wrapper around ExtensionProfileSelector in propr-ui/src/components/Agents/AgentSettingsForm.tsx:75. This is a one-line, localized fix and is ready to merge.

The cause matches the context:

  • ExtensionProfileSelector returns null when there is no saved selection and either the user lacks instance.manage_settings or no enabled profiles exist (ExtensionProfileSelector.tsx:20).
  • The surrounding <div className="px-4 py-4"> still rendered in that case, leaving 32px of padding with nothing inside.
  • That padding sat in front of the AgentFormRow-based Repositories row, which adds its own py-4.

With empty:hidden, the wrapper gets display: none whenever the child renders nothing.

✅ Correct :empty applicability — The JSX puts <ExtensionProfileSelector …/> directly inside the <div> on one line. So when the child returns null, the DOM element has no child nodes, not even whitespace text, and :empty matches reliably.

✅ Preserves visible states — When a saved selection exists, or a permitted user has enabled profiles, the selector renders its content. The wrapper is then non-empty and keeps its px-4 py-4 padding. Clearing a stale revision and showing the load-error status keep working, as covered by ExtensionProfileSelector.test.tsx.

✅ Re-renders stay consistent — :empty is evaluated live by the browser. When profiles finish loading and the selector appears, or the user clears a selection and it disappears, the wrapper toggles without extra state.

Tailwind scans ./src/**/*.{js,ts,jsx,tsx} (tailwind.config.js:7), so the empty:hidden utility will be generated. All 18 completed checks pass.

Merge blockers

No merge blockers.

Suggestions

These are optional follow-ups and are not sent to /fix.

S1: 🟢 Check other ExtensionProfileSelector hosts

The selector's comment ("A task with no selected profile needs no extension controls") suggests it is also mounted in task forms. If other callers also wrap it in a padded container, they would show the same empty gap. I could not inspect those callers from the supplied context. A quick search for ExtensionProfileSelector usages would show whether the same empty:hidden (or a conditional wrapper) is needed elsewhere. This is optional because it lies outside the automation form named in the issue.

S2: 🟢 Add a regression check for the empty wrapper

No test covers the fix. jsdom does not apply Tailwind CSS, but a component test could still check two things:

  • With no saved selection and an empty profile catalog, the wrapper preceding the Repositories row has no child nodes. This guards against someone adding whitespace or a sibling element that would defeat :empty.
  • A Playwright check at 1440px compares the Description→Repositories spacing with other row spacing.

S3: 🟢 Align the visible selector with the row layout

When the selector does render, it sits in a plain px-4 py-4 block. It has no border-b border-slate-100 and does not use the AgentFormRow two-column grid, so it looks inconsistent next to the other fields. Moving it into an AgentFormRow (label on the left, select on the right) would make the spacing and dividers uniform. That would mean letting the row hide itself, or lifting the visibility decision to the parent. This predates the PR and is cosmetic.

Score

A minimal and correct fix for the reported gap, with no regressions in the visible-selector paths and all checks green. A regression test would be welcome but is not required.

Score: 8/10


🤖 Review Details

  • Model: Claude Opus 5.5
  • Time: 21s
  • Tokens: 21,751 (19,923 in / 1,828 out)
  • Cost: $0.14

View Task


💡 Next step: Comment /fix to address every F# merge blocker, /fix all for every pending blocker and suggestion, or name records explicitly, as in /fix F3 S5.
F# and S# IDs increment across review comments and remain permanent, so selectors such as /fix F3 F5 stay unambiguous across cycles. S# suggestions stay optional: they are implemented only when you name them or request /fix all, and they never relax a merge blocker.

Copy and edit to choose records from this review:

/fix S1 S2 S3

🤖 Review by ProPR

@propr-dev propr-dev Bot removed the ultrafix label Oct 24, 2026
@integry
integry merged commit a0f02a6 into main Oct 24, 2026
70 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Automation definition form has an empty gap above Repositories

1 participant