Question: What database does staging use?

The staging environment uses db-staging.internal for its database.

The production environment uses db-prod.internal for its database.

The development environment uses db-dev.internal for its database.

The staging environment rotates credentials weekly for the database.

The staging email sender is ses-staging for notification traffic.

Environment swap distractors with same service family.


Question: What database does production use?

The production environment rotates credentials weekly for the database.

The production email sender is ses-production for notification traffic.

Environment swap distractors with same service family.


Question: What database does development use?

The production environment uses db-staging.internal for its database.

The staging environment uses db-prod.internal for its database.

The development environment rotates credentials weekly for the database.

The development email sender is ses-development for notification traffic.

Environment swap distractors with same service family.


Question: What redis cache does staging use?

The staging environment uses redis-staging.internal for its redis cache.

The production environment uses redis-prod.internal for its redis cache.

The development environment uses redis-dev.internal for its redis cache.

The staging environment rotates credentials weekly for the redis cache.

Environment swap distractors with same service family.


Question: What redis cache does production use?

The production environment rotates credentials weekly for the redis cache.

Environment swap distractors with same service family.


Question: What redis cache does development use?

The production environment uses redis-staging.internal for its redis cache.

The staging environment uses redis-prod.internal for its redis cache.

The development environment rotates credentials weekly for the redis cache.

Environment swap distractors with same service family.


Question: What object storage bucket does staging use?

The staging environment uses assets-staging for its object storage bucket.

The production environment uses assets-prod for its object storage bucket.

The development environment uses assets-dev for its object storage bucket.

The staging environment rotates credentials weekly for the object storage bucket.

The staging email sender is ses-staging for notification traffic.

Environment swap distractors with same service family.


Question: What object storage bucket does production use?

The production environment rotates credentials weekly for the object storage bucket.

The production email sender is ses-production for notification traffic.

Environment swap distractors with same service family.


Question: What object storage bucket does development use?

The production environment uses assets-staging for its object storage bucket.

The staging environment uses assets-prod for its object storage bucket.

The development environment rotates credentials weekly for the object storage bucket.

The development email sender is ses-development for notification traffic.

Environment swap distractors with same service family.


Question: What email sender does staging use?

The staging environment uses ses-staging for its email sender.

The production environment uses ses-prod for its email sender.

The development environment uses ses-dev for its email sender.

The staging environment rotates credentials weekly for the email sender.

Environment swap distractors with same service family.


Question: What email sender does production use?

The production environment rotates credentials weekly for the email sender.

Environment swap distractors with same service family.


Question: What email sender does development use?

The production environment uses ses-staging for its email sender.

The staging environment uses ses-prod for its email sender.

The development environment rotates credentials weekly for the email sender.

Environment swap distractors with same service family.


Question: What nats cluster does staging use?

The staging environment uses nats-staging.internal for its nats cluster.

The production environment uses nats-prod.internal for its nats cluster.

The development environment uses nats-dev.internal for its nats cluster.

The staging environment rotates credentials weekly for the nats cluster.

The staging email sender is ses-staging for notification traffic.

Environment swap distractors with same service family.


Question: What nats cluster does production use?

The production environment rotates credentials weekly for the nats cluster.

The production email sender is ses-production for notification traffic.

Environment swap distractors with same service family.


Question: What nats cluster does development use?

The production environment uses nats-staging.internal for its nats cluster.

The staging environment uses nats-prod.internal for its nats cluster.

The development environment rotates credentials weekly for the nats cluster.

The development email sender is ses-development for notification traffic.

Environment swap distractors with same service family.


Question: What API base URL does staging use?

The staging environment uses https://api-staging.ecue.ai for its API base URL.

The production environment uses https://api.ecue.ai for its API base URL.

The development environment uses https://api-dev.ecue.ai for its API base URL.

The staging environment rotates credentials weekly for the API base URL.

Environment swap distractors with same service family.


Question: What API base URL does production use?

The production environment rotates credentials weekly for the API base URL.

Environment swap distractors with same service family.


Question: What API base URL does development use?

The production environment uses https://api-staging.ecue.ai for its API base URL.

The staging environment uses https://api.ecue.ai for its API base URL.

The development environment rotates credentials weekly for the API base URL.

Environment swap distractors with same service family.


Question: What metrics backend does staging use?

The staging environment uses vm-staging.internal for its metrics backend.

The production environment uses vm-prod.internal for its metrics backend.

The development environment uses vm-dev.internal for its metrics backend.

The staging environment rotates credentials weekly for the metrics backend.

The staging email sender is ses-staging for notification traffic.

Environment swap distractors with same service family.


Question: What metrics backend does production use?

The production environment rotates credentials weekly for the metrics backend.

The production email sender is ses-production for notification traffic.

Environment swap distractors with same service family.


Question: What metrics backend does development use?

The production environment uses vm-staging.internal for its metrics backend.

The staging environment uses vm-prod.internal for its metrics backend.

The development environment rotates credentials weekly for the metrics backend.

The development email sender is ses-development for notification traffic.

Environment swap distractors with same service family.


Question: What auth issuer does staging use?

The staging environment uses https://auth-staging.ecue.ai for its auth issuer.

The production environment uses https://auth.ecue.ai for its auth issuer.

The development environment uses https://auth-dev.ecue.ai for its auth issuer.

The staging environment rotates credentials weekly for the auth issuer.

Environment swap distractors with same service family.


Question: What auth issuer does production use?

The production environment rotates credentials weekly for the auth issuer.

Environment swap distractors with same service family.


Question: What auth issuer does development use?

The production environment uses https://auth-staging.ecue.ai for its auth issuer.

The staging environment uses https://auth.ecue.ai for its auth issuer.

The development environment rotates credentials weekly for the auth issuer.

Environment swap distractors with same service family.


Question: What artifact bucket does staging use?

The staging environment uses artifacts-staging for its artifact bucket.

The production environment uses artifacts-prod for its artifact bucket.

The development environment uses artifacts-dev for its artifact bucket.

The staging environment rotates credentials weekly for the artifact bucket.

The staging email sender is ses-staging for notification traffic.

Environment swap distractors with same service family.


Question: What artifact bucket does production use?

The production environment rotates credentials weekly for the artifact bucket.

The production email sender is ses-production for notification traffic.

Environment swap distractors with same service family.


Question: What artifact bucket does development use?

The production environment uses artifacts-staging for its artifact bucket.

The staging environment uses artifacts-prod for its artifact bucket.

The development environment rotates credentials weekly for the artifact bucket.

The development email sender is ses-development for notification traffic.

Environment swap distractors with same service family.


Question: What search index does staging use?

The staging environment uses meili-staging.internal for its search index.

The production environment uses meili-prod.internal for its search index.

The development environment uses meili-dev.internal for its search index.

The staging environment rotates credentials weekly for the search index.

Environment swap distractors with same service family.


Question: What search index does production use?

The production environment rotates credentials weekly for the search index.

Environment swap distractors with same service family.


Question: What search index does development use?

The production environment uses meili-staging.internal for its search index.

The staging environment uses meili-prod.internal for its search index.

The development environment rotates credentials weekly for the search index.

Environment swap distractors with same service family.


Question: What does Caroline prefer?

Caroline prefers oat milk for daily work.

Catherine prefers oat milk for daily work.

Caroline also likes black tea in some situations.

The team discussed oat milk and black tea during planning.

Caroline wrote a migration note about deployment safety.

Entity swap with near-name collision and shared preference value.


Question: What does Jordan prefer?

Jordan prefers standing desk for daily work.

Jordyn prefers standing desk for daily work.

Jordan also likes ergonomic chair in some situations.

The team discussed standing desk and ergonomic chair during planning.

Jordan wrote a migration note about deployment safety.

Entity swap with near-name collision and shared preference value.


Question: What does Alicia prefer?

Alicia prefers Postgres for daily work.

Alice prefers Postgres for daily work.

Alicia also likes MySQL in some situations.

The team discussed Postgres and MySQL during planning.

Alicia wrote a migration note about deployment safety.

Entity swap with near-name collision and shared preference value.


Question: What does Mika prefer?

Mika prefers vim for daily work.

Mila prefers vim for daily work.

Mika also likes emacs in some situations.

The team discussed vim and emacs during planning.

Mika wrote a migration note about deployment safety.

Entity swap with near-name collision and shared preference value.


Question: What does Darren prefer?

Darren prefers dark mode for daily work.

Dorian prefers dark mode for daily work.

Darren also likes light mode in some situations.

The team discussed dark mode and light mode during planning.

Darren wrote a migration note about deployment safety.

Entity swap with near-name collision and shared preference value.


Question: What does Riley prefer?

Riley prefers GraphQL for daily work.

Ryan prefers GraphQL for daily work.

Riley also likes REST in some situations.

The team discussed GraphQL and REST during planning.

Riley wrote a migration note about deployment safety.

Entity swap with near-name collision and shared preference value.


Question: What does Marina prefer?

Marina prefers daily standups for daily work.

Maria prefers daily standups for daily work.

Marina also likes weekly status docs in some situations.

The team discussed daily standups and weekly status docs during planning.

Marina wrote a migration note about deployment safety.

Entity swap with near-name collision and shared preference value.


Question: What does Talia prefer?

Talia prefers Go modules for daily work.

Tanya prefers Go modules for daily work.

Talia also likes Bazel workspaces in some situations.

The team discussed Go modules and Bazel workspaces during planning.

Talia wrote a migration note about deployment safety.

Entity swap with near-name collision and shared preference value.


Question: What does Nolan prefer?

Nolan prefers CUDA containers for daily work.

Noah prefers CUDA containers for daily work.

Nolan also likes CPU-only builds in some situations.

The team discussed CUDA containers and CPU-only builds during planning.

Nolan wrote a migration note about deployment safety.

Entity swap with near-name collision and shared preference value.


Question: What does Elena prefer?

Elena prefers Linear for daily work.

Alina prefers Linear for daily work.

Elena also likes Jira in some situations.

The team discussed Linear and Jira during planning.

Elena wrote a migration note about deployment safety.

Entity swap with near-name collision and shared preference value.


Question: What does Sonia prefer?

Sonia prefers dark roast for daily work.

Sonya prefers dark roast for daily work.

Sonia also likes green tea in some situations.

The team discussed dark roast and green tea during planning.

Sonia wrote a migration note about deployment safety.

Entity swap with near-name collision and shared preference value.


Question: What does Maren prefer?

Maren prefers Nix for daily work.

Karen prefers Nix for daily work.

Maren also likes Docker Compose in some situations.

The team discussed Nix and Docker Compose during planning.

Maren wrote a migration note about deployment safety.

Entity swap with near-name collision and shared preference value.


Question: When did we migrate auth to bearer tokens?

We migrate auth to bearer tokens in March.

We migrate auth to bearer tokens in May.

We discussed how to migrate auth to bearer tokens throughout March planning.

We completed documentation for that change in May.

Same event with swapped month distractor.


Question: When did we split staging and production domains?

We split staging and production domains in April.

We split staging and production domains in June.

We discussed how to split staging and production domains throughout April planning.

We completed documentation for that change in June.

Same event with swapped month distractor.


Question: When did we move Redis into a private subnet?

We move Redis into a private subnet in January.

We move Redis into a private subnet in February.

We discussed how to move Redis into a private subnet throughout January planning.

We completed documentation for that change in February.

Same event with swapped month distractor.


Question: When did we ship the reporting dashboard?

We ship the reporting dashboard in July.

We ship the reporting dashboard in August.

We discussed how to ship the reporting dashboard throughout July planning.

We completed documentation for that change in August.

Same event with swapped month distractor.


Question: When did we enable GPU inference in Docker?

We enable GPU inference in Docker in September.

We enable GPU inference in Docker in October.

We discussed how to enable GPU inference in Docker throughout September planning.

We completed documentation for that change in October.

Same event with swapped month distractor.


Question: When did we rotate the SES credentials?

We rotate the SES credentials in November.

We rotate the SES credentials in December.

We discussed how to rotate the SES credentials throughout November planning.

We completed documentation for that change in December.

Same event with swapped month distractor.


Question: When did we switch the default embedded model to bge-small?

We switch the default embedded model to bge-small in February.

We switch the default embedded model to bge-small in April.

We discussed how to switch the default embedded model to bge-small throughout February planning.

We completed documentation for that change in April.

Same event with swapped month distractor.


Question: When did we publish the public GHCR image?

We publish the public GHCR image in May.

We publish the public GHCR image in July.

We discussed how to publish the public GHCR image throughout May planning.

We completed documentation for that change in July.

Same event with swapped month distractor.


Question: When did we replace the handwritten MCP server?

We replace the handwritten MCP server in June.

We replace the handwritten MCP server in August.

We discussed how to replace the handwritten MCP server throughout June planning.

We completed documentation for that change in August.

Same event with swapped month distractor.


Question: When did we introduce depth-aware ranking?

We introduce depth-aware ranking in October.

We introduce depth-aware ranking in December.

We discussed how to introduce depth-aware ranking throughout October planning.

Same event with swapped month distractor.


Question: When did we remove the TUI surface?

We remove the TUI surface in January.

We remove the TUI surface in March.

We discussed how to remove the TUI surface throughout January planning.

We completed documentation for that change in March.

Same event with swapped month distractor.


Question: When did we generalize the tagger pipeline?

We generalize the tagger pipeline in April.

We generalize the tagger pipeline in September.

We discussed how to generalize the tagger pipeline throughout April planning.

We completed documentation for that change in September.

Same event with swapped month distractor.


Question: What is the current production domain?

The current production domain is ecue.ai.

The current production domain used to be hifidelityai.com.

The staging or preview equivalent is preview.ecue.ai.

We updated the runbook after changing the current production domain.

Current fact vs stale fact and sibling environment distractor.


Question: What is the default embed model?

The default embed model is bge-small-en-v1.5.

The default embed model used to be all-MiniLM-L6-v2.

The staging or preview equivalent is bge-base-en-v1.5.

We updated the runbook after changing the default embed model.

Current fact vs stale fact and sibling environment distractor.


Question: What is the current staging database?

The current staging database is db-staging.internal.

The current staging database used to be db-old-staging.internal.

The staging or preview equivalent is db-preview.internal.

We updated the runbook after changing the current staging database.

Current fact vs stale fact and sibling environment distractor.


Question: What is the current metrics backend?

The current metrics backend is VictoriaMetrics.

The current metrics backend used to be Prometheus.

The staging or preview equivalent is InfluxDB.

We updated the runbook after changing the current metrics backend.

Current fact vs stale fact and sibling environment distractor.


Question: What is the current mail sender?

The current mail sender is ses-prod.

The current mail sender used to be ses-old.

The staging or preview equivalent is ses-preview.

We updated the runbook after changing the current mail sender.

Current fact vs stale fact and sibling environment distractor.


Question: What is the current OpenCode MCP name?

The current OpenCode MCP name is tagmem.

The current OpenCode MCP name used to be tagmem_active.

The staging or preview equivalent is mempalace_active.

We updated the runbook after changing the current OpenCode MCP name.

Current fact vs stale fact and sibling environment distractor.


Question: What is the current published image?

The current published image is ghcr.io/codysnider/tagmem.

The current published image used to be ghcr.io/codysnider/tagmem-opencode.

The staging or preview equivalent is ghcr.io/codysnider/tagmem-preview.

We updated the runbook after changing the current published image.

Current fact vs stale fact and sibling environment distractor.


Question: What is the current local data root?

The current local data root is $HOME/.local/share/tagmem.

The current local data root used to be /data/tagmem.

The staging or preview equivalent is /srv/tagmem.

We updated the runbook after changing the current local data root.

Current fact vs stale fact and sibling environment distractor.


Question: What is the current vector backend?

The current vector backend is chromem-go.

The current vector backend used to be ChromaDB.

The staging or preview equivalent is SQLite FTS.

We updated the runbook after changing the current vector backend.

Current fact vs stale fact and sibling environment distractor.


Question: What is the current graph package name?

The current graph package name is taggraph.

The current graph package name used to be topicgraph.

The staging or preview equivalent is memorygraph.

We updated the runbook after changing the current graph package name.

Current fact vs stale fact and sibling environment distractor.


Question: What did you suggest for Terraform environments?

You suggested separate Terraform states for shared, production, and staging.

I suggested one Terraform state with workspaces.

We discussed Terraform environments implementation details later.

The team wrote follow-up notes about Terraform environments.

Assistant/user suggestion swap with same subject area.


Question: What did you suggest for tagging pipeline?

You suggested use deterministic extraction first and embedding ranking second.

I suggested let the model invent tags directly.

We discussed tagging pipeline implementation details later.

The team wrote follow-up notes about tagging pipeline.

Assistant/user suggestion swap with same subject area.


Question: What did you suggest for OpenCode integration?

You suggested run the image directly with the mcp subcommand.

I suggested wrap everything in a shell pipeline.

We discussed OpenCode integration implementation details later.

The team wrote follow-up notes about OpenCode integration.

Assistant/user suggestion swap with same subject area.


Question: What did you suggest for release packaging?

You suggested publish ghcr.io/codysnider/tagmem as the generic image.

I suggested ship only a local Docker build.

We discussed release packaging implementation details later.

The team wrote follow-up notes about release packaging.

Assistant/user suggestion swap with same subject area.


Question: What did you suggest for depth model?

You suggested treat depth as a secondary ranking bias.

I suggested replace tags with rigid hierarchical folders.

We discussed depth model implementation details later.

The team wrote follow-up notes about depth model.

Assistant/user suggestion swap with same subject area.


Question: What did you suggest for README benchmarks?

You suggested keep a compact benchmark table in the main README.

