Skip to content

[3336 by GPT-6.1 Sol] Narrow run steps truncate key text such as the resolved file name - #3343

Merged
integry merged 3 commits into
mainfrom
3336/gpt-6.1-sol-narrow-run-steps-truncate-20261024-2038-deb
Oct 25, 2026
Merged

integry merged 3 commits into
mainfrom
3336/gpt-6.1-sol-narrow-run-steps-truncate-20261024-2038-deb

Conversation

@propr-dev

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

Copy link
Copy Markdown
Contributor

AI Implementation Summary

Closes #3336

Branch: 3336/gpt-6.1-sol-narrow-run-steps-truncate-20261024-2038-deb
Commits: ✅ Changes committed (23463b1)


AI Processing Completed

Execution Details:

Summary:
Implemented #3336. Narrow run-step labels now wrap, including long file paths, so resolved filenames remain visible. Timestamps, durations, and detail controls remain usable.

Verified with 57 unit tests, 7 browser tests, and targeted lint checks. Captured focused phone and narrow-timeline previews.

Detailed Logs:

  • Conversation: 35 messages
  • Session: 01a16fa9-72f9-7bd2-b75c-11a11e348ff2

Log files stored at:

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

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


💡 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

Task step disclosures 1440

Task step disclosures 1440

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

Task step disclosures 390

Task step disclosures 390

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

Run steps at phone width

Run steps at phone width

At 320px, the full conflict-resolution file path wraps while timestamps and durations remain visible.

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

Task step labels 320 touch

Task step labels 320 touch

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

Run steps in a narrow timeline

Run steps in a narrow timeline

At 520px, the resolved file name remains readable without expanding the step.

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

Task step labels 520 mouse

Task step labels 520 mouse

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

…h as the res

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 #3336, where compact run steps truncated important text such as a resolved file path. In StepDisclosure, the narrow-container label span now uses [overflow-wrap:anywhere] instead of truncate. Because the full label is now always visible, the duplicate full label inside the disclosure panel is removed. The e2e test now uses a realistic /merge label with a long path and asserts that the collapsed label wraps without overflow. The two hard 32px row-height caps, which a wrapping row would violate, are removed.

The core fix is correct and well targeted. Wide layouts at 528px and above are unaffected, since they still use the block break-words span. However, removing the panel label leaves most narrow-width steps as disclosure buttons that expand to nothing. That inconsistency should be resolved before merge.

✅ Wrapping applied at the root cause — TaskStatusTable.tsx replaces truncate with [overflow-wrap:anywhere] on the min-w-0 flex-1 label span. Long unbroken paths like src/checkout/CheckoutSummary…tsx can now break inside the token instead of being cut off.

✅ E2E checks the issue's actual case — task-timeline-mobile.pw.ts uses a Resolve the conflict in src/…tsx label. It checks the collapsed state (aria-expanded="false"), fit in both axes, height greater than one line, white-space: normal and text-overflow: clip. Together these prove the label is readable without interaction.

✅ Stale height caps removed — The 32px caps in both e2e loops would contradict wrapping. The remaining checks on column alignment and overflow still cover the layout.

Merge blockers

Every finding below was introduced by this PR and must be resolved before merging.

