Skip to content

trunk-merge/pr-124218/e7b63e5e-40db-43e4-aff4-f1859f611b7c - #124265

Closed
trunk-io[bot] wants to merge 131 commits into
masterfrom
trunk-merge/pr-124218/e7b63e5e-40db-43e4-aff4-f1859f611b7c
Closed

trunk-io[bot] wants to merge 131 commits into
masterfrom
trunk-merge/pr-124218/e7b63e5e-40db-43e4-aff4-f1859f611b7c

Conversation

@trunk-io

@trunk-io trunk-io Bot commented Oct 27, 2026

Copy link
Copy Markdown
Trunk Merge Pull Request Banner

This pull request was created and is being managed by Trunk Merge.

This pull request is based on the master branch at SHA a9bd34eb85f250b6177985a66954feffacc67b93.

See more details about each PR in the batch here:

When CI completes, this pull request will be closed automatically.

Pull Requests Being Tested

This pull request is testing a batch with the changes from pull requests 124218, 123419, 123938, and 123999 - batching documentation.

Dependencies

This pull request depends on the changes from pull requests 124125, 122639, 124028, 123708, 122978, 124226, 121966, 123512, 121720, 123456, 124023, 123983, 124039, 124042, 124157, 123897, 123927, 124204, 124198, and 123698.

dmarchuk and others added 30 commits October 21, 2026 23:31
Include and exclude on a custom column cell used the column's label as the
filter key. Once a column was renamed, that key named no attribute, so
exclude removed no rows and include returned no logs.

customColumnFilterTarget now reads the key and type from the column
expression: the attributes. and resource_attributes. shorthands, the
"Add as column" lookup expression, and a bare service_name column. Other
HogQL keeps the label, as before. The popover's add/remove column toggle
still keys on the label.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 updated
Run: 42023344-91b7-4f07-b684-5ae8fad7ec9d

Co-authored-by: lricoy <2034367+lricoy@users.noreply.github.com>
2 updated
Run: 84cd4ff0-f6b0-4106-a717-ebb59d363e55

Co-authored-by: lricoy <2034367+lricoy@users.noreply.github.com>
# Conflicts:
#	products/aeo/mcp/tools.yaml
#	products/web_analytics/frontend/contentAutopilot/ContentAutopilot.stories.tsx
#	services/mcp/src/tools/generated/aeo.ts
# Conflicts:
#	products/aeo/mcp/tools.yaml
#	products/web_analytics/frontend/contentAutopilot/ContentAutopilot.stories.tsx
#	services/mcp/src/tools/generated/aeo.ts
# Conflicts:
#	services/mcp/tests/unit/tool-filtering.test.ts
…etail

# Conflicts:
#	frontend/src/initKea.ts
#	products/aeo/README.md
#	products/aeo/backend/facade/api.py
#	products/aeo/backend/facade/contracts.py
#	products/aeo/backend/presentation/views.py
#	products/aeo/backend/test/test_api.py
#	products/aeo/mcp/tools.yaml
#	products/web_analytics/frontend/contentAutopilot/ContentAutopilotPrompts.tsx
#	products/web_analytics/frontend/contentAutopilot/contentAutopilotStoryFixtures.ts
#	products/web_analytics/frontend/contentAutopilot/utils.ts
#	products/web_analytics/frontend/generated/api.schemas.ts
#	products/web_analytics/frontend/generated/api.ts
#	services/mcp/schema/generated-tool-definitions.json
#	services/mcp/schema/tool-definitions-all.json
#	services/mcp/src/api/generated.ts
#	services/mcp/src/generated/aeo/api.ts
#	services/mcp/src/tools/generated/aeo.ts
# Conflicts:
#	products/aeo/backend/test/test_api.py
#	products/aeo/mcp/tools.yaml
#	products/web_analytics/frontend/contentAutopilot/ContentAutopilotPromptChecks.tsx
#	services/mcp/schema/generated-tool-definitions.json
#	services/mcp/schema/tool-definitions-all.json
…ricoy/aeo-prompt-versions

# Conflicts:
#	products/aeo/mcp/tools.yaml
trunk-io Bot added 26 commits October 27, 2026 17:21
@tests-posthog

tests-posthog Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

🤖 CI report

⚠️ Django migration SQL — 2 new migrations to review

We've detected new migrations on this PR. Review the SQL output for each migration:

posthog/migrations/1414_remove_filesystem_rows_for_deleted_insights.py

/home/runner/work/tmp/tool_cache/Python/3.14.7/x64/lib/python3.14/site-packages/anyio/from_thread.py:119: SyntaxWarning: 'return' in a 'finally' block
  return result
2026-10-27T17:34:43.832336Z [error    ] Path must be a valid database or directory containing databases. [posthog.exceptions_capture] pid=7093 tid=140694000008064
Traceback (most recent call last):
  File "/home/runner/work/posthog/posthog/posthog/geoip.py", line 15, in <module>
    geoip: Optional[GeoIP2] = GeoIP2(cache=8)
                              ~~~~~~^^^^^^^^^
  File "/home/runner/work/tmp/tool_cache/Python/3.14.7/x64/lib/python3.14/site-packages/django/contrib/gis/geoip2.py", line 116, in __init__
    raise GeoIP2Exception(
        "Path must be a valid database or directory containing databases."
    )
