Skip to content

Instantly share code, notes, and snippets.

@bdougie
Created March 1, 2026 14:52
Show Gist options
  • Select an option

  • Save bdougie/1e087a3d6e8586549ee22e27ebcf8fb1 to your computer and use it in GitHub Desktop.

Select an option

Save bdougie/1e087a3d6e8586549ee22e27ebcf8fb1 to your computer and use it in GitHub Desktop.
Unblocking draft PRs in papercomputeco/tapes

Unblocking Draft PRs in papercomputeco/tapes

A walkthrough of every open draft PR, what's blocking it, and the steps to get each one merged.


PR #86 — feat: memory Driver interface and "local" implementor

Branch: memory | Author: @jpmcb | Merge state: CONFLICTING

What's blocking it

  1. Merge conflicts with main — the branch has diverged and needs a rebase.
  2. Review feedback from @vkovac2 — two inline comments raising the same core concern:
    • pkg/memory/driver.go:41Recall(ctx, hash) only accepts a hash, but query-based backends like Cognee expect a natural language query string. The reviewer suggests adding a context/query string parameter.
    • api/mcp/memory.go:39 — For query-based backends, the hash needs to be resolved to a query via DagLoader before passing to the driver.
  3. Design question — Should there be one dataset per session/conversation, or a single shared dataset for Store? This maps to the short-term vs long-term memory split described in the RFC (issue #81).

How to unblock

  1. Change Recall to accept a RecallQuery struct with both Hash (for DAG position) and Query (natural language string for query-based backends). This keeps it extensible and satisfies both hash-based (local) and query-based (Cognee) drivers.
  2. Update the MCP handler (api/mcp/memory.go) to accept an optional query field in the tool input and pass it through. When only a hash is provided, resolve it to text via DagLoader before calling Recall.
  3. Update the local driver, mock driver, and tests to match the new signature.
  4. Respond to the dataset scoping question — recommend documenting that scoping is a driver-level concern (local uses hash-keyed maps, Cognee can use datasets per session).
  5. Rebase onto main and resolve conflicts.

PR #131 — [WIP] feat: stream events to kafka

Branch: glenn/pcc-106-kafka | Author: @oppegard | Merge state: CLEAN

What's blocking it

  1. Still marked WIP/Draft — no description, no reviews requested.
  2. No review feedback yet — the PR adds segmentio/kafka-go as a dependency and presumably introduces a Kafka event streaming integration, but without a description or linked issue it's unclear what the scope and acceptance criteria are.

How to unblock

  1. Add a PR description explaining the design: what events are streamed, the Kafka topic structure, configuration options, and how it integrates with the proxy worker pool.
  2. Link to the tracking issue (PCC-106).
  3. Request review once the description is added — CI is already green.
  4. Mark as ready for review.

PR #119 — WIP: Adds a postgres pkg/storage/ Driver implementation

Branch: john/pcc-139 | Author: @jpmcb | Merge state: CLEAN

What's blocking it

  1. Still marked WIP/Draft — CI is fully green, implementation looks complete (new pkg/storage/postgres/ package using pgx/v5 and the existing ent ORM driver).
  2. No reviews requested — needs someone to review the postgres driver implementation.

How to unblock

  1. Verify the postgres driver works end-to-end with an actual Postgres instance (integration test or manual smoke test).
  2. Consider adding a CI integration test with a Postgres service container, or document that it's tested manually.
  3. Add connection string configuration to the CLI commands (--postgres flag or config file option) if not already done.
  4. Request review and mark as ready.

PR #118 — WIP: implements pkg/logger

Branch: john/pcc-35 | Author: @jpmcb | Merge state: CONFLICTING

What's blocking it

  1. Merge conflicts with main — needs a rebase.
  2. Still marked WIP/Draft — the PR migrates the codebase from go.uber.org/zap to log/slog with a custom pkg/logger package. This is a wide-reaching change touching api/, proxy/, MCP server, and all command files.
  3. No reviews requested.

How to unblock

  1. Rebase onto main and resolve conflicts.
  2. Ensure all existing usages of zap.Logger are migrated — grep for any remaining zap references.
  3. Verify that the tapeslogger.Nop() helper works correctly in tests.
  4. Document the logger package's public API and configuration options.
  5. Request review — this is a foundational change that other PRs may depend on, so prioritize it.

PR #85 — feat: Utilize spf13/viper for configs

Branch: viper | Author: @jpmcb | Merge state: CLEAN

What's blocking it

  1. Still marked WIP/Draft — CI is green, implementation introduces Viper for config management across all CLI commands (chat, checkout, search, serve, proxy, start, deck).
  2. No reviews requested.
  3. Large scope — the PR adds a config.FlagSet pattern, config.InitViper(), and config.BindRegisteredFlags() helpers, then migrates every command's PreRunE to use Viper instead of the old Configer pattern.

How to unblock

  1. Add a PR description explaining the config architecture: how Viper loads config files, how flags are bound, and the precedence order (flags > env > config file > defaults).
  2. Verify backward compatibility — existing config files should still work.
  3. Consider whether this should land before or after PR #118 (logger), since both touch command initialization code. Landing viper first would reduce conflicts for the logger PR and vice versa. Coordinate the merge order.
  4. Request review and mark as ready.

PR #72 — feat: Implements agent-trace.dev

Branch: agent-trace | Author: @jpmcb | Merge state: CONFLICTING

What's blocking it

  1. Merge conflicts with main — needs a rebase.
  2. Still marked WIP/Draft — the PR adds a full agent-trace API implementation including a new pkg/agenttrace package, handlers, in-memory store, and extensive tests.
  3. Signature changeNewServer in api/api.go gains a new agentTraceStore parameter, which is a breaking change to the API server constructor.

How to unblock

  1. Rebase onto main and resolve conflicts.
  2. Decide on the agentTraceStore injection pattern — currently it adds a positional parameter to NewServer. Consider putting it in the Config struct instead, consistent with how MemoryDriver, VectorDriver, and Embedder are injected.
  3. Ensure the storage.AgentTraceQuery type and store interface are well-documented.
  4. Request review and mark as ready.

PR #69 — feat: Google Vertex support

Branch: google-vertex | Author: @jpmcb | Merge state: UNSTABLE

What's blocking it

  1. Failing CIGolangCI Lint Check fails with a gci (import ordering) error in pkg/llm/provider/vertex/types.go:8:1.
  2. Still marked WIP/Draft.

How to unblock

  1. Run make format to fix the import ordering in vertex/types.go — this is a one-line fix (gci wants a blank line between stdlib and third-party imports).
  2. Push the fix and verify CI goes green.
  3. Request review and mark as ready.

PR #68 — feat: AWS Bedrock support

Branch: aws-bedrock | Author: @jpmcb | Merge state: CLEAN

What's blocking it

  1. Still marked WIP/Draft — CI is fully green.
  2. No reviews requested.

How to unblock

  1. Add a PR description with configuration examples (how to set up Bedrock provider, required AWS credentials/config).
  2. Verify the provider handles all edge cases (tool use, streaming via InvokeModelWithResponseStream, system prompts).
  3. Request review and mark as ready.

PR #135 — feat: add flag passthrough for agent harnesses (NOT a draft)

Branch: feat/agent-flag-passthrough | Author: @bdougie | Merge state: CLEAN

Status

This is the only non-draft PR. CI is fully green. No reviews or review requests yet.

How to unblock

  1. The PR description notes it needs documentation for the -- passthrough convention.
  2. The manual smoke test is unchecked — complete it: tapes start claude -- --dangerously-skip-permissions.
  3. Request review and merge.

Recommended merge order

To minimize rebase pain and dependency conflicts:

  1. PR #135 (flag passthrough) — ready now, no conflicts, independent
  2. PR #68 (Bedrock) — green CI, independent provider, just needs review
  3. PR #69 (Vertex) — one lint fix, then ready, independent provider
  4. PR #85 (Viper config) — foundational change, land early to reduce conflicts
  5. PR #118 (logger) — rebase after viper lands, foundational change
  6. PR #119 (Postgres driver) — independent of above, can go anytime after viper
  7. PR #86 (memory) — needs interface redesign per review feedback
  8. PR #72 (agent-trace) — needs rebase + constructor pattern decision
  9. PR #131 (Kafka) — needs description and scope clarity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment