You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Operators can retry failed hosted embedding work after fixing an encoder or resource problem, without rebuilding the generation. pg embeddings retry-failed queues one capped batch for an explicitly selected active or desired generation. Existing workers process it with a fresh retry budget and lease fence; completed vectors and search activation stay in place.
The command uses the restricted PostgreSQL target and reports aggregate counts. It skips stale sources for normal reconciliation and does not call the encoder or open a local SQLite archive. Reprovisioning the current desired instance with the owner role adds the failure index on existing schemas (use the active instance if there is no desired generation); older status, worker and search paths continue to work before that upgrade. A manually altered failure index is rejected and requires owner repair; reprovisioning does not replace it.
This is the first recovery and operations slice of #1352 item 6. Raw-job recovery, retention, garbage collection, quotas and disaster rebuilds remain separate work. It depends on #1736 and #1730; while those are open, this PR against main includes their changes too. Review d9acd068 for this feature's diff.
internal/postgres/hosted_embeddings_schema.go:187-193: The hosted embedding runtime role has broad DML access to lifecycle fields in hosted_embedding_state, allowing compromised workers to activate incomplete or attacker-written generations without Activate's checks. Remove broad state-table DML grants; restrict lifecycle fields to the owner and expose only validated cursor updates through a procedure or narrow column privileges, with database-enforced transition checks.
Reported by: codex (security)
Medium
internal/postgres/search_content.go:120: Hosted substring and regex content searches use a filter that assumes plain parent_session_id relationships, so raw child sessions are omitted when IncludeChildren is enabled. Pass the hosted session dialect into both content-search filter paths so raw-link relationships are used, and add hosted raw parent/child substring and regex coverage.
Reported by: codex
internal/config/hosted_embeddings.go:71-76: Hosted embedding profile validation accepts non-loopback HTTP endpoints, sending transcript content and bearer credentials without encryption. Require HTTPS except for loopback HTTP, reject URL userinfo, and require explicit opt-in for non-loopback plaintext endpoints.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Operators can retry failed hosted embedding work after fixing an encoder or resource problem, without rebuilding the generation.
pg embeddings retry-failedqueues one capped batch for an explicitly selected active or desired generation. Existing workers process it with a fresh retry budget and lease fence; completed vectors and search activation stay in place.The command uses the restricted PostgreSQL target and reports aggregate counts. It skips stale sources for normal reconciliation and does not call the encoder or open a local SQLite archive. Reprovisioning the current desired instance with the owner role adds the failure index on existing schemas (use the active instance if there is no desired generation); older status, worker and search paths continue to work before that upgrade. A manually altered failure index is rejected and requires owner repair; reprovisioning does not replace it.
This is the first recovery and operations slice of #1352 item 6. Raw-job recovery, retention, garbage collection, quotas and disaster rebuilds remain separate work. It depends on #1736 and #1730; while those are open, this PR against main includes their changes too. Review
d9acd068for this feature's diff.