Now let me also read the remaining files I need to modify:
I have full context on all files. Let me now implement everything. I'll start with rewriting the agent-tasks.tsx component (now OpenRecommendations) with drift recommendations and the "Resolve Manually" action, then update the other files.
Now let me update the workspace-tabs to make the "Open Recommendations" tab prominent with a glow, sparkle icon, and count badge:
Now add the glow animation to globals.css:
Now update workspace-overview to add the AI recommendations summary card at the top:
Now update the component function signature:
Now update page.tsx to wire everything together -- rename imports, pass recommendation data, and connect callbacks:
Now update the routing condition and tab component usage:
Update the Overview tab to pass recommendations data:
Now rename the "Agent Tasks" routing to "Open Recommendations":
All three pieces of feedback from the principal engineer have been addressed. The "Agent Tasks" tab is now "Open Recommendations" with a Sparkles icon and an animated indigo glow ring plus count badge to make it unmissable. The Overview tab now shows a prominent AI recommendations summary card at the top (with a left indigo border stripe) listing the top 3 items by category, linking to the full tab. Drift recommendations surface as first-class cards (orange-toned category badge with AlertTriangle icon, "Drift Detection" source tag, and a "View Drift Details" link), and every card now offers three actions: "Remediate with Agent" (primary), "Resolve Manually" (opens inline confirmation with optional note), and "Dismiss" (ghost).
So for a workspace - you would almost always have only one recommendation which is which is corresponding to drift, the drift recommendation needs to be highlighted separately, potentially, because it's a special kind of recommendation and it's specific to ISCM. With drift, you have two options of resolution:
Remediating with the agent
Essentially resolving it manually
There's also a third where you accept you basically reject the drift and you just run a Terraform apply.
Let me also read the remainder of agent-tasks.tsx:
Now I have full context on every file. Let me implement the changes. The key changes are:
Now update the overview card to call out drift separately with more urgency:
Now update the variable references to split drift from other recs:
Now let me also update the resolved tasks table to show "Drift Accepted" as an outcome. I need to check if the page.tsx rendering still passes the right data:
Good -- page.tsx already passes recommendationData.map(...) to the overview and that data now includes the single drift rec with category: "Drift", so the splitting logic will work correctly. Everything is wired up.
Here's what changed: Drift is now a first-class, visually distinct section at the top of the Open Recommendations tab -- a dedicated DriftCard component with an orange accent bar, the resource name in a monospace code block, and an expandable attribute diff table showing expected vs. actual values. Drift gets three specific resolution actions: "Remediate with Agent", "Resolve Manually", and "Accept Drift (terraform apply)" which records a "Drift Accepted" outcome in the resolved table. The Overview tab also splits drift into its own urgent orange-bordered alert card above the indigo recommendations summary, with a "Review Drift" CTA that navigates directly to the tab.
Accept drift [terraform apply] is going to be actually reject drift. The drift detection: we should generally specify the number of resources drifted instead of attributes drifted, because you would generally have multiple resources in a specific workspace which are drifted, and you probably don't want to show the attribute-level data here. Users can always go into the resource tab and look at the attribute-level drift data. You should also potentially think of adding drift remediation in the resources section, maybe not as prominent but just as an option. If it is drifted, can we just simplify multiple clicks and trigger a task from right there in the resources section?
You can send messages while the preview loads