Skip to content

refactor: delete the FinalizeStaleChatDebugRows query - #30995

Draft
ibetitsmike wants to merge 1 commit into
mike/chatdebug-delete-finalize-stalefrom
mike/chatdebug-delete-stale-query
Draft

ibetitsmike wants to merge 1 commit into
mike/chatdebug-delete-finalize-stalefrom
mike/chatdebug-delete-stale-query

Conversation

@ibetitsmike

@ibetitsmike ibetitsmike commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Deletes the FinalizeStaleChatDebugRows query. #30989 deleted chatdebug.Service.FinalizeStale, its only caller. This is the last of three PRs that delete the stale debug-run sweep.

  • Deletes the query from chatdebug.sql and regenerates the querier, dbmock and dbmetrics code. make gen/db leaves the dbmetrics wrapper of a deleted query behind, so I removed it by hand.
  • Deletes the dbauthz wrapper and its TestMethodTestSuite case, and TestFinalizeStaleChatDebugRows from querier_test.go.
  • The codersdk.ChatDebugStatus comment no longer names the query.

Why it is safe: nothing calls the query after #30989. #30988 explains why no reader of the debug updated_at columns needs the sweep and why dbpurge cannot delete a live run.

Review focus: the partial indexes idx_chat_debug_runs_stale and idx_chat_debug_steps_stale from migration 000468 served only this query. They stay in this PR; #31009, at the top of this stack, drops them in a migration.

Validation: make gen/db and go build ./.... go test -count=1 passes for ./coderd/database/dbauthz/ -run TestMethodTestSuite, ./coderd/database/ -run ChatDebug, ./codersdk/ and ./coderd/database/dbpurge/. The pre-commit hook passed.

Stack

This stack deletes the stale debug-run sweep, then simplifies the chatdebug debug-run, stream wrapper and step numbering code, and last drops the indexes the sweep used. The debug-run and stream wrapper refactors each sit on a test-only layer that pins the behavior they keep.

  1. refactor(coderd): delete the chat debug run and step heartbeats #30988 Delete the chat debug run and step heartbeats
  2. refactor: delete chatdebug FinalizeStale and the stale threshold #30989 Delete FinalizeStale and the stale threshold
  3. This PR: Delete the FinalizeStaleChatDebugRows query
  4. test(coderd/x/chatd): pin the debug runs that turns, titles and status labels record #30933 Pin the debug runs that turns, titles and status labels record
  5. refactor(coderd/x/chatd): create and finalize debug runs through one helper #30934 Create and finalize debug runs through one helper
  6. test(coderd/x/chatd/chatdebug): table the stream wrapper tests and cover their status rules #30980 Table the stream wrapper tests and cover their status rules
  7. refactor(coderd/x/chatd/chatdebug): share one finalize-once lifecycle between the stream wrappers #30981 Share one finalize-once lifecycle between the stream wrappers
  8. refactor(coderd): number chat debug steps in the database #31007 Number chat debug steps in the database
  9. refactor(coderd/x/chatd/chatdebug): delete the process-global step counters #31008 Delete the process-global step counters
  10. chore(coderd/database): drop the chat debug stale-sweep indexes #31009 Drop the chat debug stale-sweep indexes

Xum, an AI agent, opened this PR for @ibetitsmike and wrote this description.

FinalizeStale was the only caller, and it is gone. Delete the query, its
dbauthz wrapper and test, and TestFinalizeStaleChatDebugRows. The two
partial indexes that served the query stay until a migration drops them.
ibetitsmike added a commit that referenced this pull request Oct 18, 2026
…-tests

Moves this layer off #30932 and onto the stale-sweep deletion stack
(#30995) without rewriting history. The tree is the new parent plus this
layer's own diff, which is unchanged.
ibetitsmike added a commit that referenced this pull request Oct 18, 2026
Moves this layer onto the updated #30933, which now sits on the
stale-sweep deletion stack (#30995), without rewriting history. The
tree is the new parent plus this layer's own diff, with one forced
change: the deletion stack removed the database/sql import from
chatdebug/service_test.go because its last user was a deleted test,
and this layer's TestService_StartRun still uses sql.NullString, so
the merge re-adds the import.
ibetitsmike added a commit that referenced this pull request Oct 18, 2026
Moves this layer onto the updated #30934, which now sits on the
stale-sweep deletion stack (#30995), without rewriting history. The
only conflict was the test file's import block: the deletion stack
dropped the "time" import with the heartbeat tests, and this layer
adds "testing/synctest". The layer's net line changes are unchanged.
ibetitsmike added a commit that referenced this pull request Oct 18, 2026
…finalize-once

Moves this layer onto the updated #30980, which now sits on the
stale-sweep deletion stack (#30995), without rewriting history. The
deletion stack removed the stream heartbeats, so the merge drops them
from the shared lifecycle too: streamStep loses heartbeatDone and
startHeartbeat, finalizeLocked no longer closes the heartbeat channel,
neither wrapper calls step.startHeartbeat(), and launchHeartbeat is
gone. The rest of the layer's diff is unchanged.
@ibetitsmike
ibetitsmike added this pull request to stack #31004 October 18, 2026 18:59
@ibetitsmike

Copy link
Copy Markdown
Collaborator Author

@codex review

Xum, an AI agent, requested this review for @ibetitsmike.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-18T19:08:56.231501Z 1970776 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. What shall we delve into next?

Reviewed commit: 1970776aa1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

This branch has not been deployed

No deployments
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.

1 participant