Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
482 commits
Select commit Hold shift + click to select a range
7386f06
chore(devex): run backend test selection on ready PRs, not just drafts
webjunkie Aug 19, 2026
40decdb
docs(aio): correct the tool contract claims in exploring-ai-failures
carlos-marchal-ph Aug 19, 2026
bb62846
fix(replay-vision): widen the read-meter execution timeout for the ad…
TueHaulund Aug 19, 2026
b702188
Merge remote-tracking branch 'origin/master' into chore/devex-backend…
webjunkie Aug 19, 2026
5cf9038
fix(cdp): migrate the legacy linkedin hog shape to 202607 too
mayteio Aug 19, 2026
4ecefaa
fix(aio): trace evaluation model usage
benjackwhite Aug 19, 2026
2a6e5c3
fix(tasks): scope task usage costs to team
adboio Aug 19, 2026
74a3a6a
test(llm-gateway): cover failed request attribution
adboio Aug 19, 2026
c1b3c77
fix(aio): keep attributed traces private
benjackwhite Aug 19, 2026
2684a63
chore(desktop): correct gateway scope documentation
adboio Aug 19, 2026
69d752e
Merge branch 'master' into posthog/log-blobless-clone-decision
tatoalo Aug 19, 2026
7ea2f0c
Merge branch 'master' into fix/remove-workflow-push-usage-type
pawel-cebula Aug 19, 2026
30e9012
fix(dwh-source-clever): disable HTTP sample capture via shared client…
Gilbert09 Aug 19, 2026
55a7083
chore(visual): update storybook baselines
posthog[bot] Aug 19, 2026
1f336a8
fix(canvas): scope full-height guidance to artifacts
k11kirky Aug 19, 2026
fff3c99
fix(data-warehouse): cast get_resource() result in HitPay tests for mypy
Gilbert09 Aug 19, 2026
db2ec62
fix(desktop): do not count a failed reconnect as connect abandonment
adboio Aug 19, 2026
3215a6a
feat(flags): warn when a fractional rollout breaks local evaluation
patricio-posthog Aug 19, 2026
d096fc4
fix(data-warehouse): use @frozen for BlueskyResumeConfig
Gilbert09 Aug 19, 2026
ea4ddd0
chore(visual): update storybook baselines
posthog[bot] Aug 19, 2026
e32e4b1
chore(warehouse-sources): return a dataclass from _parse_oauth_error
estefaniarabadan Aug 19, 2026
364f62f
fix(data-warehouse): unfreeze VendrEndpointConfig for FanoutEndpointL…
Gilbert09 Aug 19, 2026
bd6adf4
fix(data-warehouse): declare frozen= on Dynamics365BusinessCentralRes…
Gilbert09 Aug 19, 2026
9cec0a8
feat(tasks): drive the pr follow-up loop from a per-item pr snapshot
tatoalo Aug 18, 2026
422577f
fix(aio): satisfy attribution CI checks
benjackwhite Aug 19, 2026
b5a358c
fix(data-warehouse): drop asaas/tests/__init__.py to avoid a top-leve…
Gilbert09 Aug 19, 2026
cd2ef83
fix(tasks): normalize task usage team ids
adboio Aug 19, 2026
ff18661
fix(slack-app): ignore mentions glued to a package path
marandaneto Aug 19, 2026
50e9543
Merge branch 'master' into tom/ws-comment-audit
Gilbert09 Aug 19, 2026
bb17025
refactor(insights): page the bulk filter apply by keyset
GeneralistDev Aug 19, 2026
d9505cd
chore(desktop): resolve conflicts with master
jonathanlab Aug 19, 2026
5ba8c11
fix(data-warehouse): bound Meteostat station-id parsing and fix HTTPE…
Gilbert09 Aug 19, 2026
96794d7
test(dwh-source-clever): cover capture=False on the resource client s…
Gilbert09 Aug 19, 2026
8a99883
chore(desktop): sync with master
jonathanlab Aug 19, 2026
bae5439
chore(visual): update storybook baselines
posthog[bot] Aug 19, 2026
d342e93
Merge remote-tracking branch 'origin/master' into experiments/ratio-m…
jurajmajerik Aug 19, 2026
697eae7
fix(replay-vision): derive estimate-staleness test ages from the cons…
TueHaulund Aug 19, 2026
042eae9
Merge remote-tracking branch 'origin/experiments/ratio-metric-zero-de…
jurajmajerik Aug 19, 2026
56073f8
feat(billing): expose read-only billing MCP tools
pawel-cebula Aug 6, 2026
0062987
chore(billing): sync MCP billing tool descriptions
pawel-cebula Aug 7, 2026
ff80d8a
fix(billing): sync MCP usage type docs
pawel-cebula Aug 7, 2026
218ce89
fix(billing): remove unsupported workflow push filter
pawel-cebula Aug 7, 2026
26b8d9e
feat(billing): gate billing MCP read tools
pawel-cebula Aug 7, 2026
b5ec426
chore: update OpenAPI generated types
tests-posthog[bot] Aug 7, 2026
f79dd1a
fix(billing): default MCP usage windows
pawel-cebula Aug 8, 2026
7f5b1c7
test(mcp): update unit test snapshots
tests-posthog[bot] Aug 8, 2026
a6eb8a8
chore: update OpenAPI generated types
tests-posthog[bot] Aug 8, 2026
43e4df8
fix(billing): enforce billing access for MCP reads
pawel-cebula Aug 9, 2026
2343a66
test(mcp): update unit test snapshots
tests-posthog[bot] Aug 9, 2026
abb5c5a
chore: update OpenAPI generated types
tests-posthog[bot] Aug 9, 2026
4f77744
fix(billing): address MCP read tool CI
pawel-cebula Aug 9, 2026
98476d0
fix: keep billing pricing fields in MCP overview
pawel-cebula Aug 10, 2026
524d6c7
chore(billing): refresh generated billing schema
pawel-cebula Aug 10, 2026
20d8bcc
fix(billing): type usage customer id as number
pawel-cebula Aug 10, 2026
a72d013
fix(billing): clarify billing MCP breakdowns
pawel-cebula Aug 11, 2026
f698a9f
test(mcp): update unit test snapshots
tests-posthog[bot] Aug 11, 2026
2b096df
chore: update OpenAPI generated types
tests-posthog[bot] Aug 11, 2026
92ae3e6
fix(billing): reject cross-org billing team filters
pawel-cebula Aug 11, 2026
e3407a6
test(mcp): sync billing tool schema snapshots
pawel-cebula Aug 11, 2026
fd0cd7d
fix(billing): harden billing MCP tools
pawel-cebula Aug 18, 2026
7459b8c
test(mcp): update unit test snapshots
tests-posthog[bot] Aug 18, 2026
0ad0be8
chore: update OpenAPI generated types
tests-posthog[bot] Aug 18, 2026
361f776
fix(billing): share usage type labels
pawel-cebula Aug 18, 2026
b7294bb
test(mcp): drop stale billing snapshots
pawel-cebula Aug 18, 2026
0536671
chore: refresh billing generated schema
pawel-cebula Aug 18, 2026
4281a03
test: update MCP feature flag count
pawel-cebula Aug 19, 2026
a2033ee
fix(mysql): restrict arrow schema to columns the read returned
Gilbert09 Aug 19, 2026
6550b39
Merge branch 'master' into posthog/flag-evaluations-default-columns
haacked Aug 19, 2026
d93446a
Merge branch 'master' into tom/dwh-source-moxie
Gilbert09 Aug 19, 2026
d3c3919
Merge branch 'master' into tom/dwh-source-apple_search_ads
Gilbert09 Aug 19, 2026
29d2130
Merge branch 'master' into tom/dwh-source-apple_search_ads
Gilbert09 Aug 19, 2026
d9bd07b
fix(replay-vision): drop the pre-split total fallback from the materi…
posthog[bot] Aug 19, 2026
40e1505
Merge branch 'master' into tom/dwh-source-moxie
Gilbert09 Aug 19, 2026
1f4a5c1
fix(flags): warn about fractional rollouts regardless of evaluation r…
patricio-posthog Aug 19, 2026
d98dcd4
Merge branch 'master' into posthog/fix-bigquery-temporary-dataset-rea…
kyleswank Aug 19, 2026
e93998a
Merge branch 'master' into posthog/fix-homepage-grid-limit
MattPua Aug 19, 2026
168b6a8
fix(replay-vision): harden auto-materialize candidate selection
TueHaulund Aug 19, 2026
41141e3
chore(flags): nest the fractional rollout tests under one describe
patricio-posthog Aug 19, 2026
52f3eb3
Merge branch 'master' into tom/dwh-source-vendr
Gilbert09 Aug 19, 2026
4bde4cf
chore(slack-app): record word count on a path-mention drop
marandaneto Aug 19, 2026
0eafeab
fix(data-warehouse): drop asaas/tests/__init__.py to avoid a top-leve…
Gilbert09 Aug 19, 2026
5456bb2
diagnostic: temporarily mark asaas/tests/__init__.py content
Gilbert09 Aug 19, 2026
acae96e
fix(data-warehouse): remove asaas/tests/__init__.py (module-name coll…
Gilbert09 Aug 19, 2026
9925533
Merge branch 'master' into tom/dwh-source-dynamics_365_business_central
Gilbert09 Aug 19, 2026
def935b
fix(data-warehouse): narrow Optional before `in` check in HitPay test
Gilbert09 Aug 19, 2026
e612f81
fix(cdp): keep configured filters when resetting a function to its te…
mayteio Aug 19, 2026
ad709d8
Merge remote-tracking branch 'origin/tue/replay-vision-auto-materiali…
TueHaulund Aug 19, 2026
9d9154e
fix(data-warehouse): declare frozen= explicitly on apple_search_ads d…
Gilbert09 Aug 19, 2026
5d0041d
fix(firebase): stop retrying Auth users sync when Firebase Auth isn't…
Gilbert09 Aug 19, 2026
c8f12d8
refactor(mysql): hoist restricted read schema out of the batch loop
Gilbert09 Aug 19, 2026
ff75387
chore(devex): stop the selector claiming migration coverage it lacks
webjunkie Aug 19, 2026
9977c74
test(dwh-source-clever): revert speculative capture=False regression …
Gilbert09 Aug 19, 2026
436f426
Merge branch 'master' into posthog/flag-evaluations-default-columns
haacked Aug 19, 2026
7a6b97c
fix(data-warehouse): remove asaas/tests/__init__.py (module-name coll…
Gilbert09 Aug 19, 2026
3c53ff5
fix(data-warehouse): remove asaas/tests/__init__.py (module-name coll…
Gilbert09 Aug 19, 2026
46c4f53
fix(data-warehouse): remove asaas/tests/__init__.py (module-name coll…
Gilbert09 Aug 19, 2026
ffc1e2e
diagnostic: add throwaway file to test deletion behavior
Gilbert09 Aug 19, 2026
da34f3c
chore: merge master
mayteio Aug 19, 2026
5be19c6
diagnostic: remove throwaway file
Gilbert09 Aug 19, 2026
1ef9dd4
fix(data-warehouse): remove asaas/tests/__init__.py (module-name coll…
Gilbert09 Aug 19, 2026
43bfec0
test(data-warehouse): narrow TypedDict unions before indexing in blue…
Gilbert09 Aug 19, 2026
ad40a04
Merge remote-tracking branch 'origin/master' into data-catalog-bulk-m…
thiagosalvatore Aug 19, 2026
e7fe39f
fix(data-warehouse): fully-qualify asaas's test module to avoid colli…
Gilbert09 Aug 19, 2026
e64fed2
fix(cdp): type the reset-to-template test fixtures
mayteio Aug 19, 2026
108e299
chore(slack-app): hoist the test import to module scope
marandaneto Aug 19, 2026
17a6c85
fix(dwh-source-clever): only forward capture kwarg when non-default
Gilbert09 Aug 19, 2026
419fcc6
fix(signals): send tab badge counts on every cloud inbox viewed event
andrewm4894 Aug 19, 2026
d8aeb3f
fix(flags): pluralize and trim the fractional rollout warning
patricio-posthog Aug 19, 2026
1ab52c9
Merge branch 'master' into tom/dwh-repartition-hold
Gilbert09 Aug 19, 2026
8739e86
chore(data-catalog): move data catalog from alpha to beta
thiagosalvatore Aug 19, 2026
4f8646f
Merge remote-tracking branch 'origin/master' into data-catalog-beta-b…
thiagosalvatore Aug 19, 2026
5f59a74
fix(data-warehouse): replace tuple return with ReportWindow dataclass…
Gilbert09 Aug 19, 2026
d2d31a6
Merge branch 'master' into tom/dwh-source-apple_search_ads
Gilbert09 Aug 19, 2026
5dd6d70
feat(dashboards): add tile spacing presets
MattPua Aug 19, 2026
ea361eb
test(mcp): update unit test snapshots
MattPua Aug 19, 2026
bd7dea0
fix(dashboards): rename tile spacing to density
MattPua Aug 19, 2026
b0cbef5
chore: update OpenAPI generated types
MattPua Aug 19, 2026
55de97b
feat(dashboards): track non-default tile density
MattPua Aug 19, 2026
38e9490
chore(dashboards): rename customization feature flag
MattPua Aug 19, 2026
b0680ec
test(mcp): update unit test snapshots
MattPua Aug 19, 2026
473ff47
fix(dashboards): type tile density serializer choices
MattPua Aug 19, 2026
113437d
fix(dashboards): relax dense tile presets
MattPua Aug 19, 2026
deffac5
test(backend): update query snapshots
MattPua Aug 19, 2026
231f46c
fix(dashboards): correct dashboard customization test response
MattPua Aug 19, 2026
8b9dfb3
test(backend): update query snapshots
MattPua Aug 19, 2026
30f928d
fix(batch-exports): avoid temporal visibility wait in delete test
MattPua Aug 19, 2026
8af91a7
revert(batch-exports): avoid temporal visibility wait in delete test
MattPua Aug 19, 2026
670dbaf
Merge branch 'master' into chore/cimd-namespace-optional-scopes
rafaeelaudibert Aug 19, 2026
f9378fb
Merge branch 'master' into tom/dwh-source-dynamics_365_business_central
Gilbert09 Aug 19, 2026
161623f
fix(signals): rename inbox badge properties to pulls_tab_count and re…
andrewm4894 Aug 19, 2026
92408e7
Merge branch 'master' into posthog/gate-report-canvas-workflow
dmarticus Aug 19, 2026
85718c6
fix(signals): treat an in-flight inbox badge refresh as unsettled
andrewm4894 Aug 19, 2026
a237689
chore(devex): carry the legacy-cascade cause into selection telemetry
webjunkie Aug 19, 2026
b1d4e9c
Merge branch 'master' into tom/dwh-source-asaas
Gilbert09 Aug 19, 2026
b4dc496
Merge branch 'master' into tom/dwh-source-vendr
Gilbert09 Aug 19, 2026
ed979e8
Merge branch 'master' into posthog/fix-firebase-auth-config-not-found
Gilbert09 Aug 19, 2026
674c530
Merge branch 'master' into posthog/fix-mysql-schema-drift-keyerror
Gilbert09 Aug 19, 2026
24597a8
Merge branch 'master' into tom/ws-comment-audit
Gilbert09 Aug 19, 2026
e17abc8
Merge branch 'master' into tom/dwh-source-meteostat
Gilbert09 Aug 19, 2026
9da5d48
Merge branch 'master' into experiments/ratio-metric-zero-denominator
jurajmajerik Aug 19, 2026
6f6e92e
Merging 16e4672c68e5c960c6d188339cc539d9571334d3 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
405161d
Merging 1f336a8195907415829953571f322c78fec709f6 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
2edf33a
Merging 405161d1c87c7f1b32c022fc85e8958db1cdc82a into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
625bfbe
Merging 7ea2f0ca5211ee7c0a28cf085d2b562387ac1430 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
cf01c81
Merging 1ce71b4af8a70133dbaf186105722910e79f9df6 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
cec6ca9
Merging cf01c81a305174af5a5cc9c4198eae08f76c46ef into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
08bd466
Merging ea4ddd08dfe9d5ae88de0732317d4dd1e59b4b45 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
7a73173
Merging 52dfedec016834caf3dfef5b6386cf4186e24769 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
f362a70
Merging 7a731737d77a056d40db694c20f59c32b9ce5bd3 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
fe0d2d2
Merging db2ec623e0b46c81a9c09da1d152ad3e2bff50c2 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
9bbfa90
Merge branch 'master' into fix/codex-mcp-store-server-names
cvolzer3 Aug 19, 2026
e258eaa
fix(llm-gateway): give GLM 5.3 its own model access flag
tatoalo Aug 19, 2026
aa13cf6
chore: drop comments added with the GLM 5.3 access flag change
tatoalo Aug 19, 2026
80010f6
fix(desktop): render GLM 5.3 like GLM 5.2 across both harnesses
tatoalo Aug 19, 2026
ba3bccd
Merge branch 'master' into posthog/log-blobless-clone-decision
tatoalo Aug 19, 2026
90251bb
Merging 9e98bcafb2af0b843e6794cccd3dc1894305dc18 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
d53abb4
Merging fe0d2d296f6f60aa913e5e2ed2bbbfa1d7ad39f2 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
ee44c28
Merging 9cec0a83e8ee397742912d95ad2709e2dacb3c94 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
6f3cf4e
Merging cd2ef830c948d2534d89e803b3cd275b1a5cb502 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
ad79f08
Merging 6f3cf4e2dac667288acbdd9badb3062d20bd818d into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
be6adc6
Merging 5b974a7a40ab0c6f3e980a97c13eb095eb6e838c into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
1cde186
Merging 5caf7b092aeb3b960fa98018bd9b469f9e8fb6f5 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
cb7763e
Merging 1cde18643d2d0686636d45e3f825b751a51e88f8 into trunk-temp/pr-7…
trunk-io[bot] Aug 19, 2026
fb6b2e3
Merging 4281a03ba6dabf45a6de2a0de6bb1f9617001e12 into trunk-temp/pr-7…
trunk-io[bot] Aug 19, 2026
073f7a9
Merging 8a99883acce2b359cd0b1c6cd768a492d3454294 into trunk-temp/pr-7…
trunk-io[bot] Aug 19, 2026
5784b32
Merging 073f7a9692b6734f83561547cb8e7a29ea3ae9b2 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
0a9e650
Merging 40e1505ec2303d3e48443e3a32653a7eba3d2ede into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
1f0075d
Merging 67cfb6df2615a66721d9902a46a8a9f39a04f3f6 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
88edbf0
Merging 073f7a9692b6734f83561547cb8e7a29ea3ae9b2 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
e6ede4e
Merging 85209d67d6f5ed4fd36a27d45fe0c7a8d7c9daad into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
43fbb10
Merging 1f0075dc0608c36fe9586246bcb3442f6d9bbc58 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
de144ad
Merging e32e4b1a67c0f0ae86fb699cf5d986969f704282 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
7d74887
Merging 422577fc41fb7448268247a5e0974aed14073704 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
6c9d6a9
Merging 7d7488733dd00a4855d0bc9e2430d0d571bd0e46 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
8ad1c63
Merging def935bda66e760a58eddd6ff2892842b7646519 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
3ceeb7d
Merging a4cc7fc891f2e4b349cd56e91035d12afbd864b0 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
0d8cb46
Merging 3ceeb7df4c62f61875c3d0c4ba8b6fb1477130fa into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
7142082
Merging e6ede4e015b6235357695d5263dc298966ba58f9 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
9f80f78
Merging bb17025b6f25f809a7e82b67cc6a54919544c5fc into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
3708a15
Merging e93998a98e103523f5d86adaf5c12b68cc35f6e2 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
0dbf3a2
Merging 3708a15d6e18ba194d7d9ec93271496da6ab0ca9 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
d9f2996
Merging 90251bb093f555c0516a163549c2ba55d3be4ab3 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
8e55ae2
Merging 5cf903851070a88c6793701de9f253b9521aab87 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
27ab0fc
Merging 436f426730cf1eb316d4c1d36f85996d142d8125 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
87d86df
Merging 27ab0fc8794c0d4f25c0b8e5a3e6ce53878848cf into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
b7bca28
Merging 43bfec0e62cabab1e8cf3ed68b24220e8d76e3f1 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
27e32d5
Merging 55f3101b3ae6ea0f22753b864a77b18e498c0b47 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
651bbcc
Merging 27e32d503d62d3bc097d64e0b65bc83a875cf31c into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
7d2c68d
Merging d98dcd4775f49cdba2fbd0ed76a33e1b3395e745 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
37f9ca2
Merging ad709d8f66fe2e92fa1d634a573dbba956e9d8bb into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
1fbd627
Merging 37f9ca261e7a681c6c08c00d5806db963c5c0873 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
75e975b
Merging 40decdb0c8008dafcf5b2a7311ade1f88b6e51b2 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
43d26b0
Merging 37f9ca261e7a681c6c08c00d5806db963c5c0873 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
48e0983
Merging 75e975b5b91224bc391527b53130849046577452 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
7d9d5e4
Merging ad40a041ac2859b566fd689c6b40ff9bf4909ee8 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
a409890
Merging 17a6c85cf5f6cdbf35a5fc77b523f6cb0616b7d3 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
98e4820
Merging a409890808ffa83892f1b28bc26d2906034e5371 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
848a312
Merging 1ab52c9034d0a62c76d1116705cc9ad626f4846b into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
9e8dea0
Merging 92408e79453465d3be11dea7150ae75419e44835 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
642c1d3
Merging 9e8dea0311858739d23e33ecf878f55fa50775e1 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
fea2232
Merging d8aeb3f268d0cd0c80187ef75c817bc9723b7a24 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
dca72ee
Merging e64fed2badf764dd40becadc28892761e24bf9b5 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
a298c8f
Merging dca72ee25f358e5165a397568ced98b2ffea99a3 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
ec84d2a
Merging 108e299b1345439af14f4ef357ecb273deef8e85 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
1be2012
Merging a237689fcde7939d0ddb43e81a0a16c69534e3e8 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
f29cc2f
Merging 1be2012e25d90ae523563d8c9ac4f34780d0a8b0 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
21eef01
Merging 670dbaf96407fb42a48acd791f5d88d6b766151b into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
9d61260
Merging 8af91a7554f46fdf245e7418bee97fd1275d8c6b into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
fa3d2f9
fix(data-warehouse): hide apple_search_ads private_key from dataclass…
Gilbert09 Aug 19, 2026
fa44bee
Merging 9d612606e85fafa98b6627553f103898e2b474f9 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
1f2d1be
Merging aed522a47c827db0e4ba7e98764e809c41879a35 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
7524178
Merging 4f8646fa62687cea3b2ecfcb862db7d6f6887986 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
5093c6a
Merging 75241789fbb52dc9d7519ab738c1afb081bfb445 into trunk-temp/pr-7…
trunk-io[bot] Aug 19, 2026
de56f79
Merging f9378fb8ff69e14821dc4ee3129a20ca9706d2f9 into trunk-temp/pr-7…
trunk-io[bot] Aug 19, 2026
0a09230
Merging ed979e85288f77728d6f9e9eca656ed2f5d79f5b into trunk-temp/pr-7…
trunk-io[bot] Aug 19, 2026
aca0499
chore(devenv): trim manifest comment
rnegron Aug 19, 2026
5a41153
fix(data-warehouse): pin Asaas API client off cross-host redirects
Gilbert09 Aug 19, 2026
0c94e74
Merging 0a09230280a4bb4a6376010c19de61c9e20f462c into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
9585025
Merging da34f3ce19c446dee3c5cc44a099eb136aa90512 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
4794772
Merging 85718c67dfe0070cb08a301837424ee279d47fb1 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
7acb223
Merging 479477255be5b40db4d8d78b756cbf7a73b46b53 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
1290150
Merging b4dc49660a1d9116e4308a05b572bfcf58f8a3fd into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
6bdd74d
Merging 24597a8a7f96e96377d79fc570d39e6f1a3a5499 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
f948628
Merging 479477255be5b40db4d8d78b756cbf7a73b46b53 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
310bf07
Merging 9bbfa90b86e9d2c9286cba34d90cb196be3d6f13 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
16f1aa2
Merging 6bdd74d2b23d4da5fd51f609ba85069d756f679b into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
e41a64a
Merging 4b6411a367e29b61535f1daeec702a439b7e264c into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
7a30404
Merging e17abc848aa6ef39a8ccce762a5b5c5ce1ece690 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
32725ef
Merging 7a30404e08e2952827847a3f2dfdf1c239d24cea into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
ddd3763
Merging 674c5306dacadee9785eb32e22e646eb10c6f1cb into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
73a597a
Merging 940a76666f4cdf8348a77ba2d7d4ead576293396 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
dd0d5a3
Merging 73a597a2c903b2b76138336511db700e9d3a9e55 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
e6b4d2f
Merging 310bf07a4144764feb29dcc9d594b63ba7f59cdb into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
f0aa4fb
Merging 4e66fbb03ca92396b28cefbca52d977be1545100 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
5e9bd3e
Merging aee551c891b672b5346bd4e2ddd33b694eb4158d into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
471e8e2
Merging 5e9bd3efad7478121fe351332f89aa481ba72605 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
7f4a133
Merging 9da5d480dd12691f207c82d082c008617639201a into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
5686083
Merging 8d22216da36a787ee7c579dbe6a1b26b50615194 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
1993c9f
Merging 5686083798d24fcbfbe90a7ccf6b44d9080fda33 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
afc6395
Merging 8fd51499c72074e8b8032307b7e7ac4eb9a5a7f8 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
0b7deb7
Merging ba3bccdae86367ab7971cfd9667664e0a56cfb04 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
2bafa80
Merging 5686083798d24fcbfbe90a7ccf6b44d9080fda33 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
0c0c9df
Merging 0b7deb7625751f80d4fa312048190788766c68e7 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
d44db78
Merging 80010f6e60910783a1fbeb30565cd27959db1827 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
6eeea36
Merging aca04994274c67f1b49357680173a8c60a740ab0 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
6836e4b
Merging 6eeea36f8b1b860918b157e5deef4013071fddea into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
5370a23
Merging 4a0f19622047bc9ec1bc26c3de608ee151814502 into trunk-temp/pr-8…
trunk-io[bot] Aug 19, 2026
f41d8e4
Merging 5370a23d39deba857c5e189c2a2af3b133824ccc into trunk-temp/pr-7…
trunk-io[bot] Aug 19, 2026
896e130
Merging fa3d2f9cb6229ef775976a836a4b71cc8107e66a into trunk-temp/pr-7…
trunk-io[bot] Aug 19, 2026
df7bd98
Merging 5a411537a2b8a0b17eb3fd25d3835dfc5a557224 into trunk-temp/pr-7…
trunk-io[bot] Aug 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 102 additions & 0 deletions .agents/skills/extending-hobby-smoke-tests/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
---
name: extending-hobby-smoke-tests
description: Design, extend, review, or debug PostHog Hobby end-to-end smoke tests in bin/hobby-ci.py and .github/workflows/ci-hobby.yml. Use when adding an ingestion round trip, deciding whether a product belongs in Hobby CI, changing the CI Hobby service topology or API-key scopes, or diagnosing a smoke test that captures data but cannot query it.
---

# Extending Hobby smoke tests

Treat Hobby CI as proof that a supported Hobby install works across real process boundaries. Keep each check small, strong, and limited to a stable product surface.

## Decide whether the check belongs

Add a check only when all of these are true:

- The product is supported for Hobby deployments and is no longer alpha.
- A break can leave the install apparently healthy while the product is unusable.
- The check crosses boundaries that unit or service integration tests cannot cover, such as capture, queue, consumer, storage, and query API.
- The released Hobby images and default compose topology contain every required service.
- A deterministic request and an exact read-back assertion are available.

Do not add the check when it requires a private feature flag, a CI-only service topology, or a different image registry only to make an alpha path available. Test that path at a lower layer until it becomes part of the supported Hobby install.

If the check exposes a missing service or configuration that every supported Hobby install needs, fix the install and add the check together. If the missing plumbing exists only for the proposed test, stop and reconsider the check.

## Map the round trip before editing

Write down this chain from repository evidence:

```text
public ingest endpoint -> request contract -> service/consumer -> storage -> read API -> required scope
```

Verify each link:

1. Find an existing end-to-end or receiver fixture for the ingest payload. Reuse its envelope and minimum valid data instead of inventing a plausible payload.
2. Locate the consumer command and confirm it exists in the released image used by `docker-compose.hobby.yml`.
3. Confirm the consumer is already started by the default Hobby compose files.
4. Confirm no unreleased or private feature flag is required.
5. Find the supported read API and its personal API-key scope.
6. Identify a unique value that can select only the captured object.

Do this before starting a full Hobby run. A successful HTTP capture response proves receipt, not ingestion.

## Build the smallest strong check

Change `bin/hobby-ci.py` for the round trip and `bin/hobby-ci-setup-user.py` only for the least read scope needed.

- Generate collision-resistant identifiers with UUIDs or nanosecond timestamps.
- Record the query window before capture.
- Send the smallest payload known to reach storage.
- Fail immediately on a non-success capture response and include a short response body.
- Poll the supported read API with the exact identifier.
- Require the expected stored object or value. An HTTP 200 with an empty result is not success.
- Use the existing bounded timeout and polling style.
- Preserve earlier smoke checks and return a result that names every completed round trip.
- Keep one product idea per PR when the checks can fail independently.

Avoid adding general abstractions for a single payload. Extract a helper only when it removes real repetition or gives a concept a useful name.

## Validate from cheap to expensive

Run focused checks before asking Hobby CI to create a server:

```bash
python3 -m py_compile bin/hobby-ci.py bin/hobby-ci-setup-user.py
ruff check bin/hobby-ci.py bin/hobby-ci-setup-user.py
ruff format --check bin/hobby-ci.py bin/hobby-ci-setup-user.py
git diff --check
```

When compose or installer files change, also render the final compose configuration and run the focused installer tests. Inspect the rendered image and command for every added service.

Use a PR-specific image only when the PR changes code that must be built into that image. Do not change workflow path filters or registries merely because a smoke-test-only PR needs an unreleased service.

Then run Hobby CI once and follow the exact run through image build, cloud setup, health, and ingestion. Do not restart a healthy migration phase just because it is slow.

## Read failures by boundary

Use the first failed boundary to choose the next investigation:

| Evidence | Likely boundary |
| ----------------------------------------- | ------------------------------------------------------------ |
| Capture returns 4xx | Endpoint, token, or payload envelope |
| Read API returns 401 or 403 | Personal key scope or feature access |
| Capture succeeds, exact query stays empty | Payload semantics, missing consumer, routing, or storage |
| Added container is absent or unhealthy | Released image or default compose topology |
| Query returns 200 with empty series | Not success; keep polling or strengthen the assertion |
| Earlier product checks fail too | Shared install or trunk failure, not the new assertion alone |

Pull the failed job log before editing. Confirm the hypothesis against the receiver fixture, consumer registration, compose rendering, and API implementation. Do not run another full deployment on a guessed payload.

## Review the final diff

Before publishing, prove the PR contains only what the supported round trip requires:

- No alpha-only feature flags.
- No registry or image-build changes unless product code in the PR requires a new image.
- No new service unless that service belongs in every supported Hobby install.
- No broad API scope.
- No assertion that accepts an empty response.
- No synthetic payload that lacks a known accepted fixture.

Update the PR description with the exact ingest and read-back proof. State any product intentionally excluded because it is not yet stable.
Loading
Loading