Skip to content

feat(desktop): send desktop entry points to posthog ai for non-staff - #109352

Closed
puemos wants to merge 10 commits into
masterfrom
posthog/gate-desktop-entry-points
Closed

puemos wants to merge 10 commits into
masterfrom
posthog/gate-desktop-entry-points

Conversation

@puemos

@puemos puemos commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Problem

  • Users outside PostHog see buttons, links, and promotions that open or promote PostHog Desktop, which we are phasing out.
  • PostHog staff still use Desktop, so the Desktop entry points must keep working for them.

Changes

  • Users outside PostHog now get the web version of each Desktop entry point. Where a Desktop option sat next to "PostHog AI", there is now one "PostHog" option, which opens the PostHog AI chat. Task links open the web task page.
  • A new flag, posthog-desktop-entry-points, decides which version shows. The flag is on only for people whose email contains @posthog.com, so staff see no change.
  • The table lists every place. "Flag on" screenshots show what staff see, which is also what everyone saw before this PR. "Flag off" screenshots show what everyone else sees now. All screenshots come from Storybook.
# Place Staff (flag on) Everyone else (flag off) File Flag on Flag off
1 Agent prompt button (for example error tracking stack trace) "PostHog Desktop" destination, next to "PostHog" "PostHog" destination, which opens the PostHog AI chat. "PostHog Desktop" is not in the list, and there is no second PostHog option AgentPromptButton.tsx
2 Inbox report "Implement" menu "PostHog Desktop" agent option "PostHog" option, which opens the PostHog AI chat with the prompt ImplementButton.tsx, implementationAgents.tsx
3 Rotating agent badge (MCP hint toast, MCP use case card, warehouse wizard hint) "PostHog Desktop" badge links to the Desktop site "PostHog" badge links to the PostHog AI chat AgentBadgeRotator.tsx
4 Nav panel promotion card PostHog Desktop campaign card links to the Desktop site "PostHog" card links to the PostHog AI chat navPanelProductPushAdLogic.ts, navPanelProductPushDisplay.tsx
5 Quick start setup tasks "Try PostHog Desktop" step "Try PostHog Desktop" step is not in the list. "Try PostHog AI" already covers the web productSetupRegistry.ts
6 MCP analytics empty state PostHog logo links to the Desktop site Same logo links to the PostHog AI chat MCPToolCallPreview.tsx Looks the same, only the link target changes
7 GitHub integration page "PostHog Desktop" link in the description Text mentions only Slack, because "Slack and PostHog connected" does not make sense inside PostHog github.tsx
8 Activity log agent attribution Agent task link to the Desktop bridge Link opens the web task page AgentAttribution.tsx Looks the same, only the link target changes
9 Audit log expanded row Agent task link to the Desktop bridge Link opens the web task page AuditLogTable.tsx Looks the same, only the link target changes
10 Workflow logs "View task" link to the Desktop bridge Link opens the web task page log-utils.tsx Looks the same, only the link target changes
11 Workflows list "Loop" tag links to the Desktop loop Tag links to the workflow page WorkflowsTable.tsx Looks the same, only the link target changes
12 Task detail page "Open in PostHog Desktop" button Button is hidden, because this page is already the web view of the task TaskDetailPage.tsx Button is not there
  • The /code/* bridge pages and the Desktop OAuth return page do not change. Only links from the Desktop app open them.

How did you test this code?

  • Rendered every changed surface in Storybook with the flag on and off (screenshots above), through a scratch story that is not in the commit.
  • Jest suites for AgentPromptButton, NavPanelAdvertisement, ProductSetup, the TaskTracker scene logic, and the workflow logs pass locally. The TypeScript check passes locally.
  • Not done: manual testing in the running app.

Test rationale:

  • navPanelProductPushAdLogic.test.ts checks the Desktop campaign destination for both flag values. It fails if the card sends a user outside PostHog to the Desktop site.
  • The workflow log test runs for both flag values. It fails if a task link goes to the wrong page for either group.

Release status

  • No feature flag controls this change
  • This change is behind a feature flag and is not available to users
  • This change makes a previously flagged feature available to everyone

Automatic notifications

  • Publish to changelog?

Docs update

None.

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

Agent: PostHog Desktop (Claude Code), claude-opus-5-5

  • Skills: /writing-tests, /writing-ui-components, /writing-user-facing-copy, /writing-pr-descriptions, /triaging-visual-review-runs.
  • The user first asked to gate the Desktop entry points for staff. In a later session the user asked to point them to web tasks instead of hiding them.
  • The user then asked for one "PostHog" option in place of "PostHog AI" and "New task".
  • That later session also rebased the branch on master and resolved the conflicts.
  • The flag was created in the PostHog project through the PostHog MCP.
  • The flag constant has no owner comment, because the requester asked for no code comments.

Created with PostHog Desktop

🤖 Generated with Claude Code

@puemos puemos self-assigned this Sep 30, 2026
@trunk-io

trunk-io Bot commented Sep 30, 2026

Copy link
Copy Markdown

Merging to master in this repository is managed by Trunk.

  • To merge this pull request, check the box to the left or comment /trunk merge below.

After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here

@github-actions github-actions Bot added the feature/desktop Feature Tag: Desktop label Sep 30, 2026
@coderabbitai

coderabbitai Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Important

Review skipped

We couldn't safely recover the incremental review. No full review was started, and the last reviewed checkpoint was preserved. Retry later, or explicitly request a full review by commenting @coderabbitai full review.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: PostHog/posthog/.coderabbit.yaml

Review profile: QUIET

Plan: Enterprise

Run ID: bed1d8ee-1e97-49b2-89af-e2475a5cf2ee

📥 Commits

Reviewing files that changed from the base of the PR and between 309aed7 and ced1d0c.

📒 Files selected for processing (4)
  • frontend/src/lib/components/AgentPromptButton/AgentPromptButton.test.ts
  • frontend/src/lib/components/AgentPromptButton/AgentPromptButton.tsx
  • products/posthog_ai/frontend/scenes/TaskTracker/taskTrackerSceneLogic.test.ts
  • products/posthog_ai/frontend/scenes/TaskTracker/taskTrackerSceneLogic.ts

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 1 remain after this review.


📝 Walkthrough

Walkthrough

The changes add the POSTHOG_DESKTOP_ENTRY_POINTS feature flag. Product setup tasks and several PostHog Desktop links, agent choices, campaign displays, and workflow tags now depend on the flag. A shared hook selects between code-task and task-detail URLs. Activity, audit-log, and workflow-log task links use that hook. Workflow-log tests cover both flag states.

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to ced1d

The change hides Desktop entry points and provides prompt-prefilled web task creation without automatic submission. No actionable merge-blocking issue is established; merge after normal checks pass.

Security Architecture Review

Security architecture risk: 🔵 Low · up to ced1d

Opening the new destination prefills a task rather than submitting it, and existing consent checks remain. Prefilling can nevertheless initiate sandbox preparation. Server-side authorization, isolation, and resource limits were not fully confirmed.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — The demonstrated input scope is a prompt-bearing task URL opened in the active project. Its automatic downstream effect can include sandbox preparation using the composer's selected repository. Maximum server-side tenant, repository, and resource exposure remains unverified.

Security Findings and Attack Paths

  • observed — The inspected URL receiver explicitly disables automatic submission. The added regression test asserts prefilled description, removal of ask, no active creation, and no task-create request. This counters automatic prompt execution, but does not verify backend authorization or exclude prewarming.

Trust Boundaries and Controls

  • observed — URL-controlled text crosses into a visible composer draft. Fixed-route URL construction, project-scoped navigation, opener isolation, and consent checks constrain the inspected frontend flow. Desktop and TASKS flags do not establish task or agent authorization.

Resilience and Maintainability Implications

  • observed — Existing warm-lease handling releases abandoned or late-arriving leases and transfers lease ownership during submission. Cancellation requests carry only_if_awaiting_first_message to avoid stopping an activated run. Uncertain submission outcomes deliberately leave cleanup to server recovery; enforcement of the fence and recovery was not inspected.
🚥 Pre-merge checks | ✅ 1
✅ Passed checks (1 passed)
Check name Status Explanation
Description check ✅ Passed The description clearly explains the problem, user-visible changes, feature-flag behavior, screenshots, testing, release status, documentation, and agent context. Minor template issues remain: the rel…
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Comment @coderabbitai help to get the list of available commands.

@puemos
puemos marked this pull request as ready for review September 30, 2026 18:51
@pr-assigner-resolver-posthog
pr-assigner-resolver-posthog Bot requested review from a team September 30, 2026 18:52
@pr-assigner-resolver-posthog

pr-assigner-resolver-posthog Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

👀 Auto-assigned reviewers

These soft owners were skipped because they only have minor changes here. Nothing blocks merge, so self-assign if you'd like a look:

  • @PostHog/team-growth (frontend/src/lib/components/owners.yaml)
  • @PostHog/team-self-driving (products/signals/product.yaml)
  • @PostHog/team-platform-features (frontend/src/scenes/owners.yaml)

Soft owners come from each directory's owners.yaml and each product's product.yaml (resolved nearest-file-wins). For a skipped owner, the locator is the file that decided it. Generated files and lockfiles are ignored when deciding ownership.

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

🤖 CI report

✅ Trunk lane — non-backend lane

This PR is assigned to the non-backend lane. It does not run backend Python tests and may merge in parallel with PRs in other lanes.

⚠️ Complexity (TypeScript) — 5 functions above the limit (max 30)

Cyclomatic complexity above the limit in changed typescript files (10 for production files, 15 for test files). Warn only: worth simplifying when you next touch these functions.

Function Location Complexity Limit
TaskDetailPage products/posthog_ai/frontend/scenes/TaskTracker/components/TaskDetailPage.tsx:27 30 10
AgentPromptButton frontend/src/lib/components/AgentPromptButton/AgentPromptButton.tsx:272 18 10
ProductSetupPopover frontend/src/lib/components/ProductSetup/ProductSetupPopover.tsx:58 15 10
TaskItem frontend/src/lib/components/ProductSetup/ProductSetupPopover.tsx:631 12 10
renderWorkflowLogMessage products/workflows/frontend/Workflows/logs/log-utils.tsx:38 12 10
✅ Duplication (Python) — clean

New Python code duplication introduced by this branch. Fails at 70+ tokens in app code, or 150+ tokens when both copies live in test files. Advisory while the gate proves itself: extract a shared helper instead of copying.

✅ Duplication (TypeScript) — clean

New TypeScript code duplication introduced by this branch. Fails at 70+ tokens in app code, or 150+ tokens when both copies live in test files. Advisory while the gate proves itself: extract a shared helper instead of copying.

⚠️ Bundle size — 🔺 +60.6 KiB (+0.1%)

Uncompressed size of every built .js bundle, compared against the base branch.

Total: 76.45 MiB · 🔺 +60.6 KiB (+0.1%)

File Size Δ vs base
render-query/src/render-query/render-query.js 25.51 MiB 🔺 +25.5 KiB (+0.1%)
posthog-app/_parent/products/business_intelligence/frontend/BusinessIntelligenceScene.js 96.7 KiB 🔺 +14.5 KiB (+17.7%)
posthog-app/src/scenes/saved-insights/SavedInsights.js 106.0 KiB 🔺 +13.4 KiB (+14.5%)
posthog-app/_parent/products/business_intelligence/frontend/BIWorksheetsScene.js 7.7 KiB 🔺 +7.7 KiB (new)
posthog-app/src/scenes/insights/InsightScene.js 53.7 KiB 🔺 +4.0 KiB (+8.0%)
posthog-app/src/layout/today/TodayProductsSidebar.js 3.9 KiB 🔺 +3.9 KiB (new)
posthog-app/_parent/products/alerts/frontend/views/InsightAlerts.js 13.3 KiB 🔺 +3.3 KiB (+33.4%)
posthog-app/src/layout/today/TodayToolsSidebar.js removed 🟢 -3.1 KiB (-100.0%)
posthog-app/src/layout/today/TodayLibrarySidebar.js removed 🟢 -2.4 KiB (-100.0%)
posthog-app/src/layout/today/TodayMoreSidebar.js removed 🟢 -2.0 KiB (-100.0%)
posthog-app/_parent/products/autoresearch/frontend/AutoresearchScene.js 16.0 KiB 🔺 +1.7 KiB (+11.7%)
exporter/_parent/products/workflows/frontend/Workflows/Workflow.js 126.3 KiB 🔺 +1.4 KiB (+1.1%)
exporter/src/exporter/scenes/ExporterNotebookScene.js 3.73 MiB 🔺 +1.2 KiB (+0.0%)
exporter/src/queries/schema.js 1.25 MiB 🔺 +1.2 KiB (+0.1%)
posthog-app/src/queries/schema.js 1.25 MiB 🔺 +1.2 KiB (+0.1%)
posthog-app/_parent/products/autoresearch/frontend/AutoresearchPipelineScene.js 55.5 KiB 🔺 +1.1 KiB (+2.0%)
posthog-app/src/scenes/feature-flags/FeatureFlag.js 130.5 KiB 🔺 +1.1 KiB (+0.8%)

Posted automatically by build-bundle-size-report · uncompressed bytes from dist-report

✅ Eager graph — within budget

How much code each root ships on the eager path — downloaded and parsed before the surface is interactive. Measured from the esbuild output chunks (post-tree-shake, static imports only); lazy import() / React.lazy chunks are not counted.

Root Eager (shipped) Δ vs base Budget
entry (logged-out pages, app bootstrap)
src/index.tsx
1.65 MiB · 23 files 🔺 +5.9 KiB (+0.3%) █████████░ 89.6% of 1.84 MiB
logged-out boot: index + App + bootApp (preloaded by every page, including /login)
src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
3.78 MiB · 670 files 🔺 +42.7 KiB (+1.1%) █████████░ 93.9% of 4.03 MiB
authenticated shell (every logged-in page)
src/scenes/AuthenticatedShell.tsx
7.67 MiB · 2,421 files 🔺 +16.6 KiB (+0.2%) █████████░ 92.0% of 8.34 MiB
dashboard scene
src/scenes/dashboard/Dashboard.tsx
9.91 MiB · 3,502 files 🔺 +32.0 KiB (+0.3%) █████████░ 90.8% of 10.92 MiB
today home path
src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
7.70 MiB · 2,433 files 🔺 +17.8 KiB (+0.2%) █████████░ 89.7% of 8.58 MiB
events scene
src/scenes/activity/explore/EventsScene.tsx
9.54 MiB · 3,353 files 🔺 +29.4 KiB (+0.3%) █████████░ 90.7% of 10.51 MiB
replay detail scene
src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
12.24 MiB · 4,160 files 🔺 +17.0 KiB (+0.1%) ████████░░ 77.9% of 15.72 MiB

🟢 node_modules/monaco-editor/ stays out of src/index.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/index.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/svg/ stays out of src/index.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/components/ stays out of src/index.tsx
🟢 node_modules/monaco-editor/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/layout/navigation-3000/navigationLogic.tsx stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/scenes/dashboard/dashboardLogic.tsx stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/lemon-ui/LemonMarkdown/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/components/RichContentEditor/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/components/CodeSnippet/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/taxonomy/core-filter-definitions-by-group.json stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 node_modules/monaco-editor/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/dashboards/frontend/widgets/previews/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/session-recordings/player/sessionRecordingPlayerLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 zod/v4/locales/de.js stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/svg/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/components/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/session-recordings/playlist/SessionRecordingsPlaylist.tsx stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/scenes/web-analytics/tiles/WebAnalyticsTile.tsx stays out of src/scenes/dashboard/Dashboard.tsx
🟢 src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 src/scenes/project-homepage/today/TodayReportPage.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 src/queries/Query/Query.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 src/scenes/session-recordings/playlist/SessionRecordingsPlaylist.tsx stays out of src/scenes/activity/explore/EventsScene.tsx
🟢 src/scenes/web-analytics/tiles/WebAnalyticsTile.tsx stays out of src/scenes/activity/explore/EventsScene.tsx

Largest files eagerly shipped from src/index.tsx
Size File
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
24.6 KiB ../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js
6.3 KiB ../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js
4.5 KiB ../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js
3.9 KiB ../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js
1.4 KiB ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js
1.3 KiB src/index.tsx
1.3 KiB src/RootErrorBoundary.tsx
912 B ../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js
839 B src/scenes/ChunkLoadErrorBoundary.tsx
Largest files eagerly shipped from src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
Size File
316.7 KiB ../node_modules/.pnpm/posthog-js@1.438.1_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
221.0 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
99.7 KiB src/lib/api.ts
93.3 KiB src/products.tsx
68.7 KiB src/lib/lemon-ui/icons/icons.tsx
40.7 KiB src/lib/utils/eventUsageLogic.ts
38.7 KiB ../node_modules/.pnpm/@dnd-kit+core@6.0.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@dnd-kit/core/dist/core.esm.js
33.9 KiB ../node_modules/.pnpm/kea@4.0.0-pre.6_patch_hash=139b8d1f1304f9d9da452a9a1244c94ea679dbcb85687d8999563146879fb6f5_react@18.3.1/node_modules/kea/lib/index.cjs.js
29.0 KiB ../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.js
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
Size File
316.7 KiB ../node_modules/.pnpm/posthog-js@1.438.1_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
281.0 KiB src/taxonomy/core-filter-definitions-by-group.json
221.0 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
153.7 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
112.3 KiB ../packages/quill/packages/quill/dist/index.js
99.7 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
93.3 KiB src/products.tsx
90.6 KiB ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js
Largest files eagerly shipped from src/scenes/dashboard/Dashboard.tsx
Size File
316.7 KiB ../node_modules/.pnpm/posthog-js@1.438.1_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
281.0 KiB src/taxonomy/core-filter-definitions-by-group.json
221.0 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
181.9 KiB src/queries/validators.js
153.7 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
112.3 KiB ../packages/quill/packages/quill/dist/index.js
99.7 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
93.3 KiB src/products.tsx
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
Size File
316.7 KiB ../node_modules/.pnpm/posthog-js@1.438.1_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
281.0 KiB src/taxonomy/core-filter-definitions-by-group.json
221.0 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
153.7 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
112.3 KiB ../packages/quill/packages/quill/dist/index.js
99.7 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
93.3 KiB src/products.tsx
90.6 KiB ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js
Largest files eagerly shipped from src/scenes/activity/explore/EventsScene.tsx
Size File
316.7 KiB ../node_modules/.pnpm/posthog-js@1.438.1_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
281.0 KiB src/taxonomy/core-filter-definitions-by-group.json
221.0 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
181.9 KiB src/queries/validators.js
153.7 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
112.3 KiB ../packages/quill/packages/quill/dist/index.js
99.7 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
93.3 KiB src/products.tsx
Largest files eagerly shipped from src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
Size File
316.7 KiB ../node_modules/.pnpm/posthog-js@1.438.1_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
316.0 KiB ../node_modules/.pnpm/posthog-js@1.438.1_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/rrweb.js
281.0 KiB src/taxonomy/core-filter-definitions-by-group.json
221.0 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
181.9 KiB src/queries/validators.js
153.7 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
112.3 KiB ../packages/quill/packages/quill/dist/index.js
99.7 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js

Posted automatically by check-eager-graph · sizes are eager output bytes (shipped, post-tree-shake) from the esbuild metafile · part of #32479

✅ Toolbar bundle — eager 2.23 MiB within budget

What the toolbar ships to customer pages, measured from the esbuild output (minified, post-tree-shake). The eager set is the entry plus everything statically imported from it — fetched before any feature runs; deferred chunks load lazily. The eager guardrail is 5.72 MiB. Each output file must also stay below 10 MB, where CloudFront stops compressing it. The module boundary is enforced separately by check-toolbar-graph.

Metric Size Δ vs base Budget
Eager (shipped)
entry + static imports
2.23 MiB · 19 files 🔺 +3.9 KiB (+0.2%) ████░░░░░░ 39.0% of 5.72 MiB
Deferred (lazy) 2.11 MiB · 44 files no change n/a — loads on demand
Loader dist/toolbar.js 1.2 KiB no change █░░░░░░░░░ 6.0% of 19.5 KiB
Largest eagerly-shipped chunks
Size File
858.2 KiB dist/toolbar/toolbar-app-TSGDYHMJ.css
668.3 KiB dist/toolbar/chunk-chunk-HVKW4EAF.js
259.4 KiB dist/toolbar/chunk-chunk-5UE4YDI5.js
138.2 KiB dist/toolbar/chunk-chunk-5EYH6XJC.js
131.8 KiB dist/toolbar/chunk-chunk-FDH2IBXT.js
75.2 KiB dist/toolbar/toolbar-app-XT5A5LTC.js
69.0 KiB dist/toolbar/chunk-chunk-TSAL54PB.js
35.6 KiB dist/toolbar/chunk-chunk-NANFATCZ.js
21.0 KiB dist/toolbar/chunk-chunk-EPQV7ALO.js
6.8 KiB dist/toolbar/chunk-chunk-DV7IWQNF.js

Posted automatically by check-toolbar-size · sizes are toolbar output bytes (shipped, post-tree-shake) from the esbuild metafile

✅ Dist folder size — 🔺 +1.47 MiB (+0.1%)

Total size of the built frontend/dist folder (all assets), compared against the base branch.

Total: 1004.67 MiB · 🔺 +1.47 MiB (+0.1%)

⚠️ Playwright — 1 flaky

🎭 Playwright report · View test results →

⚠️ 1 flaky test:

  • Logout in another tab results in logout in the current tab too (chromium)

These issues are not necessarily caused by your changes.
Annoyed by this section? Help fix flakies and failures and it will go green!

❌ Hogbox preview — build failed

The preview didn't come up for commit 62fb5e7. See the build log for the failing step. It'll retry on the next push.

Previews are optional and never block merging. A failure here is often a hogland or tailnet hiccup rather than anything in your PR, so the check stays green and this section is the status.

@trunk-io

trunk-io Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Static Badge   Static Badge   Static Badge

Failed Test Failure Summary Logs
Replay/Scenes/Activity Modal EventExplorerWithModalNotFound smoke-test The test timed out while waiting for a loading indicator to disappear. Logs ↗︎
Auth › Logout in another tab results in logout in the current tab too The page reload was aborted, possibly because the frame was detached. Logs ↗︎

View Full Report ↗︎ ⋅ Docs

puemos added 3 commits October 7, 2026 09:55
Hide the web app buttons, links, and promotions that open or promote PostHog Desktop behind the staff-only posthog-desktop-entry-points flag. Agent task links fall back to the web task page when the flag is off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Generated-By: PostHog Desktop
Task-Id: 67a17225-9ad9-4fe7-8f98-7158b5d82de0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Generated-By: PostHog Desktop
Task-Id: 67a17225-9ad9-4fe7-8f98-7158b5d82de0
…mpt button

When the desktop entry points flag is off and web tasks are on, the agent prompt button shows "New task". It opens /tasks/new with the prompt in the ask param, and the tasks composer prefills from it without submitting.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Generated-By: PostHog Desktop
Task-Id: 67a17225-9ad9-4fe7-8f98-7158b5d82de0
@puemos
puemos force-pushed the posthog/gate-desktop-entry-points branch from ced1d0c to 3af25d5 Compare October 7, 2026 07:55
@puemos
puemos marked this pull request as ready for review October 7, 2026 08:02
@pr-assigner-resolver-posthog
pr-assigner-resolver-posthog Bot requested a review from a team October 7, 2026 08:03
@hosthog

hosthog Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

HostHog preview — posthog-desktop-web

The previews for this PR have been torn down and no longer serve.

@parameterai

parameterai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Risk: No findings

This increment only swaps an icon component (IconSparkles → IconLogomark) in the PostHog AI agent menu entries in AgentPromptButton.tsx and implementationAgents.tsx. No link targets, flag logic, or data handling changed, so it introduces no security risk.

Sentinel reviewed 62fb5e7 · Review settings

@posthog

posthog Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

🕓 This approval covered an earlier revision. There are new visual changes to review in the newer comment below.

✅ Visual changes approved by @puemos — baseline updated in 5fdcea8.

View this run in PostHog

40 changed.

Install the Visual Review Chrome extension to see visual review results at the top of your pull requests.

40 updated
Run: 087d9888-bdab-462a-96a1-ff2cc139a145

Co-authored-by: puemos <13174025+puemos@users.noreply.github.com>
@github-actions
github-actions Bot requested a deployment to preview-pr-109352 October 7, 2026 08:25 In progress
…ing them

When posthog-desktop-entry-points is off, each desktop entry point now opens the matching web page: the implement menu and agent prompt button offer a new web task, the agent badge, GitHub integration text and MCP empty state link to PostHog tasks, the Desktop setup step opens a new web task, the Desktop push campaign links to web tasks, and the Loop tag links to the workflow page.

Generated-By: PostHog Desktop
Task-Id: ad5d6b06-884a-48d6-8082-7670eabd0f6a
@puemos puemos changed the title feat(desktop): gate posthog desktop entry points to staff feat(desktop): send desktop entry points to web tasks for non-staff Oct 7, 2026
The agent prompt button now shows one "PostHog" option, which opens the PostHog AI chat, in place of "PostHog AI" and "New task". The inbox implement menu drops "New task", because its main button already starts a PostHog run. Labels that said "PostHog tasks" now say "PostHog" and link to PostHog AI. The setup list drops the web copy of the Desktop step, because "Try PostHog AI" already covers it. The unused tasks ask prefill is removed.

Generated-By: PostHog Desktop
Task-Id: ad5d6b06-884a-48d6-8082-7670eabd0f6a
@github-actions
github-actions Bot requested a deployment to preview-pr-109352 October 7, 2026 14:00 In progress
@puemos puemos changed the title feat(desktop): send desktop entry points to web tasks for non-staff feat(desktop): send desktop entry points to posthog ai for non-staff Oct 7, 2026
When posthog-desktop-entry-points is off, the inbox implement menu shows "PostHog" in place of "PostHog Desktop". It opens the PostHog AI chat with the implementation prompt.

Generated-By: PostHog Desktop
Task-Id: ad5d6b06-884a-48d6-8082-7670eabd0f6a
@github-actions
github-actions Bot requested a deployment to preview-pr-109352 October 7, 2026 14:06 In progress
…hers

Generated-By: PostHog Desktop
Task-Id: ad5d6b06-884a-48d6-8082-7670eabd0f6a
@github-actions
github-actions Bot requested a deployment to preview-pr-109352 October 7, 2026 14:08 In progress
Generated-By: PostHog Desktop
Task-Id: ad5d6b06-884a-48d6-8082-7670eabd0f6a
@posthog

posthog Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

✅ Visual changes approved by @puemos — baseline updated in 134d67f.

View this run in PostHog

36 changed.

Install the Visual Review Chrome extension to see visual review results at the top of your pull requests.

36 updated
Run: 032f321a-b293-4769-89ad-be70fb7de680

Co-authored-by: puemos <13174025+puemos@users.noreply.github.com>
@scheduled-actions-posthog

Copy link
Copy Markdown
Contributor

This PR hasn't seen activity in a week! Should it be merged, closed, or further worked on? If you want to keep it open, please remove the stale label – otherwise this will be closed in another week. If you want to permanently keep it open, use the waiting label.

@scheduled-actions-posthog

Copy link
Copy Markdown
Contributor

This PR was closed due to lack of activity. Feel free to reopen if it's still relevant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature/desktop Feature Tag: Desktop stale

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants