Paperclip Weekly: Work Timeline, Starred Resources, Migration Fixes & More (Jul 6–12)
- Commits summarized
- 127
- Period
- Jul 06 - Jul 12, 2026
- Published
- Jul 13, 2026
Paperclip Weekly: Work Timeline, Starred Resources, Migration Fixes & More
July 6–12, 2026 · paperclipai/paperclip
Who should read this: Operators, self-hosters, and anyone building on or deploying Paperclip. This edition covers a new Work Timeline page, starred sidebar navigation, critical database migration performance fixes, version reporting improvements, adapter output cleanup, and shared-config deduplication.
127 commits landed this week. These are highlights from the available commit summaries — not exhaustive coverage.
🚀 New Features
Work Timeline page (#8938)
Adds a company-scoped Work Timeline page to the board UI, rendered as a custom SVG Gantt-style chart. Operators can now scan agent activity, handoffs, retries, and overlapping work windows without opening individual issue threads.
- Packed overlap lanes with issue color identity and kickoff attribution
- Hover-revealed delegation connectors and retry styling
- Zoom controls, sticky actor gutter, minimap brush
- Human kickoff chips shown without standalone event rows
- Storybook stories included for hour/day zoom and human-activity samples
Starred resource sidebar controls (#9085)
Users can now star frequently used agents and projects — starred state is stored as a per-user starred_at timestamp on existing resource memberships (no new tables).
- Star toggle controls on list and detail pages
- Compact starred shortcuts in the sidebar
- Migration
0133_resource_membership_starswith idempotentIF NOT EXISTSguards - Full coverage across shared types, server routes, and UI components (143 tests)
🐛 Bug Fixes & Reliability
Deduplicate adapter-agnostic config keys (#9058)
The ADAPTER_AGNOSTIC_KEYS constant was duplicated across server and UI — meaning a key added on one side could silently drift. Hoisted into packages/shared so both consumers import the same source of truth. Includes a drift guard test to catch re-duplication.
Report source-install version from git metadata (#9103)
When running from a cloned source tree, the server previously reported the frozen package.json version (e.g. 0.3.1) regardless of local commits. Now uses git describe at startup to produce YYYY.MDD.P+N.git.<sha> (drift) or appends .dirty for modified trees. Falls back to package.json silently when git is unavailable.
Relocate slow O(n²) issue-comment attribution migration (#9108)
Migration 0126 backfilled derived attribution on issue_comments using a LIMIT-5000 loop that re-scanned from row 1 each batch — O(n²) complexity that blocked server.listen for minutes on large instances. Deleted and replaced with fast keyset-paginated 0132 (O(n), temporary partial index, idempotent). Includes embedded Postgres tests for fresh, already-migrated, and partially-migrated databases.
Fix heartbeat run responsible-user migration for identifier refs (#9107)
The heartbeat run backfill migration could fail when context snapshots stored issue identifiers like PAP-123 instead of UUIDs. Tightened UUID matching with a shape regex check, kept identifier fallback, and added companion repair migration 0131 for already-migrated installations.
Deduplicate pipeline automation health warnings (#9090)
Repeated failed automation rows for the same item/stage pair no longer produce duplicate automation_failed health warnings. One actionable warning per stageId:caseId pair.
Strip ANSI escape codes from Hermes terminal output (#8731)
Hermes adapter ANSI color codes were rendering as raw garbage text in the UI. Added stripAnsi() at all four Hermes stdout parse entry points (same regex already proven in claude-local adapter). 9 tests passing.
🎨 Polish & DX
Bundle UI webfonts with the app (#9020)
The Inter variable font family is now bundled as WOFF2 assets under ui/public/fonts/ and served locally via @font-face declarations. Self-hosted, offline, or privacy-sensitive deployments no longer depend on remote Google Fonts at runtime.
📋 Quick Stats
| Metric | Value |
|---|---|
| Total commits | 127 |
| Files changed (highlighted PRs) | ~68 files (+7,355 / -528) |
| New migrations | 0131, 0132, 0133 |
| Tests added | ~15+ new test files |
Next issue: July 19. Have something to share? Open a PR or tag us in #dev.