Files
paperclip/report/2026-03-13-08-46-token-optimization-implementation.md
2026-03-13 09:40:43 -05:00

2.4 KiB

Token Optimization Implementation Report

Implemented the token-optimization plan across heartbeat orchestration, issue context APIs, adapter prompt construction, skill exposure, and agent configuration UX.

The main behavior changes are:

  • Heartbeat telemetry now normalizes sessioned local adapter usage as per-run deltas instead of blindly trusting cumulative session totals.
  • Timer and manual wakes now preserve task sessions by default; fresh sessions are forced only for explicit forceFreshSession wakes or new issue assignment wakes.
  • Heartbeat session rotation is now policy-driven in the control plane, with a handoff note injected when a session is compacted and restarted.
  • Paperclip issue context now has incremental APIs: GET /api/agents/me/inbox-lite, GET /api/issues/:id/heartbeat-context, and comment delta queries via GET /api/issues/:id/comments?after=...&order=asc.
  • The paperclip skill now teaches agents to use those compact/incremental APIs first, while keeping full-thread fetches as a cold-start fallback.
  • All local adapters now separate first-session bootstrap prompts from per-heartbeat prompt templates, and emit prompt size metrics in invocation metadata.
  • Adapter create flows now persist bootstrapPromptTemplate correctly.
  • The agent config UI now explains the difference between bootstrap prompts and heartbeat prompts and warns about prompt churn.
  • Runtime skill defaults now include paperclip, para-memory-files, and paperclip-create-agent. create-agent-adapter was moved to .agents/skills/create-agent-adapter.

Files with the most important implementation work:

  • server/src/services/heartbeat.ts
  • server/src/services/issues.ts
  • server/src/routes/issues.ts
  • server/src/routes/agents.ts
  • server/src/routes/access.ts
  • skills/paperclip/SKILL.md
  • packages/adapters/*/src/server/execute.ts
  • packages/adapters/*/src/ui/build-config.ts
  • ui/src/components/AgentConfigForm.tsx

Verification completed successfully:

  • pnpm -r typecheck
  • pnpm test:run
  • pnpm build

While verifying, I also fixed two existing embedded-postgres typing mismatches so repo-wide typecheck and build pass again:

  • packages/db/src/migration-runtime.ts
  • cli/src/commands/worktree.ts

Next useful follow-up is measuring the before/after effect in real runs now that telemetry is less misleading and prompt/session reuse behavior is consistent across adapters.