django.contrib.gis.geoip2.GeoIP2Exception: Path must be a valid database or directory containing databases.
/home/runner/work/tmp/tool_cache/Python/3.14.7/x64/lib/python3.14/site-packages/sshtunnel.py:1040: SyntaxWarning: 'return' in a 'finally' block
  return (ssh_host,
/home/runner/work/tmp/tool_cache/Python/3.14.7/x64/lib/python3.14/site-packages/langchain_core/_api/deprecation.py:27: UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater.
  from pydantic.v1.fields import FieldInfo as FieldInfoV1
System check identified some issues:

WARNINGS:
?: (axes.W001) You are using the django-axes cache handler for login attempt tracking. Your cache configuration is however invalid and will not work correctly with django-axes. This can leave security holes in your login systems as attempts are not tracked correctly. Reconfigure settings.AXES_CACHE and settings.CACHES per django-axes configuration documentation.
?: (staticfiles.W004) The directory '/home/runner/work/posthog/posthog/frontend/dist' in the STATICFILES_DIRS setting does not exist.
--
-- Raw Python operation
--
-- THIS OPERATION CANNOT BE WRITTEN AS SQL

products/aeo/backend/migrations/0007_citation_check_brand_sentiment.py

2026-10-27T17:35:34.409945Z [error    ] Path must be a valid database or directory containing databases. [posthog.exceptions_capture] pid=8406 tid=139908726303616
Traceback (most recent call last):
  File "/home/runner/work/posthog/posthog/posthog/geoip.py", line 15, in <module>
    geoip: Optional[GeoIP2] = GeoIP2(cache=8)
                              ~~~~~~^^^^^^^^^
  File "/home/runner/work/tmp/tool_cache/Python/3.14.7/x64/lib/python3.14/site-packages/django/contrib/gis/geoip2.py", line 116, in __init__
    raise GeoIP2Exception(
        "Path must be a valid database or directory containing databases."
    )
django.contrib.gis.geoip2.GeoIP2Exception: Path must be a valid database or directory containing databases.
/home/runner/work/tmp/tool_cache/Python/3.14.7/x64/lib/python3.14/site-packages/langchain_core/_api/deprecation.py:27: UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 or greater.
  from pydantic.v1.fields import FieldInfo as FieldInfoV1
System check identified some issues:

WARNINGS:
?: (axes.W001) You are using the django-axes cache handler for login attempt tracking. Your cache configuration is however invalid and will not work correctly with django-axes. This can leave security holes in your login systems as attempts are not tracked correctly. Reconfigure settings.AXES_CACHE and settings.CACHES per django-axes configuration documentation.
?: (staticfiles.W004) The directory '/home/runner/work/posthog/posthog/frontend/dist' in the STATICFILES_DIRS setting does not exist.
BEGIN;
--
-- Add field brand_sentiment to aeocitationcheck
--
ALTER TABLE "posthog_aeo_citation_check" ADD COLUMN "brand_sentiment" varchar(16) NULL;
--
-- Add field brand_sentiment_score to aeocitationcheck
--
ALTER TABLE "posthog_aeo_citation_check" ADD COLUMN "brand_sentiment_score" double precision NULL;
COMMIT;

Last updated: 2026-10-27 17:35 UTC (0f44307)

✅ Django migration risk — migration analysis complete

We've analyzed your migrations for potential risks.

Summary: 1 Safe | 1 Needs Review | 0 Blocked

⚠️ Needs Review

May have performance impact

posthog.1414_remove_filesystem_rows_for_deleted_insights
  └─ #1 ⚠️ RunPython: RunPython data migration needs review for performance

✅ Safe

Brief or no lock, backwards compatible

aeo.0007_citation_check_brand_sentiment
  └─ #1 ✅ AddField
     Adding nullable field requires brief lock
     model: aeocitationcheck, field: brand_sentiment
  └─ #2 ✅ AddField
     Adding nullable field requires brief lock
     model: aeocitationcheck, field: brand_sentiment_score

📚 How to Deploy These Changes Safely

AddField:

This operation acquires a brief lock but doesn't rewrite the table.

Deployment uses lock timeouts with automatic retries, so lock contention will cause retries rather than connection pile-up.

RunPython:

Use batching for large data migrations:

  • Use .iterator() to avoid loading all rows into memory
  • Use .bulk_update() instead of saving individual objects
  • Batch size: 1,000-10,000 rows per batch
  • Add pauses between batches
  • Consider background jobs for very large updates (millions of rows)

See the migration safety guide

Last updated: 2026-10-27 17:36 UTC (0f44307)

@trunk-io trunk-io Bot closed this Oct 27, 2026
@trunk-io
trunk-io Bot deleted the trunk-merge/pr-124218/e7b63e5e-40db-43e4-aff4-f1859f611b7c branch October 27, 2026 17:49
@trunk-io

trunk-io Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Author

Static Badge   Static Badge   Static Badge

View Full Report ↗︎ ⋅ Docs

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.