From b1fdc8d665f330bee0f6cbfc7be89ab4af5149b6 Mon Sep 17 00:00:00 2001 From: Nariman Jelveh Date: Tue, 11 Aug 2026 18:23:43 -0700 Subject: [PATCH] fix: carry feedback_enabled in suggested/recommended app summaries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit launch_app uses options.app_obj verbatim when provided, and the suggested-apps launch paths (open_item.js, UIWindowSearch.js, UIDesktop.js) pass summaries from toAppSummary — which omitted feedback_enabled. So an opted-in editor launched by opening a .txt file showed no Send Feedback control in the dashboard drawer, while the same app launched from the Apps tab (full puter.apps.get object) did. --- src/backend/services/apps/RecommendedAppsService.ts | 4 ++++ src/backend/services/apps/SuggestedAppsService.ts | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/src/backend/services/apps/RecommendedAppsService.ts b/src/backend/services/apps/RecommendedAppsService.ts index f4923eec7..9c969ebdb 100644 --- a/src/backend/services/apps/RecommendedAppsService.ts +++ b/src/backend/services/apps/RecommendedAppsService.ts @@ -75,6 +75,10 @@ function toAppSummary( godmode: Boolean(app.godmode), maximize_on_start: Boolean(app.maximize_on_start), index_url: app.index_url, + // Launched straight from this summary as `app_obj` — see + // SuggestedAppsService.toAppSummary; the drawer's feedback control + // renders off this flag. + feedback_enabled: Boolean(app.feedback_enabled), // An app with no owner isn't owned by a Puter user — it's an // "external" (origin-bootstrapped) app. external: app.owner_user_id == null || app.owner_user_id === '', diff --git a/src/backend/services/apps/SuggestedAppsService.ts b/src/backend/services/apps/SuggestedAppsService.ts index da4cc3c03..ec3975895 100644 --- a/src/backend/services/apps/SuggestedAppsService.ts +++ b/src/backend/services/apps/SuggestedAppsService.ts @@ -338,5 +338,10 @@ function toAppSummary( godmode: Boolean(app.godmode), maximize_on_start: Boolean(app.maximize_on_start), index_url: app.index_url, + // The GUI launches straight from this summary as `app_obj` (no + // re-read through AppDriver), so any launch-relevant flag omitted + // here silently disappears on those paths — e.g. the dashboard + // drawer's feedback control renders off this. + feedback_enabled: Boolean(app.feedback_enabled), }; }