From c4b4a5f52998e52620650cca71bce08d4bb1f39a Mon Sep 17 00:00:00 2001 From: Neelasha Bhattacharjee <46113280+Neelashab@users.noreply.github.com> Date: Tue, 23 Jun 2026 13:06:22 +0530 Subject: [PATCH 1/5] fix: register platform deprecation flags in serve.py lifespan Ensures `beforeDeprecationCutoffAbv2` and `afterDeprecationCutoffAbv2` are always included in `writer.Config.feature_flags` after the user app loads. This causes the LaunchDarkly client to evaluate these flags on every agent builder session, so the builder deprecation banner in BuilderApp.vue receives the correct flag values. Co-authored-by: Cursor --- src/writer/serve.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/writer/serve.py b/src/writer/serve.py index bd0ed7a65..e0c5fb1d9 100644 --- a/src/writer/serve.py +++ b/src/writer/serve.py @@ -41,6 +41,7 @@ from pydantic import ValidationError from starlette.websockets import WebSocket, WebSocketDisconnect, WebSocketState +import writer from writer import VERSION, abstract from writer.ai import Graph from writer.app_runner import AppRunner @@ -136,6 +137,12 @@ async def lifespan(asgi_app: FastAPI): app_runner.hook_to_running_event_loop() app_runner.load() + # Register platform-level deprecation flags so the LaunchDarkly client + # evaluates them for every agent builder session. These are merged with + # any flags already set by the user application's main.py. + _PLATFORM_FLAGS = {"beforeDeprecationCutoffAbv2", "afterDeprecationCutoffAbv2"} + writer.Config.feature_flags = list(set(writer.Config.feature_flags) | _PLATFORM_FLAGS) + if ( on_load is not None and hasattr(asgi_app.state, "is_server_static_mounted") From 787c0762ab9edfc0438e14b379b686e027d93837 Mon Sep 17 00:00:00 2001 From: Neelasha Bhattacharjee <46113280+Neelashab@users.noreply.github.com> Date: Mon, 29 Jun 2026 12:03:32 -0400 Subject: [PATCH 2/5] fix: align non-admin agent builder banner copy [ACTION-5011] Co-authored-by: Cursor --- src/ui/src/builder/BuilderDeprecationBanner.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/src/builder/BuilderDeprecationBanner.vue b/src/ui/src/builder/BuilderDeprecationBanner.vue index 9e08982de..d92824c99 100644 --- a/src/ui/src/builder/BuilderDeprecationBanner.vue +++ b/src/ui/src/builder/BuilderDeprecationBanner.vue @@ -165,7 +165,7 @@ const body = computed(() => { } return props.isOrganizationAdmin ? "This legacy agent editor will no longer be available - migrate your agent to the new Agent Builder now." - : "This legacy agent editor will no longer be available - create a Playbook instead."; + : "This legacy agent editor will no longer be available - work with your Admin to migrate your agent to the new Agent Builder now."; }); const migrateLabel = computed(() => From ad35ab2da66b7c4d4f419ac10380de50ca7b43b2 Mon Sep 17 00:00:00 2001 From: Neelasha Bhattacharjee <46113280+Neelashab@users.noreply.github.com> Date: Mon, 29 Jun 2026 12:03:40 -0400 Subject: [PATCH 3/5] fix: stop blocking editing for deprecated framework agents [ACTION-5011] Co-authored-by: Cursor --- src/ui/src/builder/BuilderApp.vue | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/src/ui/src/builder/BuilderApp.vue b/src/ui/src/builder/BuilderApp.vue index 3da4b1fbb..006b2f3a6 100644 --- a/src/ui/src/builder/BuilderApp.vue +++ b/src/ui/src/builder/BuilderApp.vue @@ -84,16 +84,6 @@ -