Commit Graph

1984 Commits

Author SHA1 Message Date
dotta 2c2e13eac2 merge master into pap-1167-app-ui-bundle 2026-04-07 07:10:14 -05:00
Dotta 502d60b2a8 Merge pull request #2999 from paperclipai/pap-1167-runtime-worktree-hardening
Harden worktree runtime setup and project env handling
2026-04-07 07:06:46 -05:00
dotta f3e5c55f45 test(cli): align env input fixtures with project scope 2026-04-07 06:59:05 -05:00
dotta 48704c6586 fix(export): strip project env values from company packages 2026-04-07 06:32:52 -05:00
Dotta 3e0ab97b12 Merge pull request #2951 from Lempkey/fix/company-prefix-export-import-links
fix: use prefix-aware Link for export/import on Company Settings page
2026-04-06 22:45:40 -05:00
dotta 51414be269 fix(ui): address review follow-ups 2026-04-06 21:56:13 -05:00
dotta 1de1393413 fix(runtime): handle empty dev runner responses 2026-04-06 21:56:13 -05:00
dotta 9a150eee65 fix(ui): remove runtime-only preflight hook dependency
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:50:11 -05:00
dotta a3ecc086d9 test(ui): wait for async issue search results
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:47:17 -05:00
dotta 622a8e44bf refactor(ui): inline document diff rendering
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:43:19 -05:00
dotta d71ff903e4 test(cli): keep import preview fixtures aligned with manifest shape
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:32:08 -05:00
dotta 492e49e1c0 test(cli): cover project env in import preview fixtures
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:31:58 -05:00
dotta 4b654fc81e fix(ui): restore attachment delete state hook order
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:25:42 -05:00
dotta 5136381d8f Speed up issue search 2026-04-06 21:25:41 -05:00
dotta 0edac73a68 Narrow parent issue and time-ago columns in inbox grid
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:44 -05:00
dotta b3b9d99519 Add optional Parent Issue column to inbox show/hide columns
Adds a "parent" column option to the inbox column toggle dropdown.
When enabled, sub-issues display the parent's identifier (e.g. PAP-123)
with the parent title as a tooltip. Uses the existing issueById lookup
map to resolve parent info without additional API calls.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:44 -05:00
dotta c414790404 Move sub-issues inline and remove sub-issues tab
- When no sub-issues exist, show "Add sub-issue" button alongside
  "Upload attachment" and "New document" in the action row
- When sub-issues exist, show them in a dedicated section above
  Documents with "Sub-issues" header and "Add sub-issue" button
- Remove the sub-issues tab from the comments/activity tabs

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:44 -05:00
dotta 1b55474a9b Display image attachments as square-cropped gallery grid
Image attachments now render in a 4-column grid with square aspect ratio
and center-cropped thumbnails. Clicking opens the existing gallery modal.
Hover reveals a trash icon; clicking it shows an inline confirmation
overlay before deleting. Non-image attachments retain the original list
layout.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:44 -05:00
dotta bf3fba36f2 Offset scroll-to-bottom button when properties panel is open
On desktop, the floating scroll-to-bottom button now shifts left
to stay clear of the properties panel when it's open (320px + margin).
Mobile positioning is unchanged.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:44 -05:00
dotta dc842ff7ea Polish board approval card styling
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:44 -05:00
dotta 758219d53f Default sub-issues to parent workspace 2026-04-06 21:24:44 -05:00
dotta 2775a5652b Relax sub-issue dialog banner layout 2026-04-06 21:24:44 -05:00
dotta bd0f56e523 Improve issue approval visibility
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:44 -05:00
dotta 977e9f3e9a Add sub-issue issue-page flows 2026-04-06 21:24:44 -05:00
dotta 365b6d9bd8 Add generic issue-linked board approvals
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:38 -05:00
dotta 6b4f3b56e4 docs: add sub-issue issue detail plan 2026-04-06 21:24:22 -05:00
dotta c1d0c52985 fix(ui): force diff modal to 90% width past sm:max-w-lg default
The DialogContent base class applies sm:max-w-lg which was overriding
the wider max-w setting. Use \!important to ensure the modal takes up
90% of viewport width.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:22 -05:00
dotta 5d6217b70b Exclude self-comments from queued comment UI
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:22 -05:00
dotta eda127a2b2 fix(ui): wrap workspace paths and always show copy icon in properties sidebar
Long branch/folder paths now wrap with break-all instead of truncating
and overflowing. Copy icon is always visible instead of hover-only,
since the sidebar is narrow and hover-reveal was hiding it behind overflow.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:22 -05:00
dotta 93e8e6447d fix(ui): improve diff modal layout and readability
- Make modal much wider (90vw) to show full document content
- Use monospace font in diff area for better readability
- Enable word-wrap with pre-wrap so long lines wrap cleanly
  without breaking line number gutters
