Commit 9b9da81
improvement(platform): drop lucide-react for the in-house icon set, flatten the type and border scales, and retire scheduled tasks and workflow references (#6241)
* border styling
* improvement(platform): migrate off lucide-react, flatten the font-weight scale, and retire scheduled tasks and workflow references
* chore(platform): drop the dead schedule client layer and repair stale rule and skill docs
Follow-up cleanup for the platform commit, which removed the workspace
scheduled-tasks surface and migrated off lucide-react. Both left dead tails
that type-check clean, so nothing flagged them.
Six mutation hooks in hooks/queries/schedules.ts lost their only consumer when
the scheduled-tasks page was deleted: useDisableSchedule, useResumeSchedule,
useDeleteSchedule, useExcludeOccurrence, useUpdateSchedule, useCreateSchedule.
They are removed along with the three contract objects that served only them —
disableScheduleContract, excludeOccurrenceContract, deleteScheduleContract.
disableScheduleBodySchema and excludeOccurrenceBodySchema are deliberately
kept: both are members of scheduleUpdateSchema, the discriminated union the
live PUT /api/schedules/[id] route parses. Dropping them would collapse the
union and 400 the disable and exclude_occurrence actions.
The schedule-calendar tree and its utils stay unmounted for later reuse. Its
TSDoc now says so, since it has no importer and would otherwise read as dead
code on the next sweep.
The add-enrichment skill templated an import from lucide-react, a dependency
the platform commit deleted, so running it produced an unresolvable import. It
now points at @sim/emcn/icons, matching all five shipped enrichments. The
emcn-design-review skill and several rule files still pointed at
apps/sim/components/emcn/**, which moved to packages/emcn/**.
Also corrects the documented Chip variant list — it advertised a ghost variant
that never existed and omitted border — repoints the sim-url-state date-parser
example at an inline snippet now that its source file is gone, and normalizes
the one strokeWidth the icon migration left at 1.5 in bubble-chat-delay.
* fix(platform): mark the resource chrome as client components
`skills/page.tsx` is a Server Component, and this branch moved its
`IntegrationTabsHeader` import onto the `@/app/workspace/[workspaceId]/components`
barrel. That barrel re-exports `SortDropdown` from `resource-options`, which
calls `useState`, so the server graph now reaches a client-only module and
`next build` fails. `resource-header` has the same latent problem (`useState`,
`useEffect`, `useRef`).
Both files are genuinely client components, so they get the directive rather
than the page dropping the barrel import — local feature barrels are the
convention here.
Also drops a stale `lucide-react` mention now that the dependency is gone.
* chore(scheduled-tasks): remove the scheduled-task logic
Scheduled tasks are retired. This removes the `sourceType = 'job'` half of
`workflow_schedule` from the application, leaving the workflow Schedule
trigger (`sourceType = 'workflow'`) untouched.
Gone:
- the job orchestration layer (`lib/workflows/schedules/orchestration.ts`)
and the agent-job runner in `background/schedule-execution.ts`
- the job claim/dispatch half of the schedules execute tick
- POST /api/schedules (job creation) and the job branches of
GET /api/schedules and PUT/DELETE /api/schedules/[id]
- the copilot job tools and handlers, the `scheduledtask` resource type and
chat-context kind, and the VFS `jobs/` materialization
- the scheduled-task analytics events and the job variant of the
schedule-disabled email
Kept on purpose: `scheduled-tasks/components/schedule-calendar/**` and
`scheduled-tasks/utils/**`, which the agents module will reuse.
`packages/db/schema.ts` is deliberately untouched — the columns stay for now
and come out in a follow-up with a proper expand/contract migration.
The generated copilot catalog and VFS snapshot types are regenerated from
the matching copilot PR, which removes the tools and the `jobs` snapshot
field at the source.
Verified: 23/23 type-check, biome, api-validation, production build, and the
full vitest suite (18361 passing; the one failure in
executor/handlers/pi/cloud-review-tools.test.ts predates this branch).
* fix(sidebar): derive the settings and switcher widths from SIDEBAR_WIDTH
This branch moved `SIDEBAR_WIDTH.DEFAULT` from 248 to 238 but left two
hardcoded `248px` chrome widths behind, so both sat 10px wider than the live
sidebar:
- the workspace-switcher menu, which is meant to line up with the sidebar
column it drops out of
- the standalone settings sidebar, whose own comment says to keep it in step
with the in-workspace chrome
Both now read `SIDEBAR_WIDTH.DEFAULT` directly rather than repeating the
number, so the next change to the constant cannot leave them stale again.
* fix(schedules): stop the API accepting actions it no longer handles
Adversarial pass on the scheduled-task removal found a real regression in
PUT /api/schedules/[id].
Removing the job-only `update` and `exclude_occurrence` handlers left them in
`scheduleUpdateSchema`, so those bodies still parsed. The handler chain is
`disable` first and then an unguarded fall-through to reactivate, so an
`action: 'update'` request would have silently REACTIVATED the schedule
instead of being rejected.
Both actions are dropped from the discriminated union, so `parseRequest` now
rejects them with a 400. Their bodies, response types and the orphaned
`createScheduleContract` (its POST route is gone, and nothing imported it)
go with them.
* chore(landing): retire the scheduled-tasks marketing surface
The feature is gone from the product, so the marketing pages stop selling it.
- deletes the `/scheduled-tasks` landing page and its calendar-loop hero, and
the `LandingPreviewScheduledTasks` panel
- drops the view from the landing preview: the `SidebarView` member, the nav
entry and its now-unused Calendar icon, the callout label, both render
branches, and the staged chat copy in `workflow-data`
- removes the navbar and footer links and the sitemap entry
- removes the route from `LANDING_ROUTES`, the COEP exemption list that must
list every `app/(landing)` route
`/scheduled-tasks` is indexed, so it 301s to `/workflows` rather than starting
to 404 — that is the surface that still carries scheduled execution via the
workflow Schedule trigger.
Left alone deliberately: `demo-scheduler` is the Cal.com booking embed for the
demo page, unrelated to this feature, and the scheduling library article is a
generic SEO piece that never pitched it.
* perf(chat): stop the resource picker fetching schedules it no longer shows
Dropping the `scheduledtask` group from the add-resource dropdown left
`useWorkspaceSchedules` behind, so the picker still issued a workspace
schedules request whose result never reached a group.
Worse than a wasted request: `schedulesPending` was still in the hydration
gate, so the whole picker waited on that response before it could settle, and
`schedules` was still a `useMemo` dependency, re-running the group build when
it resolved.
The hook and its route stay — `/api/schedules?workspaceId=` still correctly
lists workflow schedules, unlike `createScheduleContract`, whose route this
branch removed.
* chore(scheduled-tasks): drop the leftovers the removal stranded
An independent audit of the branch turned up dead code and stale docs that the
compiler cannot see — nothing behavioural, but all of it rots silently.
- README still sold the feature: the "Scheduled tasks" tile, the prose listing
it as a workspace surface, and the now-unreferenced screenshot. The landing
surface went in c61770a; this tile was missed.
- `resource-content.tsx`: `SCHEDULE_STATUS_LABEL`, `formatScheduleInstant` and
`ScheduledTaskField` were orphaned when the schedule render branch went.
- `computeNextRunAt`: zero callers, including tests — its only consumer was the
removed agent-job runner.
- `applyScheduleUpdate`'s `allowCompleted` option: no call site passes it, and
its comment described self-completion, which no longer exists. The guard stays
(legacy `sourceType='job'` rows still carry `status='completed'` until the DB
follow-up); it is simply unconditional now.
- Three TSDoc blocks still described a create-job route and "opening a
scheduled-task artifact".
Type-check re-run with --force, since a cached turbo replay is not a check.
---------
Co-authored-by: Waleed Latif <walif6@gmail.com>1 parent 2977db5 commit 9b9da81
482 files changed
Lines changed: 3184 additions & 9155 deletions
File tree
- .agents/skills
- add-enrichment
- emcn-design-review
- .claude
- commands
- rules
- .cursor
- commands
- rules
- apps
- docs
- components
- ai
- docs-layout
- ui
- workflow-preview
- content/docs
- de/copilot
- es/copilot
- fr/copilot
- ja/copilot
- zh/copilot
- sim
- app
- (auth)/components
- (interfaces)
- chat/components
- auth/password
- input
- message-container
- message
- components
- resume/[workflowId]/[executionId]
- (landing)
- changelog/components
- changelog-actions
- changelog-timeline
- components
- auth-modal
- features/components
- build-callout/components/build-chat-animation
- feature-card
- hero/components
- hero-chat-loop
- hero-visual
- landing-preview
- components
- landing-preview-chat
- landing-preview-home
- landing-preview-logs
- landing-preview-resource
- landing-preview-scheduled-tasks
- landing-preview-sidebar
- landing-preview-stage
- landing-preview-workflow
- solutions-page/components/solutions-card-row/components/solutions-pill-cta
- contact/components/contact-form
- demo/components/demo-form
- enterprise/components/enterprise-platform-loop
- files/components
- knowledge/components
- logs/components
- pricing/components/pricing-card
- scheduled-tasks
- components/scheduled-tasks-calendar-loop
- _styles
- api
- emails/preview
- mothership/execute
- schedules
- [id]
- execute
- workflows/[id]/references
- f/[token]
- invite/components
- playground
- unsubscribe
- workspace/[workspaceId]
- components
- custom-tool-editor
- error
- integration-tabs-header
- invite-modal
- resource
- components
- resource-header
- resource-options
- files/components/file-viewer
- rich-markdown-editor
- mention
- slash-command
- home
- components
- chat-context-kind-registry
- message-content
- components
- agent-group
- chat-content
- options
- question
- special-tags
- mothership-chat
- components/mothership-chat-skeleton
- mothership-view/components
- add-resource-dropdown
- resource-content
- components/browser-session
- resource-registry
- queued-messages
- suggested-actions
- user-input
- components
- attached-files-list
- user-message-content
- hooks
- stream
- integrations
- [block]
- components
- connect-slack-bot-modal
- integration-tabs-header
- showcase-with-explore
- knowledge
- [id]
- [documentId]
- components
- action-bar
- add-connector-modal
- add-documents-modal
- connector-config-fields
- connectors-section
- edit-connector-modal
- components/create-base-modal
- logs/components/log-details
- components
- execution-snapshot
- trace-view
- scheduled-tasks
- components
- schedule-calendar
- components/calendar-toolbar
- task-delete-dialog
- task-details-modal
- task-modal
- hooks
- settings/components
- activity-log
- api-keys
- billing
- browser/components/password-detail
- byok
- copilot
- custom-tools
- general
- inbox/components
- inbox-settings-tab
- inbox-task-list
- mcp
- components/mcp-server-form-modal
- settings-resource-row
- team-management/components/team-seats-overview
- teammates
- workflow-mcp-servers
- skills
- tables/[tableId]/components
- new-column-dropdown
- row-modal
- table-grid
- workflow-sidebar
- upgrade/components
- comparison-table
- plan-card
- w
- [workflowId]/components
- action-bar
- chat
- components
- chat-message
- output-select
- command-list
- error
- panel
- components
- deploy/components/deploy-modal/components
- api
- chat
- general/components
- editor
- components
- connection-blocks
- components/field-item
- sub-block
- components
- checkbox-list
- code
- condition-input
- credential-selector
- document-tag-entry
- env-var-dropdown
- eval-input
- file-upload
- filter-builder
- components
- grouped-checkbox-list
- knowledge-base-selector
- knowledge-tag-filters
- long-input
- messages-input
- selector-combobox
- short-input
- skill-input
- slack-setup-wizard
- sort-builder
- components
- starter
- tag-dropdown
- tool-input
- components/tools
- variables-input
- subflow-editor
- toolbar
- search-replace
- subflows
- loop
- parallel
- terminal
- components
- filter-popover
- output-panel
- toggle-button
- variables
- wand-prompt-bar
- workflow-controls
- components
- preview
- components
- preview-editor
- preview-workflow/components/subflow
- sidebar
- components
- file-list
- help-modal
- search-modal
- settings-sidebar
- sidebar-section
- workflow-list/components
- folder-item
- references-modal
- components/reference-tree
- workflow-item
- workspace-header
- components/pending-invitations
- background
- blocks
- blocks
- custom
- components
- agent-stream
- emails
- notifications
- permissions
- pii
- settings
- ui
- content/blog/enterprise
- ee
- access-control/components
- custom-blocks/components
- data-retention/components
- sso/components
- whitelabeling/components
- workspace-forking/components
- fork-workspace-modal
- enrichments
- company-domain
- company-info
- phone-number
- hooks
- queries
- lib
- api/contracts
- billing
- copilot
- chat
- generated
- resources
- tool-executor
- tools
- client
- handlers
- server
- jobs
- vfs
- mothership/inbox
- posthog
- workflows
- references
- schedules
- workspaces
- public/static
- stores
- modals/search
- panel
- packages
- emcn
- src
- components
- button
- calendar
- checkbox
- chip-copy-input
- chip-date-picker
- chip-dropdown
- chip-input
- chip-modal
- chip-select
- chip-switch
- chip-tag
- chip-time-picker
- chip
- code
- combobox
- info-card
- input-otp
- modal
- popover
- progress-item
- secret-reveal
- tag-input
- time-picker
- toast
- icons
- workflow-renderer
- src
- edge
- note
- subflow
- scripts
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
| 66 | + | |
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
| |||
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
112 | | - | |
| 112 | + | |
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
| 48 | + | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| |||
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
111 | | - | |
| 111 | + | |
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
| 47 | + | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
53 | 61 | | |
54 | 62 | | |
55 | | - | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
56 | 72 | | |
57 | 73 | | |
58 | 74 | | |
59 | | - | |
| 75 | + | |
60 | 76 | | |
61 | 77 | | |
62 | 78 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
190 | | - | |
| 190 | + | |
191 | 191 | | |
192 | | - | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
193 | 206 | | |
194 | 207 | | |
195 | 208 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | | - | |
| 60 | + | |
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
106 | | - | |
| 106 | + | |
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
0 commit comments