@opengeni/db 1.0.1 → 3.1.0-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attached-browser-devices.d.ts +7 -0
- package/dist/automations.d.ts +154 -0
- package/dist/canonical-human-identities.js +3 -3
- package/dist/capability-integrations.d.ts +13 -0
- package/dist/child-lifecycle-notices.d.ts +68 -0
- package/dist/{chunk-LTG3S6ZY.js → chunk-EULAN2NP.js} +2 -2
- package/dist/{chunk-CUPM3FGB.js → chunk-NJVZPWXY.js} +3 -3
- package/dist/{chunk-4SR4HKKA.js → chunk-NMUBV7Z5.js} +19 -11
- package/dist/chunk-NMUBV7Z5.js.map +1 -0
- package/dist/chunk-OF5OBB76.js +4457 -0
- package/dist/chunk-OF5OBB76.js.map +1 -0
- package/dist/{chunk-6ZYKCRFO.js → chunk-PR2WMLOQ.js} +7580 -4417
- package/dist/chunk-PR2WMLOQ.js.map +1 -0
- package/dist/{chunk-ZWREYEWA.js → chunk-SCPUJS53.js} +41 -4
- package/dist/chunk-SCPUJS53.js.map +1 -0
- package/dist/{chunk-SK7YYHBI.js → chunk-SIBYBA2D.js} +46 -1
- package/dist/chunk-SIBYBA2D.js.map +1 -0
- package/dist/chunk-TIKF3KTI.js +383 -0
- package/dist/chunk-TIKF3KTI.js.map +1 -0
- package/dist/chunk-ZZ5LJEFX.js +516 -0
- package/dist/chunk-ZZ5LJEFX.js.map +1 -0
- package/dist/codemode-operations.d.ts +1 -6
- package/dist/company-brain-context-selection-schema.d.ts +705 -0
- package/dist/company-brain-context-selection.d.ts +94 -0
- package/dist/company-brain-governed-writes.d.ts +24 -0
- package/dist/company-brain.d.ts +55 -0
- package/dist/company-profile-agent-admin.d.ts +15 -0
- package/dist/company-profile-schema.d.ts +619 -2
- package/dist/company-profile.d.ts +9 -4
- package/dist/connection-authority.d.ts +95 -0
- package/dist/connection-scopes.d.ts +8 -0
- package/dist/connection-tenancy-backfill.d.ts +41 -0
- package/dist/connection-token-resolver.d.ts +30 -1
- package/dist/database.d.ts +19 -0
- package/dist/editable-artifact-durable-export.js +2 -2
- package/dist/editable-artifacts.d.ts +2 -2
- package/dist/editable-artifacts.js +3 -3
- package/dist/governed-learning-activation-schema.d.ts +984 -0
- package/dist/governed-learning-activation.d.ts +98 -0
- package/dist/governed-learning-evaluator-schema.d.ts +633 -0
- package/dist/governed-learning-evaluator.d.ts +28 -0
- package/dist/index.d.ts +1595 -81
- package/dist/index.js +21571 -8126
- package/dist/index.js.map +1 -1
- package/dist/insights.d.ts +18 -0
- package/dist/integration-bindings.d.ts +1 -0
- package/dist/integration-facets.d.ts +30 -0
- package/dist/interaction-placement-loss.d.ts +22 -0
- package/dist/managed-human-provisioning.d.ts +25 -0
- package/dist/memory-domain.d.ts +3 -3
- package/dist/migrate.d.ts +11 -1
- package/dist/migrate.js +1 -1
- package/dist/new-session-drafts.d.ts +43 -5
- package/dist/organization-membership-backfill.d.ts +174 -0
- package/dist/organization-membership-lifecycle.d.ts +162 -0
- package/dist/pr-review.d.ts +107 -0
- package/dist/preference-registry-schema.d.ts +2 -0
- package/dist/preference-registry.d.ts +2 -0
- package/dist/provision-roles.js +1 -1
- package/dist/runtime-posture.d.ts +22 -8
- package/dist/schema.d.ts +24914 -13703
- package/dist/schema.js +99 -1
- package/dist/scoped-knowledge-schema.d.ts +52 -1
- package/dist/session-background-commands.d.ts +125 -0
- package/dist/session-background-commands.js +34 -0
- package/dist/session-background-commands.js.map +1 -0
- package/dist/session-control.d.ts +156 -3
- package/dist/session-goal-pacing.d.ts +68 -0
- package/dist/session-queue-commands.d.ts +41 -4
- package/dist/session-realtime-ledger.d.ts +2 -0
- package/dist/session-tenancy.d.ts +71 -1
- package/dist/session-tenancy.js +25 -3
- package/dist/session-tool-call-settlement.d.ts +9 -4
- package/dist/slack-routing-personal-workspace.d.ts +23 -0
- package/dist/slack-routing.d.ts +153 -0
- package/dist/slack-task-policy-schema.d.ts +34 -0
- package/dist/slack-task-policy.d.ts +8 -0
- package/dist/slack-user-link-access.d.ts +1 -0
- package/dist/task-notes-schema.d.ts +594 -0
- package/dist/task-notes.d.ts +39 -0
- package/dist/turn-initiator.d.ts +2 -0
- package/dist/user-resource-authority.d.ts +109 -0
- package/dist/video-generation.js +3 -3
- package/dist/workspace-authority.d.ts +81 -0
- package/dist/workspace-instruction-policies-schema.d.ts +279 -0
- package/dist/workspace-instruction-policies.d.ts +62 -0
- package/dist/workspace-learning-policy.d.ts +1 -0
- package/dist/workspace-membership-permissions.d.ts +2 -0
- package/drizzle/0240_enrollment_connection_authority.sql +39 -0
- package/drizzle/0241_atomic_personal_resource_delegation.sql +1000 -0
- package/drizzle/0241_enrollment_agent_runtime.sql +70 -0
- package/drizzle/0244_slack_app_home_refresh_queue.sql +120 -0
- package/drizzle/0245_model_context_contribution_facts.sql +88 -0
- package/drizzle/0246_integration_personal_instance_authority.sql +70 -0
- package/drizzle/0247_terraform_stacks_provenance_repair.sql +428 -0
- package/drizzle/0248_terraform_stacks_component_resolution_fence.sql +83 -0
- package/drizzle/0249_personal_resource_delegation_authority_correction.sql +662 -0
- package/drizzle/0250_direct_retained_process_owner_liveness.sql +199 -0
- package/drizzle/0251_connected_machine_operation_policy.sql +45 -0
- package/drizzle/0252_scheduled_personal_resource_delegation.sql +1867 -0
- package/drizzle/0253_common_user_resource_authority_lifecycle.sql +1555 -0
- package/drizzle/0254_scoped_variable_set_authority.sql +1255 -0
- package/drizzle/0255_company_brain_governed_write_proposals.sql +524 -0
- package/drizzle/0256_connection_authority_delegation.sql +703 -0
- package/drizzle/0257_goal_revision_decisions_and_root_constraints.sql +436 -0
- package/drizzle/0258_three_scope_document_knowledge_authority.sql +1273 -0
- package/drizzle/0259_company_brain_context_selection_receipts.sql +869 -0
- package/drizzle/0260_task_note_knowledge_promotion.sql +820 -0
- package/drizzle/0261_preference_knowledge_proposal_actor_binding.sql +471 -0
- package/drizzle/0262_scoped_connected_machines_and_rigs.sql +1700 -0
- package/drizzle/0263_organization_membership_lifecycle.sql +3284 -0
- package/drizzle/0264_connection_authority_runtime_activation.sql +1084 -0
- package/drizzle/0266_company_brain_context_receipt_inspection.sql +156 -0
- package/drizzle/0268_governed_learning_decision_receipts.sql +825 -0
- package/drizzle/0269_governed_learning_activation_controller.sql +1874 -0
- package/drizzle/0270_governed_learning_history_inspection.sql +170 -0
- package/drizzle/0271_company_brain_retrieval_only_default.sql +524 -0
- package/drizzle/0272_human_confirmed_learning_activation.sql +591 -0
- package/drizzle/0273_scheduled_variable_set_materialization.sql +268 -0
- package/drizzle/0274_human_confirmed_knowledge_review.sql +310 -0
- package/drizzle/0275_scheduled_connection_authority.sql +5527 -0
- package/drizzle/0276_onboarding_proposal_initiating_human_guc.sql +198 -0
- package/drizzle/0277_workspace_writer_authority_attribution.sql +393 -0
- package/drizzle/0278_workspace_membership_removal_fencing.sql +1174 -0
- package/drizzle/0279_workspace_connection_use_lane.sql +343 -0
- package/drizzle/0280_connection_and_variable_set_audit_attribution.sql +773 -0
- package/drizzle/0281_viewer_holder_authority_claims.sql +52 -0
- package/drizzle/0282_variable_set_session_attach_attribution.sql +178 -0
- package/drizzle/0283_editable_spreadsheet_authored_state.sql +82 -0
- package/drizzle/0284_truthful_human_confirmed_review_reason.sql +930 -0
- package/drizzle/0285_organization_tenancy_inventory.sql +329 -0
- package/drizzle/0286_widen_task_note_expiry_ceiling.sql +391 -0
- package/drizzle/0287_open_suffix_pending_tool_calls.sql +18 -0
- package/drizzle/0288_attached_browser_reenrollment.sql +64 -0
- package/drizzle/0289_session_composer_policy_authority.sql +597 -0
- package/drizzle/0290_organization_membership_backfill.sql +268 -0
- package/drizzle/0291_resource_authority_classification_assertion.sql +371 -0
- package/drizzle/0292_truthful_tenancy_inventory_counters.sql +291 -0
- package/drizzle/0293_confirm_time_rule_rebaseline.sql +615 -0
- package/drizzle/0294_preference_activation_authority.sql +237 -0
- package/drizzle/0295_retire_legacy_standing_memory_mode.sql +476 -0
- package/drizzle/0296_force_rls_backfill_noop_repair.sql +215 -0
- package/drizzle/0297_session_ownership_classification_and_backfill.sql +752 -0
- package/drizzle/0298_organization_tenancy_parity.sql +609 -0
- package/drizzle/0299_organization_membership_lock_order.sql +291 -0
- package/drizzle/0300_tenancy_backfill_ledger.sql +459 -0
- package/drizzle/0301_session_snapshot_and_pin_visibility.sql +181 -0
- package/drizzle/0302_personal_workspace_session_ownership.sql +303 -0
- package/drizzle/0303_session_tenancy_product_activation.sql +919 -0
- package/drizzle/0304_personal_workspace_private_session_reads.sql +97 -0
- package/drizzle/0305_personal_resource_grant_management.sql +584 -0
- package/drizzle/0306_atomic_personal_resource_attachments.sql +1374 -0
- package/drizzle/0307_session_attention_state.sql +51 -0
- package/drizzle/0308_session_archives.sql +35 -0
- package/drizzle/0309_channel_project_pins.sql +6 -0
- package/drizzle/0310_channel_project_order.sql +27 -0
- package/drizzle/0311_company_scope_and_private_session_create.sql +656 -0
- package/drizzle/0312_quiescent_session_tree_deletion.sql +39 -0
- package/drizzle/0313_private_child_session_authority.sql +365 -0
- package/drizzle/0314_unregistered_organization_invitations.sql +606 -0
- package/drizzle/0315_personal_github_repository_selection.sql +624 -0
- package/drizzle/0316_human_confirmed_activation_resumed_generation.sql +869 -0
- package/drizzle/0317_session_goal_continuation_hold.sql +64 -0
- package/drizzle/0318_session_turn_startup_milestones.sql +115 -0
- package/drizzle/0319_event_triggered_automations.sql +254 -0
- package/drizzle/0320_pr_review_pack.sql +113 -0
- package/drizzle/0321_slack_bot_environment_display_name.sql +15 -0
- package/drizzle/0322_session_turns_unclaimed_prompt_trigger_index.sql +5 -0
- package/drizzle/0323_organization_private_session_enablement.sql +489 -0
- package/drizzle/0324_human_confirmed_company_profile_agent_admin.sql +856 -0
- package/drizzle/0325_child_lifecycle_notices.sql +44 -0
- package/drizzle/0326_interaction_operation_error_codes.sql +62 -0
- package/drizzle/0327_slack_first_task_hint.sql +29 -0
- package/drizzle/0328_session_background_commands.sql +590 -0
- package/drizzle/0329_slack_orchestration_delivery_events.sql +91 -0
- package/drizzle/0330_api_key_descriptions.sql +20 -0
- package/drizzle/0331_managed_organization_creation.sql +163 -0
- package/drizzle/0332_organization_shared_workspace_control_plane.sql +539 -0
- package/drizzle/0333_session_turn_prompt_routing.sql +45 -0
- package/drizzle/0334_connected_machine_workspace_root.sql +99 -0
- package/drizzle/0335_slack_workspace_routing.sql +460 -0
- package/drizzle/0336_atomic_session_fork_visibility.sql +667 -0
- package/drizzle/0337_slack_routed_action_handles.sql +189 -0
- package/drizzle/0338_atomic_connected_machine_attachments.sql +410 -0
- package/drizzle/0339_document_authority_reclassification.sql +1153 -0
- package/drizzle/0340_tenancy_backfill_activation_evidence.sql +1347 -0
- package/drizzle/0341_slack_routing_probe_organization_fence.sql +109 -0
- package/package.json +10 -6
- package/src/attached-browser-devices.ts +233 -5
- package/src/automations.ts +911 -0
- package/src/browser-sessions.ts +10 -0
- package/src/capability-integrations.ts +175 -1
- package/src/child-lifecycle-notices.ts +241 -0
- package/src/codemode-operations.ts +1 -35
- package/src/company-brain-context-selection-schema.ts +100 -0
- package/src/company-brain-context-selection.ts +359 -0
- package/src/company-brain-governed-writes.ts +1170 -0
- package/src/company-brain.ts +309 -0
- package/src/company-profile-agent-admin.ts +225 -0
- package/src/company-profile-schema.ts +121 -1
- package/src/company-profile.ts +21 -0
- package/src/computer-sessions.ts +10 -1
- package/src/connection-authority.ts +290 -0
- package/src/connection-scopes.ts +20 -0
- package/src/connection-tenancy-backfill.ts +81 -0
- package/src/connection-token-resolver.ts +263 -31
- package/src/database.ts +75 -2
- package/src/editable-artifacts-schema.ts +10 -5
- package/src/editable-artifacts.ts +21 -11
- package/src/governed-learning-activation-schema.ts +121 -0
- package/src/governed-learning-activation.ts +588 -0
- package/src/governed-learning-evaluator-schema.ts +72 -0
- package/src/governed-learning-evaluator.ts +217 -0
- package/src/index.ts +11651 -1548
- package/src/insights.ts +107 -0
- package/src/integration-bindings.ts +88 -6
- package/src/integration-facets.ts +287 -84
- package/src/interaction-placement-loss.ts +234 -0
- package/src/managed-human-provisioning.ts +116 -0
- package/src/memory-domain.ts +27 -32
- package/src/migrate.ts +77 -1
- package/src/new-session-drafts.ts +229 -35
- package/src/organization-membership-backfill.ts +735 -0
- package/src/organization-membership-lifecycle.ts +985 -0
- package/src/pr-review.ts +890 -0
- package/src/preference-registry.ts +31 -1
- package/src/provision-roles.ts +877 -6
- package/src/runtime-posture-cli.ts +2 -0
- package/src/runtime-posture.ts +1291 -76
- package/src/schema.ts +3303 -428
- package/src/scoped-knowledge-schema.ts +16 -8
- package/src/scoped-knowledge.ts +1 -1
- package/src/session-background-commands.ts +759 -0
- package/src/session-control.ts +640 -74
- package/src/session-goal-pacing.ts +126 -0
- package/src/session-queue-commands.ts +437 -84
- package/src/session-realtime-context.ts +3 -3
- package/src/session-realtime-ledger.ts +22 -11
- package/src/session-realtime-mirror.ts +1 -1
- package/src/session-tenancy.ts +403 -49
- package/src/session-tool-call-settlement.ts +38 -29
- package/src/slack-routing-personal-workspace.ts +67 -0
- package/src/slack-routing.ts +469 -0
- package/src/slack-task-policy-schema.ts +5 -0
- package/src/slack-task-policy.ts +18 -0
- package/src/slack-user-link-access.ts +17 -1
- package/src/task-notes-schema.ts +74 -0
- package/src/task-notes.ts +124 -2
- package/src/turn-initiator.ts +8 -0
- package/src/user-resource-authority.ts +377 -0
- package/src/workspace-authority.ts +160 -0
- package/src/workspace-instruction-policies-schema.ts +53 -1
- package/src/workspace-instruction-policies.ts +528 -77
- package/src/workspace-learning-policy.ts +21 -5
- package/src/workspace-membership-permissions.ts +9 -0
- package/dist/chunk-4SR4HKKA.js.map +0 -1
- package/dist/chunk-6ZYKCRFO.js.map +0 -1
- package/dist/chunk-NXAFLCQX.js +0 -2468
- package/dist/chunk-NXAFLCQX.js.map +0 -1
- package/dist/chunk-SK7YYHBI.js.map +0 -1
- package/dist/chunk-WD5ROSLL.js +0 -117
- package/dist/chunk-WD5ROSLL.js.map +0 -1
- package/dist/chunk-ZWREYEWA.js.map +0 -1
- /package/dist/{chunk-LTG3S6ZY.js.map → chunk-EULAN2NP.js.map} +0 -0
- /package/dist/{chunk-CUPM3FGB.js.map → chunk-NJVZPWXY.js.map} +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
-- deployment-mode: rolling
|
|
2
|
+
-- Child lifecycle notices. A child session's requires_action freeze, its
|
|
3
|
+
-- resolution, a direct Pause, a provider-capacity wait, and an agent goal
|
|
4
|
+
-- progress note become typed `session_system_updates` rows for the parent, in
|
|
5
|
+
-- addition to the existing `child_terminal_result`. Every one of them is
|
|
6
|
+
-- produced through `session_system_update_outbox` by the child's own lifecycle
|
|
7
|
+
-- transaction and delivered to the parent by the worker.
|
|
8
|
+
--
|
|
9
|
+
-- Rolling: this only widens the accepted kind sets and adds one partial index.
|
|
10
|
+
-- No row is rewritten. A worker from before this change throws when it maps an
|
|
11
|
+
-- unknown kind, so the producers stay behind
|
|
12
|
+
-- OPENGENI_CHILD_LIFECYCLE_NOTICES_ENABLED (default off) until the whole fleet
|
|
13
|
+
-- runs an image that understands the new kinds.
|
|
14
|
+
SET LOCAL lock_timeout = '5s';
|
|
15
|
+
SET LOCAL statement_timeout = '10min';
|
|
16
|
+
|
|
17
|
+
ALTER TABLE "session_system_updates" DROP CONSTRAINT "system_updates_kind_check";
|
|
18
|
+
ALTER TABLE "session_system_updates" ADD CONSTRAINT "system_updates_kind_check" CHECK (
|
|
19
|
+
"kind" IN (
|
|
20
|
+
'scheduled_occurrence', 'goal_continuation', 'agent_message',
|
|
21
|
+
'agent_steer_instruction', 'child_terminal_result', 'media_generation_result',
|
|
22
|
+
'child_requires_action', 'child_requires_action_resolved', 'child_paused',
|
|
23
|
+
'child_waiting_capacity', 'child_progress'
|
|
24
|
+
)
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
ALTER TABLE "session_system_update_outbox" DROP CONSTRAINT "system_update_outbox_kind_check";
|
|
28
|
+
ALTER TABLE "session_system_update_outbox" ADD CONSTRAINT "system_update_outbox_kind_check" CHECK (
|
|
29
|
+
"kind" IN (
|
|
30
|
+
'child_terminal_result', 'child_requires_action', 'child_requires_action_resolved',
|
|
31
|
+
'child_paused', 'child_waiting_capacity', 'child_progress'
|
|
32
|
+
)
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
ALTER TABLE "session_system_update_outbox" DROP CONSTRAINT "system_update_outbox_payload_kind_check";
|
|
36
|
+
ALTER TABLE "session_system_update_outbox" ADD CONSTRAINT "system_update_outbox_payload_kind_check" CHECK (
|
|
37
|
+
"payload" ->> 'type' = "kind"
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
-- Producer-side supersession and resolution lookups address one child's still
|
|
41
|
+
-- pending notices of one kind on the parent: (parent session, kind, child id).
|
|
42
|
+
CREATE INDEX IF NOT EXISTS "session_system_updates_pending_kind_source_idx"
|
|
43
|
+
ON "session_system_updates" ("workspace_id", "session_id", "kind", "source_id")
|
|
44
|
+
WHERE "state" = 'pending';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
-- deployment-mode: maintenance
|
|
2
|
+
-- Interaction operation receipts use the public controller-error enum. The
|
|
3
|
+
-- durable resource keeps the exact internal loss reason; an ambiguous physical
|
|
4
|
+
-- operation must expose the canonical `outcome_unknown` code so idempotent
|
|
5
|
+
-- lifecycle replay remains parseable.
|
|
6
|
+
SET LOCAL lock_timeout = '5s';
|
|
7
|
+
SET LOCAL statement_timeout = '10min';
|
|
8
|
+
|
|
9
|
+
-- `interaction_operations` is FORCE-RLS. Production migrations run as its
|
|
10
|
+
-- NOSUPERUSER/NOBYPASSRLS owner without tenant GUCs, so the repair would
|
|
11
|
+
-- otherwise see zero rows. This maintenance migration is one transaction;
|
|
12
|
+
-- any failure rolls the temporary owner-only posture change back as well.
|
|
13
|
+
ALTER TABLE "interaction_operations" NO FORCE ROW LEVEL SECURITY;
|
|
14
|
+
|
|
15
|
+
DO $interaction_error_code_repair$
|
|
16
|
+
DECLARE
|
|
17
|
+
data_schema text := current_schema();
|
|
18
|
+
reaper_definition text;
|
|
19
|
+
repaired_definition text;
|
|
20
|
+
repaired_rows integer := 0;
|
|
21
|
+
BEGIN
|
|
22
|
+
SELECT pg_catalog.pg_get_functiondef(proc.oid)
|
|
23
|
+
INTO reaper_definition
|
|
24
|
+
FROM pg_catalog.pg_proc proc
|
|
25
|
+
JOIN pg_catalog.pg_namespace namespace ON namespace.oid = proc.pronamespace
|
|
26
|
+
WHERE namespace.nspname = 'opengeni_private'
|
|
27
|
+
AND proc.proname = 'reap_stale_interaction_transitions'
|
|
28
|
+
AND pg_catalog.pg_get_function_identity_arguments(proc.oid) = 'p_interaction_holder_ttl_ms bigint';
|
|
29
|
+
|
|
30
|
+
IF reaper_definition IS NULL THEN
|
|
31
|
+
RAISE EXCEPTION 'interaction transition reaper is missing';
|
|
32
|
+
END IF;
|
|
33
|
+
|
|
34
|
+
repaired_definition := pg_catalog.replace(
|
|
35
|
+
reaper_definition,
|
|
36
|
+
'error_code = ''controller_transition_expired''',
|
|
37
|
+
'error_code = ''outcome_unknown'''
|
|
38
|
+
);
|
|
39
|
+
IF repaired_definition = reaper_definition THEN
|
|
40
|
+
IF pg_catalog.strpos(reaper_definition, 'error_code = ''outcome_unknown''') = 0 THEN
|
|
41
|
+
RAISE EXCEPTION 'interaction transition reaper error-code contract is unrecognized';
|
|
42
|
+
END IF;
|
|
43
|
+
ELSE
|
|
44
|
+
EXECUTE repaired_definition;
|
|
45
|
+
END IF;
|
|
46
|
+
|
|
47
|
+
EXECUTE format($repair$
|
|
48
|
+
UPDATE %1$I.interaction_operations operation
|
|
49
|
+
SET error_code = 'outcome_unknown'
|
|
50
|
+
WHERE operation.state = 'outcome_unknown'
|
|
51
|
+
AND operation.error_code = 'controller_transition_expired'
|
|
52
|
+
$repair$, data_schema);
|
|
53
|
+
GET DIAGNOSTICS repaired_rows = ROW_COUNT;
|
|
54
|
+
|
|
55
|
+
RAISE NOTICE 'Repaired % interaction operation error-code receipt(s).', repaired_rows;
|
|
56
|
+
END
|
|
57
|
+
$interaction_error_code_repair$;
|
|
58
|
+
|
|
59
|
+
ALTER TABLE "interaction_operations" FORCE ROW LEVEL SECURITY;
|
|
60
|
+
|
|
61
|
+
RESET statement_timeout;
|
|
62
|
+
RESET lock_timeout;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
-- deployment-mode: rolling
|
|
2
|
+
-- Slack first-task onboarding hint. The bot's acknowledgement used to repeat
|
|
3
|
+
-- the same how-to prose on every accepted task. The prose now appears exactly
|
|
4
|
+
-- once per Slack identity per installation, and this column is the durable
|
|
5
|
+
-- claim that makes "exactly once" survive retries, replicas, and restarts.
|
|
6
|
+
--
|
|
7
|
+
-- The claimed value is the exact `slack_interactions` id that won the hint, not
|
|
8
|
+
-- a boolean, so a replayed acknowledgement for that same interaction keeps
|
|
9
|
+
-- rendering the hint while every later interaction never does.
|
|
10
|
+
--
|
|
11
|
+
-- Rolling: two nullable columns, no defaults, no backfill. Existing rows are
|
|
12
|
+
-- untouched (NULL means "not shown yet" / "not resolved yet"), so an old image
|
|
13
|
+
-- that never reads or writes either column keeps working, and the FORCE-RLS
|
|
14
|
+
-- posture of `slack_bot_user_links` and `slack_interactions` is unchanged.
|
|
15
|
+
SET LOCAL lock_timeout = '5s';
|
|
16
|
+
SET LOCAL statement_timeout = '10min';
|
|
17
|
+
|
|
18
|
+
ALTER TABLE "slack_bot_user_links"
|
|
19
|
+
ADD COLUMN "first_task_hint_interaction_id" uuid;
|
|
20
|
+
|
|
21
|
+
-- The rendered decision is frozen on the interaction itself, not recomputed per
|
|
22
|
+
-- delivery. `slack_bot_post_operations` binds one operation id to one request
|
|
23
|
+
-- digest that includes the message text, so an acknowledgement replayed after a
|
|
24
|
+
-- crash, a lost provider response, or a replica race must re-render byte for
|
|
25
|
+
-- byte. NULL means "not resolved yet"; once written the value never changes, so
|
|
26
|
+
-- rendering is a pure function of durable state even if the identity is later
|
|
27
|
+
-- unlinked and relinked.
|
|
28
|
+
ALTER TABLE "slack_interactions"
|
|
29
|
+
ADD COLUMN "first_task_hint" boolean;
|