F1: 🔴 Detail-less steps become empty disclosure toggles

  • Required behavior: Internal consistency of the changed disclosure control. An expandable control must reveal something when expanded. Before this PR, expanding any compact step revealed its full label; after it, most steps expand to nothing.

  • Evidence: propr-ui/src/components/TaskDetails/TaskStatusTable.tsx — StepDisclosure, where the panel's <div className="hidden break-words …">{label}</div> was removed.

    Static trace:

    1. Render a run's steps in a container narrower than 528px, for example a 390px phone. Use a step with no terminal reason, egress or push metadata (hasStepDetails is false), such as "Task Queued" or the e2e test's Resolve the conflict in … step.
    2. The <button aria-expanded="false" aria-controls={id}> still renders, with a trailing +.
    3. The user taps it, or presses Enter on it with a screen reader.
    4. open becomes true, the + flips to −, and aria-expanded="true" is announced.
    5. The controlled <div id={id}> contains only children. For this step children evaluates to false for terminalReason, plus null from NetworkEgressDetail and PushFailureDetails, so nothing appears.

    Every ordinary step therefore has a "collapsed" button that does nothing visible. The RunTimeline.test.tsx update confirms this: Task Queued+12s and Read withdrawal handlers+12s now include the toggle glyph on detail-less steps.

    Before this PR, the panel always contained the full label, so expanding was meaningful for every step. No existing guard prevents the empty toggle. hasDetails only controls the • indicator, not whether a button renders.

  • Minimum fix:

    • In StepDisclosure, render the narrow-width <button> and its controlled region only when hasDetails is true.
    • Otherwise, render the same wrapping <span className="… [overflow-wrap:anywhere]"> as non-interactive text at narrow widths.
    • Adjust the affected tests:
      • the e2e test's getByRole('button', { name: label }), which currently targets a detail-less step;
      • the RunTimeline.test.tsx + expectations;
      • the getAllByRole('button')[0] assumption in TaskStatusTable.test.tsx.

Suggestions

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

S1: 🟢 Top-align toggle glyphs on wrapped labels

The disclosure button uses items-center, so on a two- or three-line label the • and + glyphs sit vertically centred. Meanwhile the time and duration columns are top-aligned via the li's items-start. Switching the button to items-start would keep the controls on the first line with the metadata. This is cosmetic and optional.

S2: 🟢 Add a unit test for the non-truncating class

The wrap behaviour is only covered by Playwright. A small Vitest assertion would catch a regression back to truncate in the faster suite: the branch label span lacks truncate and carries [overflow-wrap:anywhere]. This is optional because the e2e already checks computed styles.

Score

The core fix correctly resolves the truncation described in the issue, and the e2e coverage is strong. However, the PR leaves detail-less narrow steps as disclosure buttons that expand to nothing, and that needs a small fix before merge.

Score: 6/10


🤖 Review Details

  • Model: Claude Opus 5.5
  • Time: 36s
  • Tokens: 45,702 (42,706 in / 2,996 out)
  • Cost: $0.27

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 F1 S1 S2

🤖 Review by ProPR

@propr-dev

propr-dev Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor Author

✅ Applied the requested follow-up changes in commit 9fe0246

Addressed 1 AI review comment (IDs: 6390403340)

Addressed finding F1

Summary of Changes

Applied F1 only. Detail-less steps now render as wrapping text without empty disclosure controls. Steps with terminal, network, or push details retain working toggles.

Verified: 60 unit tests, 3 browser checks, and UI typecheck passed. Captured focused previews at 390px and 520px.

Visual preview

Task step labels 1920 mouse timeline

Task step labels 1920 mouse timeline

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

Task step labels 1920 mouse

Task step labels 1920 mouse

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

Phone timeline without empty disclosures

Phone timeline without empty disclosures

At 390px, ordinary steps are plain text and the full resolved file path wraps without an empty toggle.

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

Task step labels 390 touch

Task step labels 390 touch

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

Narrow timeline with wrapping step text

Narrow timeline with wrapping step text

At 520px, detail-less steps preserve readable labels without disclosure buttons.

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

Task step labels 520 mouse

Task step labels 520 mouse

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


🤖 Implementation Details

  • Model: GPT-6.1 Sol (medium)
  • Requested By: @propr-ultrafix
  • Time: 3m 35s
  • Tokens: 495,558 (491,846 in / 3,712 out)
  • Cost: $0.16

View Task Execution


💡 ProPR Slash Commands
Command Description Example
/merge Merge target branch into this PR and resolve conflicts /merge
/review Request an AI code review /review or /review claude-sonnet
/fix Address review blockers, or blockers and suggestions with /fix all /fix, /fix all, or /fix F3 S5
/switch Change the AI model for this PR /switch claude-opus
/use Override the model for a single follow-up run /use claude-sonnet
/ultrafix Loop review→fix cycles until score goal is met /ultrafix or /ultrafix goal=8 max=10

🤖 Generated by ProPR

…ext without empty disclosure controls. Steps with terminal, network, or push details retain working toggles.

Applied F1 only. Detail-less steps now render as wrapping text without empty disclosure controls. Steps with terminal, network, or push details retain working toggles.

Verified: 60 unit tests, 3 browser checks, and UI typecheck passed. Captured focused previews at 390px and 520px.

PR: #3343
Comment by: @propr-ultrafix (ID: 0)
Model: GPT-6.1 Sol
@propr-dev

propr-dev Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor Author

✅ AI Code Review Complete requested by @propr-ultrafix

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 #3336: narrow step labels in the compact timeline were cut off and lost their key text, such as the resolved file name. It does this in two ways:

  • Steps without details now render as a plain wrapping <span>, with no disclosure button, no aria-controls and no panel id.
  • Steps with details keep their disclosure button, but the label inside it wraps with [overflow-wrap:anywhere] instead of truncate.

Because the button now shows the full label, the copy of the label that used to sit inside the expanded panel is gone. The change is small and contained to StepDisclosure. Hooks still run in a fixed order: useState and useId are called before the early return.

The tests were updated to match:

  • The unit test now checks every detail-bearing kind of step (terminal reason, egress, push failure, salvage whose summary differs from its description).
  • The salvage-summary-equals-description case is pinned as detail-less.
  • The e2e test now uses the issue's real example label. It asserts that the label wraps (taller than one line, white-space: normal, no overflow) at widths of 520px and below.

I found no blockers. The PR is ready to merge once the pending Validate Changes check finishes.

✅ Root cause addressed, not just styled — Detail-less steps no longer render an interactive control at all (TaskStatusTable.tsx, the if (!hasDetails) branch). This removes the need for the truncating button and also drops a pointless tab stop from every plain step.

✅ No duplicated label — The full label now lives in the button itself, so removing the panel copy (<div className="hidden break-words …">{label}</div>) avoids a screen reader hearing the label twice when the panel opens.

✅ Tests target the regression directly — In e2e/task-timeline-mobile.pw.ts, labelLayout.height > lineHeight and fits together prove the file path wraps rather than being clipped. toHaveCount(0) on step buttons proves detail-less rows have no disclosure.

Merge blockers

No merge blockers.

Suggestions

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

S3: 🟢 Align disclosure marker with first line

The disclosure button still uses items-center (TaskStatusTable.tsx, the button className). Now that its label can span several lines, the • and +/− markers sit at the vertical middle of the label rather than beside its first line. The time and duration columns, and the row tic at top-[13px], all line up with the first line instead. Switching to items-start would keep every column aligned. This is cosmetic only, so it is not required.

S4: 🟢 Prefer path-aware break points

[overflow-wrap:anywhere] can break a path mid-identifier, for example CheckoutSummaryWithConf|irmation…. This satisfies the issue, because the text stays visible. Readability would improve by inserting <wbr> after / (and perhaps .) in labels, so breaks fall on path segments first. This is optional polish.

S5: 🟢 E2E coverage for a long label with details

The e2e wrap assertions only cover detail-less rows. The narrow-width disclosure test (step details remain accessible…) uses short generated labels and no longer asserts anything about height. A narrow e2e case with a long label plus pushFailure or terminalReason would prove the button label wraps inside the flex button. jsdom cannot check layout, so the unit test cannot cover this.

Score

The change correctly delivers wrapping labels at narrow widths, removes needless disclosure controls and duplicated text, and has focused unit and e2e coverage. The only remaining condition is the pending Validate Changes check.

Score: 8/10


