Skip to content

Rebase onto upstream/master (2026-08-10): 191 commits (d5b9f6c8..6a4e2e1b) - #324

Draft
stubbi wants to merge 16 commits into
mainfrom
claude/brave-tesla-920do8
Draft

Rebase onto upstream/master (2026-08-10): 191 commits (d5b9f6c8..6a4e2e1b)#324
stubbi wants to merge 16 commits into
mainfrom
claude/brave-tesla-920do8

Conversation

@stubbi

@stubbi stubbi commented Aug 10, 2026

Copy link
Copy Markdown

Thinking Path

  • Paperclip is the open source app people use to manage AI agents for work
  • The paperclipinc/paperclip fork tracks upstream paperclipai/paperclip, cherry-picking upstream commits periodically so hosted users get upstream fixes, features and security patches
  • The last merged rebase was Rebase onto upstream/master (2026-08-05): 171 commits (2f42a496..d5b9f6c8), supersedes #312 #320 on 2026-08-09, landing upstream through d5b9f6c8; upstream has moved 191 commits since
  • This pull request brings in upstream d5b9f6c8..6a4e2e1b — 191 commits
  • The benefit is 191 upstream commits reach hosted users, and the fork stays current with upstream

Linked Issues or Issue Description

Supersedes #320 (same upstream base, extends the range).

Also related to prior rebase PRs: #312, #302, #300, #297.

What Changed

  • Brings in upstream d5b9f6c8..6a4e2e1b — 191 commits. Notable additions:
    • Decisions v1 schema, queues, triage, and resolver governance
    • Interaction addressee and review path recovery
    • Cloud upstream tables dropped (feature removed upstream)
    • Heartbeat context snapshot indexes and task key index
    • Import/Export replacing Cloud Sync
    • Onboarding flow UI (cloud + local variants)
    • Live run label, running row, and task detail improvements
    • Persistent Daytona session model with log streaming
    • App connections (Notion MCP OAuth, multiple providers)
    • Task chat composer draft persistence
    • Human-approved secret proposals
    • Review verdict policies and agent review confirmations
    • Simplified English Interactions experimental flag
    • CI shard splitting for general-server and serialized tests
    • Recovery notices structured and humanized
    • Performance: DB hot path cuts, context snapshot indexes
    • A11y: ARIA progressbar, scope=col table headers
    • Dependency bumps and lockfile refreshes
  • Migrations 01960211 (upstream) renumbered to 01990214 (offset +3 for fork-specific 0182_decision_training_retention_policy, 0183_instance_settings_visibility, 0184_heartbeat_run_events_run_cascade). Journal idx/tags updated. Snapshot files renumbered to match.
  • Fork cleanup: removed cloud upstream feature remnants (routes, UI components, API client, schema exports, tests, OpenAPI spec, nav items) to match upstream's 0196_drop_cloud_upstream_tables migration.
  • Activity page import updated: ActivityCompanyActivity (upstream renamed and moved to pages/audit/).
  • No pnpm-lock.yaml in the diff, per fork policy.

Verification

  • Three-way merge applied cleanly across all 957 changed upstream files with no textual conflicts (git read-tree -m -u with d5b9f6c as base).
  • Journal validated programmatically: 214 entries, no duplicate idx, no orphan tags, no orphan .sql files, sequence contiguous.
  • All cloud upstream references verified removed from non-deleted source files.
  • No broken imports to deleted modules.

Honest scope limit: tests were not run locally. The merge is too large to run the full suite in this environment. CI is the real gate here. Please do not merge on the strength of local checks alone; wait for all CI gates.

Risks

Moderate, inherent to a 191-commit rebase.

  • Migration renumbering is the usual fork hazard. 01990214 must not collide with anything landing between now and merge; if another migration PR merges first this needs renumbering again.
  • Cloud upstream removal is behavioural. The upstream explicitly dropped this feature (migration + code removal). The fork's cloud upstream UI, API, and schema exports have been removed to match. Any fork-specific workflows that depended on cloud upstream sync will no longer function.
  • The three-way merge resolved all files cleanly (no conflict markers), but silent auto-merge in large files can occasionally produce incorrect results. Reviewer attention on files where both fork and upstream made significant changes (especially server/src/services/heartbeat.ts, packages/adapter-utils/src/execution-target.ts, server/src/middleware/auth.ts) is recommended.

Model Used

  • Claude Opus 4.6 (1M context), via the Claude Code CLI harness with tool use (shell, file edits). Change authored agent-assisted.

