You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f1d5974
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: apps/sim/platform/docs/org-parity.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,7 +46,8 @@ One row per capability of the legacy organization surface. Every capability is e
46
46
| Chat | Panel resize: drag, keyboard steps and Home/End, per-viewer per-chat widths that persist, container and window clamps, interruption by cancel, capture loss, blur, detach and chat switch, the native browser view following the divider |`chat-panel-layout.tsx`, `use-mothership-resize.ts`| Unverified | The desktop e2e chat panel suite drives the product panel in Electron; the mobile suite checks the range on desktop widths. No live check |
47
47
| Chat | Reordering panel tabs by drag, keyboard and the narrow tab menu |`resource-tabs.tsx`| Declined | The drag, drop-marker and reorder-shortcut states it needed were added to EMCN Tabs after Emir Karabeg's version and are reverted; Emir is redesigning the chat panels. The chat's persisted `reorderResources` stays unused |
48
48
| Chat | Panel contents for file, table, workflow, dashboard, knowledge, log and folder, live as the chat refreshes them; Open in workspace | `resource-content.tsx`, `resource-tabs.tsx` | Unverified | No live check. `panel/resource-content.tsx` loads `panel/workspace-resource/` per tab: the file, table, knowledge and dashboard views and the run details, promoted to `app/(product)/_components/workspace/` for their pages and the panel alike, render through `EmbeddedWorkspacePages` (controls and content without the workspace heading and tabs, no navigation away on a missing or deleted record) with tab-local URL state (`tab-url-state.tsx`); a workflow shows its current state on the read-only `WorkflowPreview` canvas, a folder lists its workflows. Only the current tab keeps a workspace view mounted, as legacy did. A file the agent is writing shows its in-flight preview as legacy did: `lib/data/chat-panel.ts` feeds the chat's preview session (text while it streams, the edit lock with its grace, append/patch frames) to the stored file's tab through `FileView` and to a new file's `streaming-file` tab through `workspace-resource/streaming-file.tsx`, both in the shared `FileViewer`. |
49
-
| Chat | Adding a workspace resource to the panel from its + picker: search |`add-resource-dropdown.tsx`| Unverified | No live check. The panel's + (beside its tabs, and in the empty panel) is the composer's `ResourceMenu` over `useMentionBrowse` (`GET /api/organizations/[id]/mentions`), read from first opening; its search is answered by the server. `usePanelPicker` in `lib/data/chat-panel.ts` offers legacy's families (tables, files, file folders, knowledge bases, workflows, logs, dashboards; no chats, skills or workflow folders, and no workspace as a pick) and opens the pick through `addResourceFromUser`. Not ported: the desktop Browser and Terminal launcher rows |
49
+
| Chat | Chat panel workflow tab is read-only: no edit, no Run (staging embedded an editable canvas with Run/Stop) |`resource-content.tsx` (embedded workflow editor) | Open | Owner: Emir Karabeg and the founder. The panel's workflow tab shows the current state on the read-only `WorkflowPreview` canvas, with Open in workspace to edit or run it there. Restoring editing, Run and Stop in the panel needs the panel design and a decision on the embedded editor |
50
+
| Chat | Adding a workspace resource to the panel from its + picker: search |`add-resource-dropdown.tsx`| Unverified | No live check. The panel's + (beside its tabs, and in the empty panel) is the composer's `ResourceMenu` over `useMentionBrowse` (`GET /api/organizations/[id]/mentions`), read from first opening; its search is answered by the server. `usePanelPicker` in `lib/data/chat-panel.ts` offers legacy's families (tables, files, knowledge bases, workflows, logs, dashboards; no chats, skills or workflow folders, and no workspace as a pick). File folders are not offered: no panel view renders one, so a pick opened an empty card and opens the pick through `addResourceFromUser`. Not ported: the desktop Browser and Terminal launcher rows |
50
51
| Chat | Browsing a workspace's families and items, and Show more, in the composer's and the panel's + menu |`add-resource-dropdown.tsx`, `plus-menu-dropdown.tsx`| Declined | Reading a workspace as its submenu opened, an empty submenu that opened no panel, and a row that kept the menu open needed `onOpen`, empty `children` and `keepOpen` on EMCN's `MenuAction`, added after Emir Karabeg's version and reverted; Emir is redesigning the chat panels and new-conversation experience. The + menu lists workspaces as picks and answers its search; `/api/organizations/[id]/mentions` no longer serves workspace, folder or cursor reads |
51
52
| Chat | Mobile composer: Send keeps a 44px box on touch, a long draft keeps its scroll on phones and hands off to the page on wider layouts; toolbar faces keep their compact size with a touch target |`send-button.tsx`, `composer-scroll-area.tsx`| Unverified |`scripts/test-mobile-e2e.ts` covers these on the phone, Android and desktop profiles; no live check |
52
53
| Chat | Sources button on an answer: its cited documents once each, open, copy link, Sim link, View all sources in the panel |`message-sources.tsx`, `sources-resource-content.tsx`| Unverified |`message/message-sources.tsx` and `panel/cited-sources.tsx` render the shared `_components/search/source-row.tsx` over `PlatformTurn.sources` (`citedSources` in `lib/data/chat-model.ts`: main-answer citations, once per URL, first-cited order) under legacy's `sources` resource. A cited Sim knowledge document the reader can no longer open (deleted, as a personal Search index is when its owner joins a team) is unlinked in the list, with no Unavailable label until Emir Karabeg's source row has a slot for one, and unlinked in the prose (`useAvailableSources` in `lib/data/chat.ts` over the document query; `knowledgeDocumentLink` reads the link `toSource` built). `scripts/test-organization-search-e2e.ts` exercises it; no live check |
`0456_personal_organization_team_settings` and `0457_personal_organization_team_only_tables`
12
12
(refuse team configuration, and organization rows that could not follow a person into a team,
13
-
on personal organizations) and `0458_personal_organization_single_owner` (a personal
14
-
organization has exactly one member, its owner). All are additive; the previous release keeps
15
-
working against them. The migrator (`packages/db/scripts/migrate.ts`) runs DDL under a short
13
+
on personal organizations), `0458_personal_organization_single_owner` (a personal
14
+
organization has exactly one member, its owner) and `0459_personal_chats_rehomed_workspace`
15
+
(adds the nullable `workspace.personal_chats_rehomed_at`, no default and no backfill). All are
16
+
additive; the previous release keeps working against them. 0459 is catalog-only and the
17
+
previous release neither reads nor writes the column. This release stamps it on the workspace
18
+
a retiring personal organization's chats move into (joining a team, or the rollback below) and
19
+
leaves every stamped workspace out of team attaches (joins, Team re-home, Enterprise claim and
20
+
issuance, Pro to Team, consolidation), so those private chats never reach a team. The migrator (`packages/db/scripts/migrate.ts`) runs DDL under a short
16
21
`lock_timeout`, so installing a trigger fails fast instead of queueing traffic behind its lock;
17
22
rerun on a timeout.
18
23
2.**Every process on the new release, fully rolled out**: the app, background workers and
@@ -134,6 +139,12 @@ batch the revert over hours.
134
139
5.**Verify**: `SELECT count(*) FROM organization WHERE kind = 'personal'` equals the number of
135
140
organizations deliberately kept, and the first verification query above counts every account
136
141
whose personal organization was reverted.
137
-
6.**Roll the release back** right away. Migrations 0455 to 0458 stay: they are additive, and with
138
-
no personal organizations left their triggers never fire. The previous release ignores the
142
+
6.**Roll the release back** right away. Migrations 0455 to 0459 stay: they are additive, and with
143
+
no personal organizations left their triggers never fire. Keep `personal_chats_rehomed_at`
144
+
too, never clear or drop it: the previous release ignores the stamp, so while it runs a
145
+
stamped workspace (one the revert or a team join moved chats into) can be attached to a team
146
+
like any other, with those chats; the next roll forward honors the stamps again. Watch for
147
+
such joins in the rollback window and move the workspace back out by hand if one happens:
148
+
`SELECT id, organization_id FROM workspace WHERE personal_chats_rehomed_at IS NOT NULL AND
149
+
organization_id IS NOT NULL`. The previous release ignores the
139
150
flag and the secret; turn both off before rolling forward again.
0 commit comments