Skip to content

Commit f1d5974

Browse files
committed
docs(platform): record migration 0459 in the personal-organization runbook and the read-only panel workflow tab in the parity ledger
1 parent bbbd80c commit f1d5974

2 files changed

Lines changed: 18 additions & 6 deletions

File tree

‎apps/sim/platform/docs/org-parity.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ One row per capability of the legacy organization surface. Every capability is e
4646
| 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 |
4747
| 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 |
4848
| 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 |
5051
| 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 |
5152
| 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 |
5253
| 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 |

‎apps/sim/scripts/backfill-personal-organizations.md‎

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,14 @@ admin, the Admin API or SCIM removed it, or it left). The release that introduce
1010
1. **Migrations** `0455_personal_organizations` (adds `organization.kind`, default `team`),
1111
`0456_personal_organization_team_settings` and `0457_personal_organization_team_only_tables`
1212
(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
1621
`lock_timeout`, so installing a trigger fails fast instead of queueing traffic behind its lock;
1722
rerun on a timeout.
1823
2. **Every process on the new release, fully rolled out**: the app, background workers and
@@ -134,6 +139,12 @@ batch the revert over hours.
134139
5. **Verify**: `SELECT count(*) FROM organization WHERE kind = 'personal'` equals the number of
135140
organizations deliberately kept, and the first verification query above counts every account
136141
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
139150
flag and the secret; turn both off before rolling forward again.

0 commit comments

Comments
 (0)