- Move revision selectors into a single row with colored
  Old/New badges instead of stacked Left:/Right: labels

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:22 -05:00
dotta 13ada98e78 feat(ui): add document revision diff viewer
Add a "View diff" option to the document three-dot menu (visible when
revision > 1) that opens a modal showing side-by-side changes between
revisions using react-diff-viewer-continued. Defaults to comparing the
current revision with its predecessor, with dropdowns to select any two
revisions.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:17 -05:00
dotta 54ac2c6fe9 feat(ui): show workspace branch/folder in issue properties sidebar
Adds a new workspace section to the IssueProperties sidebar that
displays branch name and folder path (cwd) from the execution
workspace. Both values have copy-to-clipboard buttons and truncated
display with full path on hover.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:12 -05:00
dotta 962a882799 fix(ui): keep issue breadcrumb context out of the URL
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:12 -05:00
dotta 2ac1c62ab1 Fix mobile inbox layout: move search above tabs, hide column toggle
On mobile, the search input, tab selector, and "Show / hide columns" button
were all crammed into one row causing horizontal overflow. Now:
- Search appears as a full-width row above the tabs on mobile
- "Show / hide columns" button is hidden on mobile (columns are desktop-only)
- Desktop layout is unchanged

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:12 -05:00
dotta 2278d96d5a Fix execution workspace page overflow on mobile
- Add overflow-hidden to the outer container to prevent horizontal scroll
- Add min-w-0 to grid children so long monospace content in inputs
  respects container width instead of expanding it
- Truncate the workspace name heading for long names
- Add min-w-0 to the header name container

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:12 -05:00
dotta aff56c2297 Copy inherited config as default when unchecking inherit checkbox
When unchecking the "Inherit project workspace runtime config" checkbox,
if the runtime config field is empty, automatically populate it with the
inherited config value so the user has a starting point to edit from.
Existing values are preserved and never overwritten.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:12 -05:00
dotta 612bab1eb6 Make execution workspace detail page responsive for mobile
- Reduce card padding on small screens (p-4 → p-4 sm:p-5)
- Reduce spacing between sections on mobile (space-y-4 sm:space-y-6)
- Scale heading text (text-xl sm:text-2xl)
- Truncate long description on mobile, show full on sm+
- Reduce textarea min-heights on mobile (sm: prefix for larger sizes)
- Stack linked issue cards vertically on mobile, horizontal scroll on sm+
- Remove min-width constraint on linked issue cards on mobile

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:12 -05:00
dotta 68499eb2f4 Support dropping non-image files onto markdown editor as attachments
When dragging files like .zip onto the issue description editor, non-image
files are now uploaded as attachments instead of being silently ignored.
Images continue to be handled inline by MDXEditor's image plugin.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:12 -05:00
dotta e9c8bd4805 Allow arbitrary issue attachments
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:12 -05:00
dotta 517fe5093e Fix inbox archive flashing back after fade-out
The archive mutation was only using CSS opacity to hide items while the
network request was in flight. When the query refetch completed or the
archiving timer expired, the item could reappear. Now we optimistically
remove the item from React Query caches on mutate, snapshot previous
data for rollback on error, and sync with the server in onSettled.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:12 -05:00
dotta bdc8e27bf4 Fix mention popup placement and spaced queries
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:24:11 -05:00
dotta 1a3aee9ee1 docs: add smart model routing plan
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:23:33 -05:00
dotta 9a8a169e95 Guard dev health JSON parsing
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:23:33 -05:00
dotta bfa60338cc Cap dev-runner output buffering
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:23:33 -05:00
dotta 1e76bbe38c test(db): cover 0050 migration replay 2026-04-06 21:23:30 -05:00
dotta 42b326bcc6 fix(e2e): harden signoff policy tests for authenticated deployments
Address QA review feedback on the signoff e2e suite (86b24a5e):
- Use dedicated port 3199 with local_trusted mode to avoid reusing
  the dev server in authenticated mode (fixes 403 errors)
- Add proper agent authentication via API keys + heartbeat run IDs
- Fix non-participant test to actually verify access control rejection
- Add afterAll cleanup (dispose contexts, revoke keys, delete agents)
- Reviewers/approvers PATCH without checkout to preserve in_review state

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:23:30 -05:00
dotta 8f23270f35 Add project-level environment variables
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:23:30 -05:00
dotta 97d4ce41b3 test(e2e): add signoff execution policy end-to-end tests
Covers the full signoff lifecycle: executor → review → approval → done,
changes-requested bounce-back, comment-required validation, access control,
and review-only policy completion.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:23:30 -05:00
dotta 0a9a8b5a44 Limit isolated workspace memory spikes
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:23:21 -05:00
dotta 37d2d5ef02 Handle empty moved symlink lists in worktree provisioning
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-06 21:23:21 -05:00