🤖 Review Details

  • Model: Claude Opus 5.5
  • Time: 45s
  • Tokens: 52,356 (49,840 in / 2,516 out)
  • Cost: $0.30

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 S3 S4 S5

🤖 Review by ProPR

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

propr-dev Bot commented Oct 24, 2026

Copy link
Copy Markdown
Contributor Author

CI failed: Validate Changes

Please investigate and fix this CI failure.

Failure evidence

.github:8
Process completed with exit code 1.

.github:411
Process completed with exit code 1.

propr-ui/e2e/creation-short-window.pw.ts:0 — Slow Test
propr-ui/e2e/creation-short-window.pw.ts took 10.3m

@github-actions

Copy link
Copy Markdown

Checks Failed

Validation failed during setup, tests, CLI packaging, linting, or build checks.

View Logs
Build check diagnostics for run 40139560170, attempt 1
Checkout outcome: success

--- GitHub Actions workflow lint ---
docker.io/rhysd/actionlint@sha256:b1934ee5f1c509618f2508e6eb47ee0d3520686341fec936f3b79331f9315667: Pulling from rhysd/actionlint
589002ba0eae: Pulling fs layer
c09af8888d6a: Pulling fs layer
4ccd7d76ca98: Pulling fs layer
b6b4b7b0e257: Pulling fs layer
b6b4b7b0e257: Waiting
c09af8888d6a: Verifying Checksum
c09af8888d6a: Download complete
4ccd7d76ca98: Verifying Checksum
4ccd7d76ca98: Download complete
589002ba0eae: Verifying Checksum
589002ba0eae: Download complete
589002ba0eae: Pull complete
b6b4b7b0e257: Verifying Checksum
b6b4b7b0e257: Download complete
c09af8888d6a: Pull complete
4ccd7d76ca98: Pull complete
b6b4b7b0e257: Pull complete
Digest: sha256:b1934ee5f1c509618f2508e6eb47ee0d3520686341fec936f3b79331f9315667
Status: Downloaded newer image for rhysd/actionlint@sha256:b1934ee5f1c509618f2508e6eb47ee0d3520686341fec936f3b79331f9315667
docker.io/rhysd/actionlint@sha256:b1934ee5f1c509618f2508e6eb47ee0d3520686341fec936f3b79331f9315667

--- Release shell script lint ---

--- Toolchain ---
v22.23.3
10.9.9

--- Dependency installation ---
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated gar@1.0.4: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me

added 1111 packages, and audited 1120 packages in 23s

316 packages are looking for funding
  run `npm fund` for details