Checklist

  • I have included a thinking path that traces from project context to this change
  • I have specified the model used (with version and capability details)
  • I have checked ROADMAP.md and confirmed this PR does not duplicate planned core work
  • I have searched GitHub for duplicate or related PRs and linked them above
  • I have either (a) linked existing issues with Fixes: # / Closes # / Refs # OR (b) described the issue in-PR following the relevant issue template
  • I have not referenced internal/instance-local Paperclip issues or links (only public GitHub #NNN / github.com/paperclipai/paperclip URLs)
  • My branch name describes the change (e.g. docs/..., fix/...) and contains no internal Paperclip ticket id or instance-derived details
  • I have run tests locally and they pass — not done, see Verification
  • I have added or updated tests where applicable (rebase carries upstream's own tests)
  • I have updated relevant documentation to reflect my changes
  • I have considered and documented any risks above
  • All Paperclip CI gates are green
  • Greptile is 5/5 with no open P2s, recommendations, or follow-ups
  • I will address all Greptile and reviewer comments before requesting merge

Generated by Claude Code

claude added 16 commits August 10, 2026 07:26
Cherry-picked 191 upstream commits from paperclipai/paperclip master.
Migration rename: upstream 0196–0211 renumbered to 0199–0214 (offset +3
for fork-specific 0182_decision_training_retention_policy,
0183_instance_settings_visibility, 0184_heartbeat_run_events_run_cascade).
Journal idx/tags updated. Snapshot files renumbered to match.

Notable upstream additions:
- Decisions v1 schema, queues, triage, and resolver governance
- Interaction addressee and review path recovery
- Cloud upstream tables dropped (feature removed upstream)
- Heartbeat context snapshot indexes and task key index
- Import/Export replacing Cloud Sync
- Onboarding flow UI (cloud + local variants)
- Live run label, running row, and task detail improvements
- Persistent Daytona session model with log streaming
- App connections (Notion MCP OAuth, multiple providers)
- Task chat composer draft persistence
- Human-approved secret proposals
- Review verdict policies and agent review confirmations
- Simplified English Interactions experimental flag
- Experimental cards alphabetization
- CI shard splitting for general-server and serialized tests
- Recovery notices structured and humanized
- Performance: DB hot path cuts, context snapshot indexes
- A11y: ARIA progressbar, scope=col table headers
- Dependency bumps and lockfile refreshes

Fork cleanup: removed cloud upstream feature remnants (routes, UI
components, API client, schema exports, tests, OpenAPI spec, nav items)
to match upstream's 0196_drop_cloud_upstream_tables migration.

No pnpm-lock.yaml in the diff, per fork policy.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
The upstream changed e2e shards from 2 to 3 and general-server shards
from 3 to 5, and serialized shards from 4 to 5. The three-way merge
kept the fork's lower counts because both sides had modified the
matrix section. Update to match upstream and the shard partition test
expectations (SHARD_COUNT=3 for e2e, SHARD_COUNT=5 for server).

Also remove the literal `--` from the e2e pnpm invocation to match the
upstream's `pnpm run test:e2e $specs` pattern — the separator causes
Playwright to ignore the spec filter.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
…ractions

The three-way merge did not bring in six new upstream constants that
types/issue.ts, validators/issue.ts, and validators/company.ts import:
IssueReviewPolicy, IssueCommentPresentationDensity,
IssueThreadInteractionResolverPolicy, and their array counterparts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
…Options

The three-way merge kept the fork's old buildStartupStepMetrics function
and extra property usage while getting the upstream's rewritten
StartupStepMeasureOptions interface. Remove the old function, add the
spanParent parameter to buildRuntime, replace extra with spanWallTimes,
and add the STARTUP_BRIDGE_BATCH constant to match upstream.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
…definitions

Comprehensive sweep of type definition gaps left by the three-way merge.
The merge auto-resolved without conflict markers but produced
type-inconsistent results where both sides modified the same files.

- protocol.ts: add span.record, execute.log, traceparent, bypassSession,
  access/writablePath on sync mappings
- types.ts: add permissions, cacheAdjustedCostUsd, staging failures,
  startupTraceContext to adapter types
- index.ts (adapter-utils): re-export env-bindings utilities
- company.ts: add InteractionResolverGovernance types
- instance.ts: add enableTaskChatRedesign flag
- constants.ts: add audit:view_agent_actions permission
- shared/index.ts: restore ~145 lines of missing barrel re-exports
  (decisions, attention, trust-policy, portability, secret proposals,
  issue-write-denial, skill rename, stalled review, etc.)
- types/index.ts: mirror barrel re-exports for types
- validators/index.ts: mirror barrel re-exports for validators

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
Add enableTaskChatRedesign and enableSimplifiedEnglishInteractions to
the feature catalog. Add enableSimplifiedEnglishInteractions to the
InstanceExperimentalSettings type and validator (enableTaskChatRedesign
was already added in the prior sweep).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
The cloud.ts command file was deleted as part of the cloud upstream
removal, but cli/src/index.ts still imported and registered it.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
…port

The three-way merge dropped this exported function which the upstream
added for credential pre-flight validation. The test file
execute.auth.test.ts imports it.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
…osals

The three-way merge dropped the decisions, decision_queues, and
companySecretProposals re-exports from the DB schema barrel file.
Server startup fails without these at runtime.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
The three-way merge dropped the export keyword from normalizeSecretKey.
The upstream exports it for use by the run-secret-redaction service.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
…run-log-store

The three-way merge dropped export keywords and entire function/type
definitions from these server services. Restores ~20 missing exports
in heartbeat.ts (workspace busy logic, multi-project sync, cache cost,
ready comments), 2 in environments.ts (managed sandbox reconcile types),
and 1 in run-log-store.ts (flush mirrors function).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
…ldAnchorFallbackWorkspaceNotes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
…exports

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SFDZuz6twefDrycQivqYis
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.

2 participants