Commit Graph
2330 Commits
Author SHA1 Message Date
Dotta ea97334ec7 fix: isolate paginated invite history cache 2026-04-13 08:26:01 -05:00
Dotta 06a05ccee5 Update invite approval request copy 2026-04-13 08:24:55 -05:00
Dotta c981115f22 fix(ui): show requester identity in join approvals 2026-04-13 08:21:05 -05:00
DottaandPaperclip 54b1667c3d Auto-accept invite after inline auth
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-13 07:57:04 -05:00
DottaandPaperclip 089d73e2f4 Improve invite auth clarity
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-13 07:49:47 -05:00
Dotta 2a3910190f feat: paginate company invite history 2026-04-13 07:49:21 -05:00
Dotta 9604dc447e Prevent members from consuming invite links 2026-04-13 07:47:32 -05:00
Dotta 50c20eebb0 Deduplicate human join requests by requester 2026-04-11 21:19:53 -05:00
Dotta 683896abce Fix inbox approvals for new users 2026-04-11 11:34:59 -05:00
Dotta 0676224bea Tighten outsider access to board surfaces 2026-04-11 11:27:53 -05:00
Dotta 0fe666b72e Add join request badge to access sidebar 2026-04-11 11:17:07 -05:00
DottaandPaperclip b42796490b Improve invite post-join UX: show inviter name, approval URL, and auto-redirect
- Add invitedByUserName to invite summary API response
- Post-join pending state now shows who must approve and the approval page URL
- On page refresh, if user is already a company member, redirect to home

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-11 11:11:02 -05:00
Dotta 38a2c91483 Fix invite logo fallback and storage checks 2026-04-11 10:44:15 -05:00
Dotta e6fd9d29db Merge remote-tracking branch 'public-gh/master' into PAP-989-multi-user-implementation-using-plan-from-pap-958
* public-gh/master: (32 commits)
  fix(dev-runner): tighten worktree env bootstrap
  fix(inbox): avoid refetching on filter-only changes
  fix(codex-local): avoid fast mode in env probe
  fix: isolate dev runner worktree env
  Broaden comment matches in issue search
  Add inbox issue search fallback
  feat(codex-local): add fast mode support
  Harden tailnet bind setup
  Fix dev runner workspace import regression
  Introduce bind presets for deployment setup
  fix: address PR 3355 review regressions
  test(ui): fix heartbeat run fixture drift
  fix: restore inbox optimistic run fixture
  fix: keep thread polish independent of quicklook routing
  fix: keep runtime UI changes self-contained
  fix: keep inbox quicklook and tests standalone
  fix: use CLI tsx entrypoint for workspace preflight
  chore: improve worktree tooling and security docs
  feat: polish issue thread markdown and references
  fix: harden heartbeat and adapter runtime workflows
  ...