8 vulnerabilities (3 moderate, 5 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

--- CLI release package ---
Verifying propr-cli release package...

> propr@0.9.0 cli:pack
> node packages/cli/scripts/build-publish.mjs


> @propr/shared@0.9.0 build
> tsc


> @propr/local-setup@0.9.0 build
> tsc


> @propr/cli@0.9.0 build
> tsc && node scripts/copy-assets.mjs

copy-assets: copied 9 file(s) into the CLI package.

Staged propr-cli@0.9.0 at /home/runner/work/propr/propr/dist-publish/propr-cli
npm notice
npm notice 📦  propr-cli@0.9.0
npm notice Tarball Contents
npm notice 26.7kB README.md
npm notice 36.3kB dist/agentSkill.js
npm notice 754B dist/api/agentRuntime.js
npm notice 7.1kB dist/api/agents.js
npm notice 2.6kB dist/api/agentTank.js
npm notice 4.0kB dist/api/automations.js
npm notice 11.7kB dist/api/client.js
npm notice 5.0kB dist/api/errors.js
npm notice 1.6kB dist/api/followupHandoffs.js
npm notice 16.6kB dist/api/goals.js
npm notice 6.0kB dist/api/implement.js
npm notice 2.6kB dist/api/index.js
npm notice 1.9kB dist/api/logs.js
npm notice 6.2kB dist/api/plans.js
npm notice 4.2kB dist/api/relay.js
npm notice 12.3kB dist/api/repos.js
npm notice 14.2kB dist/api/settings.js
npm notice 775B dist/api/stats.js
npm notice 1.6kB dist/api/syntheticPools.js
npm notice 1.8kB dist/api/system.js
npm notice 5.9kB dist/api/tasks.js
npm notice 2.9kB dist/api/todos.js
npm notice 86B dist/api/types.js
npm notice 313B dist/api/visualPreviewAuth.js
npm notice 29.7kB dist/assets/env.example.txt
npm notice 5.8kB dist/auth/githubLogin.js
npm notice 19.7kB dist/commands/agentCommands.js
npm notice 4.2kB dist/commands/agentPoolCommands.js
npm notice 4.3kB dist/commands/agentSkillCommands.js
npm notice 29.7kB dist/commands/agentValidation.js
npm notice 27.2kB dist/commands/automationCommands.js
npm notice 70.8kB dist/commands/checkCommands.js
npm notice 8.9kB dist/commands/configCommands.js
npm notice 14.6kB dist/commands/connectCommand.js
npm notice 5.5kB dist/commands/githubAppApi.js
npm notice 27.7kB dist/commands/githubAppCommands.js
npm notice 57.9kB dist/commands/goalCommands.js
npm notice 8.1kB dist/commands/handoffCommands.js
npm notice 2.4kB dist/commands/imageCommands.js
npm notice 8.0kB dist/commands/implementCommands.js
npm notice 1.8kB dist/commands/index.js
npm notice 7.3kB dist/commands/initCommands.js
npm notice 14.1kB dist/commands/initStack.js
npm notice 6.1kB dist/commands/logCommands.js
npm notice 24.9kB dist/commands/planCommands.js
npm notice 8.4kB dist/commands/relayCommands.js
npm notice 38.6kB dist/commands/repoCommands.js
npm notice 2.7kB dist/commands/repoValidate.js
npm notice 7.5kB dist/commands/runtimeCommands.js
npm notice 17.9kB dist/commands/settingCommands.js
npm notice 4.6kB dist/commands/setup/agentHostActions.js
npm notice 123B dist/commands/setup/agents.js
npm notice 4.7kB dist/commands/setup/engine.js
npm notice 51B dist/commands/setup/github.js
npm notice 37.3kB dist/commands/setup/hostActions.js
npm notice 3.2kB dist/commands/setup/imagePlatform.js
npm notice 27.3kB dist/commands/setup/sequential.js
npm notice 51B dist/commands/setup/state.js
npm notice 51B dist/commands/setup/types.js
npm notice 10.7kB dist/commands/setupCommand.js
npm notice 4.4kB dist/commands/stackCommands.js
npm notice 1.4kB dist/commands/startCommand.js
npm notice 3.7kB dist/commands/statsCommands.js
npm notice 13.5kB dist/commands/systemCommands.js
npm notice 3.5kB dist/commands/tankCommands.js
npm notice 46.3kB dist/commands/taskCommands.js
npm notice 29.7kB dist/commands/todoCommands.js
npm notice 31.0kB dist/commands/tunnelCommand.js
npm notice 2.7kB dist/commands/uiDocsCommands.js
npm notice 8.3kB dist/completion.js
npm notice 27.3kB dist/config/ConfigManager.js
npm notice 276B dist/config/index.js
npm notice 989B dist/config/rootKey.js
npm notice 345B dist/config/types.js
npm notice 46.0kB dist/connectIdentity.js
npm notice 25.0kB dist/connectRootAuthority.js
npm notice 32.5kB dist/connectWindowsAuthority.js
npm notice 2.2kB dist/desktopDiscovery.js
npm notice 13.3kB dist/desktopLocalSetup.js
npm notice 17.2kB dist/index.js
npm notice 4.5kB dist/native/darwin-authority-broker.c
npm notice 8.9kB dist/native/directory-operations.c
npm notice 50.1kB dist/native/prebuilds/darwin-arm64/connect-authority-broker
npm notice 54.2kB dist/native/prebuilds/darwin-arm64/directory-operations.node
npm notice 17.1kB dist/native/prebuilds/darwin-x64/connect-authority-broker
npm notice 24.3kB dist/native/prebuilds/darwin-x64/directory-operations.node
npm notice 28.9kB dist/native/prebuilds/linux-arm64/directory-operations.node
npm notice 17.4kB dist/native/prebuilds/linux-x64/directory-operations.node
npm notice 1.2kB dist/native/README.md
npm notice 3.1kB dist/orchestrator/format.js
npm notice 13.4kB dist/orchestrator/index.js
npm notice 302B dist/orchestrator/manifest.json
npm notice 127.6kB dist/orchestrator/orchestrator.mjs
npm notice 408B dist/orchestrator/types.js
npm notice 237B dist/skill/propr/agents/openai.yaml
npm notice 8.7kB dist/skill/propr/SKILL.md
npm notice 4.5kB dist/tui/AgentTableApp.js
npm notice 4.5kB dist/tui/app.js
npm notice 11.6kB dist/tui/CheckApp.js
npm notice 5.1kB dist/tui/render.js
npm notice 32.5kB dist/tui/SetupApp.js
npm notice 18.4kB dist/tui/SetupApp.test.js
npm notice 8.2kB dist/tui/StartApp.js
npm notice 3.6kB dist/utils/apiErrorPresentation.js
npm notice 12.0kB dist/utils/directoryDescriptor.js
npm notice 739B dist/utils/dockerPort.js
npm notice 5.0kB dist/utils/envFile.js
npm notice 520B dist/utils/index.js
npm notice 5.7kB dist/utils/io.js
npm notice 717B dist/utils/localSetupPlatform.js
npm notice 1.5kB dist/utils/nativeArtifact.js
npm notice 544B dist/utils/parseState.js
npm notice 417B dist/utils/positiveInteger.js
npm notice 4.5kB dist/utils/privateFilesystem.js
npm notice 4.2kB dist/utils/resolveProject.js
npm notice 7.2kB dist/vendor/local-setup/agents.js
npm notice 64.5kB dist/vendor/local-setup/engine.js
npm notice 5.0kB dist/vendor/local-setup/envFile.js
npm notice 11.4kB dist/vendor/local-setup/github.js
npm notice 188B dist/vendor/local-setup/index.js
npm notice 27.5kB dist/vendor/local-setup/publicInstanceIdentity.js
npm notice 14.6kB dist/vendor/local-setup/state.js
npm notice 2.8kB dist/vendor/local-setup/types.js
npm notice 1.0kB dist/vendor/shared/accountStatusTimestamp.js
npm notice 7.6kB dist/vendor/shared/activityEvents.js
npm notice 2.8kB dist/vendor/shared/agentConfigRedaction.js
npm notice 4.4kB dist/vendor/shared/agentDefinitions.js
npm notice 3.4kB dist/vendor/shared/agentLogin.js
npm notice 3.1kB dist/vendor/shared/agentTank.js
npm notice 1.2kB dist/vendor/shared/agentTankHistory.js
npm notice 2.8kB dist/vendor/shared/analyticsTimeframe.js
npm notice 2.6kB dist/vendor/shared/antigravityCompatibility.js
npm notice 5.1kB dist/vendor/shared/apiOrigin.js
npm notice 3.5kB dist/vendor/shared/assignment.js
npm notice 9.2kB dist/vendor/shared/automationDefinitions.js
npm notice 8.5kB dist/vendor/shared/connectDiscovery.js
npm notice 9.6kB dist/vendor/shared/cronSchedule.js
npm notice 254B dist/vendor/shared/demoMode.js
npm notice 4.3kB dist/vendor/shared/desktopPairing.js
npm notice 481B dist/vendor/shared/desktopTokenRevocation.js
npm notice 8.9kB dist/vendor/shared/events.js
npm notice 3.1kB dist/vendor/shared/extensionProfiles.js
npm notice 2.7kB dist/vendor/shared/fleetData.js
npm notice 2.5kB dist/vendor/shared/githubAppManifest.js
npm notice 1.6kB dist/vendor/shared/githubAuthMode.js
npm notice 2.0kB dist/vendor/shared/githubEventIntakeMode.js
npm notice 11.6kB dist/vendor/shared/goalBlockers.js
npm notice 6.0kB dist/vendor/shared/goalCheckpoints.js
npm notice 4.0kB dist/vendor/shared/goalCreation.js
npm notice 4.9kB dist/vendor/shared/goalWait.js
npm notice 12.8kB dist/vendor/shared/index.js
npm notice 214B dist/vendor/shared/instanceAuthorization.js
npm notice 54B dist/vendor/shared/instanceCatalog.js
npm notice 584B dist/vendor/shared/instanceStorage.js
npm notice 4.0kB dist/vendor/shared/intakeModePrerequisites.js
npm notice 2.9kB dist/vendor/shared/labelUtils.js
npm notice 17.0kB dist/vendor/shared/modelDefinitions.js
npm notice 3.5kB dist/vendor/shared/notificationLinks.js
npm notice 51.3kB dist/vendor/shared/notifications.js
npm notice 7.5kB dist/vendor/shared/previewStorage/v1.js
npm notice 866B dist/vendor/shared/projectSlug.js
npm notice 3.8kB dist/vendor/shared/proprCompatibility.js
npm notice 13.0kB dist/vendor/shared/proprServiceUrls.js
npm notice 16.6kB dist/vendor/shared/prTemplate.js
npm notice 2.2kB dist/vendor/shared/publishedVisualPreviews.js
npm notice 2.5kB dist/vendor/shared/reasoningLevels.js
npm notice 1.2kB dist/vendor/shared/repositoryIcon.js
npm notice 1.4kB dist/vendor/shared/repositoryIconUrl.js
npm notice 3.9kB dist/vendor/shared/repositoryPresentation.js
npm notice 9.5kB dist/vendor/shared/reviewContextBudget.js
npm notice 5.8kB dist/vendor/shared/reviewFeedbackIds.js
npm notice 1.7kB dist/vendor/shared/reviewPrompt.js
npm notice 907B dist/vendor/shared/runCostCap.js
npm notice 861B dist/vendor/shared/sessionSecret.js
npm notice 603B dist/vendor/shared/statusKeys.js
npm notice 7.5kB dist/vendor/shared/syntheticAgents.js
npm notice 2.2kB dist/vendor/shared/taskIdentifiers.js
npm notice 1.8kB dist/vendor/shared/taskLifecycle.js
npm notice 733B dist/vendor/shared/taskReplacement.js
npm notice 957B dist/vendor/shared/text.js
npm notice 9.8kB dist/vendor/shared/usageTips.catalog.json
npm notice 5.0kB dist/vendor/shared/usageTips.js
npm notice 335B dist/vendor/shared/usageTypes.js
npm notice 1.1kB dist/vendor/shared/userWhitelist.js
npm notice 758B dist/vendor/shared/validateRelayUrl.js
npm notice 2.2kB dist/vendor/shared/validateRoutingUrl.js
npm notice 7.1kB dist/vendor/shared/visualPreviewCapacity.js
npm notice 9.3kB dist/vendor/shared/voice.js
npm notice 222B dist/vendor/shared/workEvidence.js
npm notice 675B package.json
npm notice Tarball Details
npm notice name: propr-cli
npm notice version: 0.9.0
npm notice filename: propr-cli-0.9.0.tgz
npm notice package size: 479.2 kB
npm notice unpacked size: 2.0 MB
npm notice shasum: 237f9ad8af132f7e9a6726cd072dbd0f73b6bb76
npm notice integrity: sha512-tba2G29yzpPDS[...]wF0x06TQwSeRw==
npm notice total files: 190
npm notice
propr-cli-0.9.0.tgz

Dry run only. Re-run with --publish to publish to npm.
✅ propr-cli release package verified
Starting changed-area validation process...
Reusing this job's @propr/shared build from CLI packaging.
Reusing this job's @propr/local-setup build from CLI packaging.

--- UI: Typecheck, Lint & Build ---
✅ Client Package validation passed
✅ UI Typecheck passed
❌ UI Lint FAILED

> propr-ui@0.0.1 lint
> eslint . --max-warnings 0


/home/runner/work/propr/propr/propr-ui/src/components/TaskDetails/TaskStatusTable.tsx
  475:1  warning  File has too many lines (401). Maximum allowed is 400  max-lines

✖ 1 problem (0 errors, 1 warning)

ESLint found too many warnings (maximum: 0).
npm error Lifecycle script `lint` failed with error:
npm error code 1
npm error path /home/runner/work/propr/propr/propr-ui
npm error workspace propr-ui@0.0.1
npm error location /home/runner/work/propr/propr/propr-ui
npm error command failed
npm error command sh -c eslint . --max-warnings 0

--- API Reference: OpenAPI Spec & Client Contract ---
✅ OpenAPI spec is current and valid
✅ @propr/client matches the OpenAPI spec

--- Stage outcomes ---
Workflow lint: success
Release shell lint: success
Pre-setup gate: skipped
Node setup: success
Toolchain: success
Dependency install: success
Release metadata: success
CLI packaging: success
Change detection: success
Changed-area checks: failure

View Workflow

@propr-dev

propr-dev Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor Author

✅ Applied the requested follow-up changes in commit 306ee96

Processed 2 comments:

  • Comment 1 by @propr-dev[bot] (ID: 6390948589✓)
  • Comment 2 by @github-actions[bot] (ID: 6390948858✓)

Summary of Changes

Fixed the CI lint failure by compacting an early return in TaskStatusTable.tsx, reducing its counted length from 401 to 399 lines without changing behavior.

Verified: full UI lint with zero warnings, all 47 component tests, and git diff --check pass.

No visual preview needed for this formatting-only change.


🤖 Implementation Details

  • Model: GPT-6.1 Sol (medium)
  • Requested By: @propr-dev[bot], @github-actions[bot]
  • Time: 3m 0s
  • Tokens: 228,577 (227,530 in / 1,047 out)
  • Cost: $0.08
  • Subscription usage: Weekly +1%

Undo Changes • View Task Execution


💡 ProPR Slash Commands
Command Description Example
/merge Merge target branch into this PR and resolve conflicts /merge
/review Request an AI code review /review or /review claude-sonnet
/fix Address review blockers, or blockers and suggestions with /fix all /fix, /fix all, or /fix F3 S5
/switch Change the AI model for this PR /switch claude-opus
/use Override the model for a single follow-up run /use claude-sonnet
/ultrafix Loop review→fix cycles until score goal is met /ultrafix or /ultrafix goal=8 max=10

🤖 Generated by ProPR
Processing comment IDs: 6390948589✓, 6390948858✓

…`TaskStatusTable.tsx`, reducing its counted length from 401 to 399 lines without changing behavior.

Fixed the CI lint failure by compacting an early return in `TaskStatusTable.tsx`, reducing its counted length from 401 to 399 lines without changing behavior.

Verified: full UI lint with zero warnings, all 47 component tests, and `git diff --check` pass.

No visual preview needed for this formatting-only change.

PR: #3343
Comment by: @propr-dev[bot] (ID: 6390948589)
Comment by: @github-actions[bot] (ID: 6390948858)
Model: GPT-6.1 Sol
@integry
integry merged commit 5559dea into main Oct 25, 2026
42 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.

Narrow run steps truncate key text such as the resolved file name

1 participant