I suggested put the full benchmark suite in the top section.

We discussed README benchmarks implementation details later.

The team wrote follow-up notes about README benchmarks.

Assistant/user suggestion swap with same subject area.


Question: What did you suggest for Docker data root?

You suggested use HOME-local defaults with an env override.

I suggested hardcode everything to /data/tagmem.

We discussed Docker data root implementation details later.

The team wrote follow-up notes about Docker data root.

Assistant/user suggestion swap with same subject area.


Question: What did you suggest for MCP compatibility?

You suggested use the official Go SDK.

I suggested hand-roll every transport detail.

We discussed MCP compatibility implementation details later.

The team wrote follow-up notes about MCP compatibility.

Assistant/user suggestion swap with same subject area.


Question: What did you suggest for adversarial benchmark repo?

You suggested split it into a standalone project.

I suggested bury it inside the main app repo.

We discussed adversarial benchmark repo implementation details later.

The team wrote follow-up notes about adversarial benchmark repo.

Assistant/user suggestion swap with same subject area.


Question: What did you suggest for OpenCode command naming?

You suggested use remember instead of mine.

I suggested keep mine because users will figure it out.

We discussed OpenCode command naming implementation details later.

The team wrote follow-up notes about OpenCode command naming.

Assistant/user suggestion swap with same subject area.


Question: What timeout do API calls use?

API calls time out after 30 seconds.

The API timeout is 60 seconds.

Background jobs retry for up to 30 seconds.

We reviewed the policy related to: API calls time out after 30 seconds.

Near-duplicate paraphrase with one wrong value distractor.


Question: How long do production cookies last?

Production cookies expire after 24 hours.

Staging cookies expire after 12 hours.

We reviewed the policy related to: Production cookies expire after 12 hours.

Near-duplicate paraphrase with one wrong value distractor.


Question: What is the upload limit?

The upload limit is 25 megabytes.

The upload limit is 50 megabytes.

The attachment limit is 25 megabytes.

We reviewed the policy related to: The upload limit is 25 megabytes.

Near-duplicate paraphrase with one wrong value distractor.


Question: How often does auth refresh run?

Auth refresh runs every 10 minutes.

Auth refresh runs every 15 minutes.

Metrics scraping runs every 10 minutes.

We reviewed the policy related to: Auth refresh runs every 10 minutes.

Near-duplicate paraphrase with one wrong value distractor.


Question: When does the reporting batch run?

The reporting batch runs at 02:00 UTC.

The reporting batch runs at 03:00 UTC.

The cleanup batch runs at 02:00 UTC.

We reviewed the policy related to: The reporting batch runs at 02:00 UTC.

Near-duplicate paraphrase with one wrong value distractor.


Question: What port does the public API use?

The public API port is 8443.

The public API port is 9443.

The internal admin port is 8443.

We reviewed the policy related to: The public API port is 8443.

Near-duplicate paraphrase with one wrong value distractor.


Question: What is the Docker data root default?

The Docker data root defaults to /data/tagmem.

The benchmark root defaults to HOME-local storage.

We reviewed the policy related to: The Docker data root defaults to HOME-local storage.

Near-duplicate paraphrase with one wrong value distractor.


Question: What prefix do the MCP tools use?

The MCP tools use the tagmem_ prefix.

The MCP tools use the tiered_memory_ prefix.

The CLI binary is named tagmem.

We reviewed the policy related to: The MCP tools use the tagmem_ prefix.

Near-duplicate paraphrase with one wrong value distractor.


Question: What is the default GPU model?

The default GPU model is bge-base-en-v1.5.

The CPU fallback model is all-MiniLM-L6-v2.

We reviewed the policy related to: The default GPU model is bge-small-en-v1.5.

Near-duplicate paraphrase with one wrong value distractor.


Question: What is the runtime image name?

The runtime image is ghcr.io/codysnider/tagmem-opencode.

The repo path is github.com/codysnider/tagmem.

We reviewed the policy related to: The runtime image is ghcr.io/codysnider/tagmem.

Near-duplicate paraphrase with one wrong value distractor.


Question: How is the MCP server implemented?

The MCP server is still handwritten.

The transport runs over stdio.

We reviewed the policy related to: The MCP server is implemented with the official Go SDK.

Near-duplicate paraphrase with one wrong value distractor.


Question: What is the graph package name?

The local graph package is named topicgraph.

The benchmark package is named tagbench.

We reviewed the policy related to: The local graph package is named taggraph.

Near-duplicate paraphrase with one wrong value distractor.