# Conflicts:
#	cli/src/__tests__/worktree.test.ts
#	scripts/ensure-workspace-package-links.ts
#	server/src/__tests__/claude-local-execute.test.ts
#	server/src/__tests__/issues-service.test.ts
#	ui/src/components/Layout.tsx
2026-04-11 09:12:41 -05:00
Dotta b649bd454f Merge pull request #3383 from paperclipai/pap-1347-codex-fast-mode
feat(codex-local): add fast mode support
canary/v2026.411.0-canary.8
2026-04-11 08:45:50 -05:00
Dotta a692e37f3e Merge pull request #3386 from paperclipai/pap-1347-dev-runner-worktree-env
fix: isolate dev runner worktree env
2026-04-11 08:45:16 -05:00
Dotta 96637a1e09 Merge pull request #3385 from paperclipai/pap-1347-inbox-issue-search
feat(inbox): improve issue search matches
canary/v2026.411.0-canary.7
2026-04-11 08:44:59 -05:00
Dotta a5aed931ab fix(dev-runner): tighten worktree env bootstrap 2026-04-11 08:35:53 -05:00
Dotta a63e847525 fix(inbox): avoid refetching on filter-only changes 2026-04-11 08:34:17 -05:00
Dotta a7dc88941b fix(codex-local): avoid fast mode in env probe 2026-04-11 08:33:18 -05:00
Dotta b6115424b1 fix: isolate dev runner worktree env 2026-04-11 08:27:25 -05:00
Dotta 1f78e55072 Broaden comment matches in issue search 2026-04-11 08:26:09 -05:00
Dotta fcab770518 Add inbox issue search fallback 2026-04-11 08:26:09 -05:00
Dotta 2d8f97feb0 feat(codex-local): add fast mode support 2026-04-11 08:21:55 -05:00
Dotta 999c5bc8cb test(access): align invite-create stub with branding query 2026-04-11 08:14:23 -05:00
Dotta 38d2bf6326 feat(ui): add profile, access, and invite management flows 2026-04-11 08:13:10 -05:00
Dotta 0c07a8235f feat(access): add multi-user auth and access APIs 2026-04-11 08:12:54 -05:00
Dotta 03a2cf5c8a Merge pull request #3303 from cryppadotta/PAP-438-review-openclaw-s-docs-on-networking-discovery-and-binding-what-could-we-learn-from-this
Introduce bind presets for deployment setup
canary/v2026.411.0-canary.6
2026-04-11 07:24:57 -05:00
Dotta a77206812e Harden tailnet bind setup 2026-04-11 07:13:41 -05:00
dotta 6208899d0a Fix dev runner workspace import regression 2026-04-11 07:09:07 -05:00
dottaandPaperclip 2a84e53c1b Introduce bind presets for deployment setup
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-11 07:09:07 -05:00
Dotta e1bf9d66a7 Merge pull request #3355 from cryppadotta/pap-1331-issue-thread-ux
feat: polish issue thread markdown and references
canary/v2026.411.0-canary.5
2026-04-11 06:55:26 -05:00
Dotta b48be80d5d fix: address PR 3355 review regressions 2026-04-11 06:40:37 -05:00
Dotta 45ebecab5a Merge pull request #3356 from cryppadotta/pap-1331-inbox-ux
feat: polish inbox and issue list workflows
canary/v2026.411.0-canary.4
2026-04-11 06:35:59 -05:00
Dotta dae888cc5d Merge pull request #3354 from cryppadotta/pap-1331-runtime-workflows
fix: harden heartbeat and adapter runtime workflows
canary/v2026.411.0-canary.3
2026-04-11 06:31:28 -05:00
Dotta aaf42f3a7e Merge pull request #3353 from cryppadotta/pap-1331-dev-tools-docs
chore: improve worktree tooling and security docs
2026-04-11 06:28:49 -05:00
Dotta 62d05a7ae2 Merge pull request #3232 from officialasishkumar/fix/clear-empty-agent-env-bindings
fix(ui): persist cleared agent env bindings on save
canary/v2026.411.0-canary.2
2026-04-11 06:23:14 -05:00
Dotta 1cd0281b4d test(ui): fix heartbeat run fixture drift 2026-04-10 22:42:52 -05:00
Dotta 65480ffab1 fix: restore inbox optimistic run fixture 2026-04-10 22:40:49 -05:00
Dotta dc94e3d1df fix: keep thread polish independent of quicklook routing 2026-04-10 22:36:45 -05:00
Dotta 0162bb332c fix: keep runtime UI changes self-contained 2026-04-10 22:36:45 -05:00
Dotta 7ec8716159 fix: keep inbox quicklook and tests standalone 2026-04-10 22:36:45 -05:00
Dotta 8cb70d897d fix: use CLI tsx entrypoint for workspace preflight 2026-04-10 22:32:55 -05:00
Dotta 8bdf4081ee chore: improve worktree tooling and security docs 2026-04-10 22:26:30 -05:00
Dotta 958c11699e feat: polish issue thread markdown and references 2026-04-10 22:26:21 -05:00
Dotta c566a9236c fix: harden heartbeat and adapter runtime workflows 2026-04-10 22:26:21 -05:00
Dotta dab95740be feat: polish inbox and issue list workflows 2026-04-10 22:26:21 -05:00
Devin Foley 548721248e fix(ui): keep latest issue document revision current (#3342)
## Thinking Path

> - Paperclip orchestrates AI agents for zero-human companies.
> - Board users and agents collaborate on issue-scoped documents such as
plans and revisions need to be trustworthy because they are the audit
trail for those artifacts.
> - The issue document UI now supports revision history and restore, so
the UI has to distinguish the current revision from historical revisions
correctly even while multiple queries are refreshing.
> - In `PAPA-72`, the newest content could appear under an older
revision label because the current document snapshot and the
revision-history query could temporarily disagree after an edit.
> - That made the UI treat the newest revision like a historical restore
target, which is the opposite of the intended behavior.
> - This pull request derives one authoritative revision view from both
sources, sorts revisions newest-first, and keeps the freshest revision
marked current.
> - The benefit is that revision history stays stable and trustworthy
immediately after edits instead of briefly presenting the newest content
as an older revision.

## What Changed

- Added a `document-revisions` helper that merges the current document
snapshot with fetched revision history into one normalized revision
state.
- Updated `IssueDocumentsSection` to render from that normalized state
instead of trusting either query in isolation.
- Added focused tests covering the current-revision selection and
ordering behavior.

## Verification

- `pnpm -r typecheck`
- `pnpm build`
- Targeted revision tests passed locally.
- Manual reviewer check:
  - Open an issue document with revision history.
  - Edit and save the document.
  - Immediately open the revision selector.
- Confirm the newest revision remains marked current and older revisions
remain the restore targets.

## Risks

- Low risk. The change is isolated to issue document revision
presentation in the UI.
- Main risk is merging the current snapshot with fetched history
incorrectly for edge cases, which is why the helper has focused unit
coverage.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [ ] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [ ] If this change affects the UI, I have included before/after
screenshots
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] I will address all Greptile and reviewer comments before
requesting merge
canary/v2026.411.0-canary.1
2026-04-10 17:14:06 -07:00
Devin Foley f4a05dc35c fix(cli): prepare plugin sdk before cli dev boot (#3343)
## Thinking Path

> - Paperclip orchestrates AI agents for zero-human companies
> - The company import/export e2e exercises the local CLI startup path
that boots the dev server inside a workspace
> - That startup path loads server and plugin code which depends on
built workspace package artifacts such as `@paperclipai/shared` and
`@paperclipai/plugin-sdk`
> - In a clean worktree those `dist/*` artifacts may not exist yet even
though `paperclipai run` can still attempt to import the local server
entry
> - That mismatch caused the import/export e2e to fail before the actual
company package flow ran
> - This pull request adds a CLI preflight step that prepares the needed
workspace build dependencies before the local server import and fails
closed if that preflight is interrupted or stalls
> - The benefit is that clean worktrees can boot `paperclipai run`
reliably without silently continuing after incomplete dependency
preparation

## What Changed

- Updated `cli/src/commands/run.ts` to execute
`scripts/ensure-plugin-build-deps.mjs` before importing
`server/src/index.ts` for local dev startup.
- Ensured `paperclipai run` can materialize missing workspace artifacts
such as `packages/shared/dist` and `packages/plugins/sdk/dist`
automatically in clean worktrees.
- Made the preflight fail closed when the child process exits via signal
and bounded it with a 120-second timeout so the CLI does not hang
indefinitely.
- Kept the fix isolated to the CLI startup path; no API contract,
schema, or UI behavior changed.
- Reused the existing
`cli/src/__tests__/company-import-export-e2e.test.ts` coverage that
already exercises the failing boot path, so no additional test file was
needed.

## Verification

- `pnpm test:run cli/src/__tests__/company-import-export-e2e.test.ts`
- `pnpm --filter paperclipai typecheck`
- On the isolated branch, confirmed `packages/shared/dist/index.js` and
`packages/plugins/sdk/dist/index.js` were absent before the run, then
reran the targeted e2e and observed a passing result.

## Risks

- Low risk: the change only affects the local CLI dev startup path
before the server import.
- Residual risk: other entrypoints still rely on their own
preflight/build behavior, so this does not normalize every workspace
startup path.
- The 120-second timeout is intentionally generous, but unusually slow
machines could still hit it and surface a startup error instead of
waiting forever.

## Model Used

- OpenAI Codex, GPT-5-based coding agent in the Codex CLI environment,
with shell/tool execution enabled. The exact runtime revision and
context window are not exposed by this environment.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] If this change affects the UI, I have included before/after
screenshots
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] I will address all Greptile and reviewer comments before
requesting merge
canary/v2026.411.0-canary.0
2026-04-10 17:01:06 -07:00
Dotta 682ffe6795 Expose created invite links 2026-04-10 16:58:41 -05:00