Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
506 commits
Select commit Hold shift + click to select a range
37ed646
improvement(org): stop the page surface depending on host utilities i…
waleedlatif1 Nov 6, 2026
411c3a6
test(search): accept a denied chat's recovery reported after Return home
waleedlatif1 Nov 6, 2026
3081e44
chore(contracts): sync the final steer v2 refusals from the worker
waleedlatif1 Nov 6, 2026
5af34a8
improvement(chat): settle steering fallbacks in an application operat…
waleedlatif1 Nov 6, 2026
25177b8
chore(chat): answer steering in the scripted agent as the worker does…
waleedlatif1 Nov 6, 2026
2835460
improvement(chat): settle orphan steering records, bound delivery, an…
waleedlatif1 Nov 6, 2026
da54d77
fix(chat): forward the worker's input_applied refusal to the view, an…
waleedlatif1 Nov 6, 2026
d8c7055
Merge remote-tracking branch 'origin/staging' into improvement/org-view
waleedlatif1 Nov 6, 2026
5b7f74e
fix(chat): show a message the worker refuses as already applied once,…
waleedlatif1 Nov 6, 2026
7503418
fix(org): let Home's workspace rows fill their section again
waleedlatif1 Nov 6, 2026
2ee79ca
test(org): resize the rail by key once Home's field has taken its loa…
waleedlatif1 Nov 6, 2026
2974a6c
test(org): wait for the Search retry's read by its path alone
waleedlatif1 Nov 6, 2026
ad1b477
test(org): let the prefetch deliver Links' loading state before holdi…
waleedlatif1 Nov 6, 2026
77f7003
test(org): press a shortcut only once hydration can answer it
waleedlatif1 Nov 6, 2026
e2dff57
test(org): anchor /platform on its marketing page and allow the bogus…
waleedlatif1 Nov 6, 2026
886a0cf
test(org): settle ignores static assets and reads the old document ab…
waleedlatif1 Nov 6, 2026
2733686
test(org): name the SSO provider field exactly
waleedlatif1 Nov 6, 2026
8f3b45b
fix(org): keep the panel's skill timing and bound Enter while lists load
waleedlatif1 Nov 6, 2026
ba0054d
fix(org): keep retention's list on the server's document after a save
waleedlatif1 Nov 6, 2026
a073ee5
fix(org): treat a failed retention re-read as unconfirmed
waleedlatif1 Nov 6, 2026
9e9565c
fix(org): key the Gmail mailbox cache on the provider subject
waleedlatif1 Nov 6, 2026
b882040
docs(org): state what useServerDraft can and cannot detect
waleedlatif1 Nov 6, 2026
878abc5
fix(org): fail mutations fast offline so a pending dialog can be canc…
waleedlatif1 Nov 6, 2026
e338d51
Merge branch 'wip/fix-correct' into improvement/org-view
waleedlatif1 Nov 6, 2026
17d935e
Revert "fix(org): fail mutations fast offline so a pending dialog can…
waleedlatif1 Nov 6, 2026
3432a60
test(chat): prove steering in the org E2E through the v2 scripted worker
waleedlatif1 Nov 6, 2026
8039f94
fix(chat): refuse steering under a turn's own id, settle stuck dispos…
waleedlatif1 Nov 6, 2026
e4502cd
improvement(chat): move outgoing delivery into pure transitions, and …
waleedlatif1 Nov 6, 2026
ed77fb1
Merge branch 'improvement/org-view' into wip/platform-org-wiring
waleedlatif1 Nov 6, 2026
9d77930
test(chat): make the journal tests able to fail, and pin the running …
waleedlatif1 Nov 6, 2026
5360974
test(chat): drop a journal read test zustand's own catch keeps green
waleedlatif1 Nov 6, 2026
1d42c39
fix(chat): read a stored disposition without a double cast, keep Plat…
waleedlatif1 Nov 6, 2026
3458a33
test(chat): keep the refused-message test inside its budget under load
waleedlatif1 Nov 6, 2026
10e8935
improvement(platform): keep the embedded organization view beside the…
waleedlatif1 Nov 6, 2026
eac206a
chore(platform): point the seam rule and guidance at the embedded views
waleedlatif1 Nov 6, 2026
af97413
fix(chat): keep the outgoing journal store importable from the server…
waleedlatif1 Nov 6, 2026
78cf045
Merge remote-tracking branch 'origin/staging' into wip/platform-org-w…
waleedlatif1 Nov 6, 2026
b57f66d
test(org): skip a prefetch whose body the navigation discarded
waleedlatif1 Nov 6, 2026
5f4386f
improvement(org): collapse repeated recents and give every chip a mark
waleedlatif1 Nov 6, 2026
9b6c3ab
feat(platform): consolidate controls and redesign integration details
emir-karabeg Nov 6, 2026
6de1280
fix(chat): close the re-audit's delivery gaps
waleedlatif1 Nov 6, 2026
4dc38d5
test(chat): let every org E2E check share the socket-token throttle a…
waleedlatif1 Nov 6, 2026
5038691
test(chat): prove steering end to end across a real browser, app, wor…
waleedlatif1 Nov 6, 2026
8f45368
fix(org): keep Home sections, People and usage rows from overlapping …
waleedlatif1 Nov 6, 2026
e23c9cb
fix(ci): hash the embedded organization views into the app build
waleedlatif1 Nov 6, 2026
897d9b2
fix(platform): restore the design system's activity and property list…
waleedlatif1 Nov 6, 2026
4963bc0
fix(org): show each viewer's Home while it loads, and never a blank b…
waleedlatif1 Nov 6, 2026
346afdd
test(org): let the screenshot walk wait for the card it opens
waleedlatif1 Nov 6, 2026
cd4b2a7
fix(platform): keep integrations links the zone cannot serve on the l…
waleedlatif1 Nov 6, 2026
ba72291
fix(platform): connect and remove saved accounts through working paths
waleedlatif1 Nov 6, 2026
4b611fb
fix(platform): refuse to start a deployed zone without live data
waleedlatif1 Nov 6, 2026
d9928ae
fix(platform): offer only chats the viewer can open, from one rule
waleedlatif1 Nov 6, 2026
48c90dc
fix(platform): gate the zone's integrations page and port Home's mode…
waleedlatif1 Nov 6, 2026
be5785d
fix(desktop): open organization settings from a Platform page
waleedlatif1 Nov 6, 2026
779e195
improvement(org): open the conversation and warm admin reads without …
waleedlatif1 Nov 6, 2026
3403deb
improvement(org): use the standard first read, loading and empty part…
waleedlatif1 Nov 6, 2026
fb28e41
fix(org): name the main region on every page and let loading states b…
waleedlatif1 Nov 6, 2026
9151b13
fix(platform): hold the embedded organization views to the design check
waleedlatif1 Nov 6, 2026
e1e364d
fix(ci): run the Platform suites when the seam they read through changes
waleedlatif1 Nov 6, 2026
60ff909
test(platform): run the live suite on the org-redesign stack
waleedlatif1 Nov 6, 2026
a5a4072
fix(org): let the group editor's catalog refresh, and hold activity o…
waleedlatif1 Nov 6, 2026
d9109bb
improvement(platform): one copy of the shared helpers and of isRefusal
waleedlatif1 Nov 6, 2026
facda8f
improvement(platform): keep the chat rule free of the server's access…
waleedlatif1 Nov 6, 2026
4bb8674
fix(boundaries): hold both data layers to the seam and ratchet views …
waleedlatif1 Nov 6, 2026
b084f11
test(org): measure Home's layout shift, overlap on a phone, and Peopl…
waleedlatif1 Nov 6, 2026
d21b2ad
feat(platform): refine integration ideas and shared control behavior
emir-karabeg Nov 6, 2026
975ad42
Merge branch 'wip/fix-consistency' into wip/platform-org-wiring
waleedlatif1 Nov 6, 2026
fce2966
fix(platform): type-check every embedded file and its tests
waleedlatif1 Nov 6, 2026
c5c6a79
improvement(org): one section rule and an organization-owned error po…
waleedlatif1 Nov 6, 2026
418cfa3
docs(platform): describe what embedded is and how it differs from the…
waleedlatif1 Nov 6, 2026
9df253f
Merge branch 'wip/fix-zone-wiring' into wip/platform-org-wiring
waleedlatif1 Nov 6, 2026
5245be8
Merge branch 'wip/fix-gates' into wip/platform-org-wiring
waleedlatif1 Nov 6, 2026
063f7fb
improvement(platform): give zone and organization views one shared he…
waleedlatif1 Nov 6, 2026
6d4fe36
fix(platform): distinguish reconnect dialog identity
emir-karabeg Nov 6, 2026
67e1d46
fix(platform): point the drains barrel and prefetch test at the moved…
waleedlatif1 Nov 6, 2026
67d6a34
fix(platform): commit detail history before presentation
emir-karabeg Nov 6, 2026
a488518
test(org): wait for a removed recent's deletes before reloading
waleedlatif1 Nov 6, 2026
ad94fcd
fix(platform): give a dialog portalled out of a surface its own surface
waleedlatif1 Nov 6, 2026
df430e7
fix(chats): stop reading a deleted chat while its view is still mounted
waleedlatif1 Nov 6, 2026
ce3d8ab
docs(platform): point the contract at the moved time helpers
waleedlatif1 Nov 6, 2026
ede5ffb
test(org): assert the visible description and wait for the People pre…
waleedlatif1 Nov 6, 2026
9d0a411
test(org): wait for the route's prefetch and for the removal before r…
waleedlatif1 Nov 6, 2026
9f06a46
Merge remote-tracking branch 'origin/staging' into wip/platform-org-w…
waleedlatif1 Nov 6, 2026
39a59f2
feat(platform): consolidate credential access tables and integration …
emir-karabeg Nov 6, 2026
b771f91
fix(platform): retain credential identity across detail tabs
emir-karabeg Nov 6, 2026
2ac2dd2
Revert "fix(chats): stop reading a deleted chat while its view is sti…
waleedlatif1 Nov 6, 2026
8215c09
test(platform): remove obsolete connected app description assertion
emir-karabeg Nov 6, 2026
eba54cd
test(platform): tolerate shared preview worker connection resets
emir-karabeg Nov 6, 2026
edeede4
fix(chats): let an invalidated list read survive marking a chat read
waleedlatif1 Nov 6, 2026
5a1b023
test(org): open the conversation before deleting the open chat
waleedlatif1 Nov 6, 2026
ac54681
fix(chat): keep a steered message restored past the age limit truthful
waleedlatif1 Nov 6, 2026
d301af8
Merge remote-tracking branch 'origin/improvement/platform-core-chat' …
waleedlatif1 Nov 6, 2026
bdb2c45
test(org): wait for the retention list to show what the route answered
waleedlatif1 Nov 6, 2026
bc6b47b
Merge remote-tracking branch 'origin/staging' into wip/platform-org-w…
waleedlatif1 Nov 6, 2026
6aece2e
refactor(platform): give the zone and organization views one set of s…
waleedlatif1 Nov 6, 2026
1a2170f
improvement(org-home): lay calendar lanes out from tokens, not local …
waleedlatif1 Nov 6, 2026
f549271
improvement(org): replace raw geometry and per-view tokens with found…
waleedlatif1 Nov 6, 2026
ebf0470
refactor(platform): send every organization and zone toast through on…
waleedlatif1 Nov 6, 2026
c2e4ee4
improvement(org): pass named props instead of spreading them into JSX
waleedlatif1 Nov 6, 2026
575b80a
improvement(org): promote the parts more than one route uses
waleedlatif1 Nov 6, 2026
8c8b52a
improvement(org): give shared recipes an owner instead of importing p…
waleedlatif1 Nov 6, 2026
ba9ce77
refactor(platform): one data adapter each for seven settings and peop…
waleedlatif1 Nov 6, 2026
bfa04a1
feat(platform): summarize a search result into the Assistant conversa…
waleedlatif1 Nov 6, 2026
9894dc3
improvement(org): replace Tailwind and legacy classes on owned elemen…
waleedlatif1 Nov 6, 2026
2adc27c
feat(platform): seed search history, member inventory and sim links f…
waleedlatif1 Nov 6, 2026
643e684
feat(platform): give each zone route its own tab title
waleedlatif1 Nov 6, 2026
e44e957
refactor(platform): delete the re-export shims and point importers at…
waleedlatif1 Nov 6, 2026
3598ef1
fix(platform): bring the zone's calendar and integration models back …
waleedlatif1 Nov 6, 2026
a59fc4a
refactor(chat): move the organization conversation out of app/o
waleedlatif1 Nov 6, 2026
b17ff51
feat(platform): port the nav warmers for the sidebar's rows to use
waleedlatif1 Nov 6, 2026
bb64bff
fix(a11y): move focus to the next row after confirming a removal
waleedlatif1 Nov 6, 2026
e25a6af
feat(platform): refuse an oversized paste in the zone before anything…
waleedlatif1 Nov 6, 2026
38d83e3
chore(platform): regenerate the permission catalog after staging's ne…
waleedlatif1 Nov 6, 2026
25dffda
refactor(platform): give settings views real adapters for drains, SSO…
waleedlatif1 Nov 6, 2026
0741576
Merge remote-tracking branch 'origin/improvement/platform-core-chat' …
waleedlatif1 Nov 6, 2026
c47b88f
fix(org): hold the composer's place in Home's skeleton
waleedlatif1 Nov 6, 2026
ad3cb40
docs(platform): correct the parity ledger against what the zone ships
waleedlatif1 Nov 6, 2026
ca635e1
fix(platform): name the viewer from their profile when seeding search…
waleedlatif1 Nov 6, 2026
a0354b6
Merge branch 'wip/next-zone-hooks' into wip/platform-org-wiring
waleedlatif1 Nov 6, 2026
55932f1
chore(platform): add a ratchet so the zone and organization views kee…
waleedlatif1 Nov 6, 2026
4b9d4a7
Merge remote-tracking branch 'origin/improvement/platform-core-chat' …
waleedlatif1 Nov 6, 2026
f3358df
Merge branch 'wip/next-converge' into wip/platform-org-wiring
waleedlatif1 Nov 6, 2026
91588b9
fix(org): give a phone's directory table to the name, not an empty tr…
waleedlatif1 Nov 6, 2026
1651dda
test(org): screenshot a page only once its first reads have finished
waleedlatif1 Nov 6, 2026
5b2bbf5
test(org): grow full-page shots only for panes that follow the viewport
waleedlatif1 Nov 6, 2026
b1be92e
fix(org): stop the phone settings title painting its own strip in the…
waleedlatif1 Nov 6, 2026
146e4bf
fix(platform): keep a disclosure's wrapped label at the start of its …
waleedlatif1 Nov 6, 2026
5a01d0f
fix(org): line up every Add source row and give Generic Secrets its i…
waleedlatif1 Nov 6, 2026
fa850f4
fix(org): give each loading state the shape of what replaces it
waleedlatif1 Nov 6, 2026
a4df4a8
fix(org): stop clipping integration descriptions and long picker values
waleedlatif1 Nov 6, 2026
77803d7
fix(org): hold empty states, row dividers and edge actions to the pag…
waleedlatif1 Nov 6, 2026
79de765
fix(org): give a member's Generic Secrets page the header other integ…
waleedlatif1 Nov 6, 2026
9321804
fix(org): keep a recent search with a line break on one line
waleedlatif1 Nov 6, 2026
1fa797e
test(org): keep restored contexts optional in the composer fixture
waleedlatif1 Nov 6, 2026
f9d6310
fix(org): stop painting the phone title's surface, and leave the shar…
waleedlatif1 Nov 6, 2026
2bcaa96
Merge remote-tracking branch 'origin/improvement/platform-core-chat' …
waleedlatif1 Nov 6, 2026
b113ffe
test(desktop): import the feature flag provider from its home
waleedlatif1 Nov 6, 2026
7bee50b
fix(platform): keep organizations on the main app while the zone is u…
waleedlatif1 Nov 6, 2026
a983652
fix(org): say why Invite is off where a phone can read it
waleedlatif1 Nov 6, 2026
42f6b12
fix(org): open the usage heatmap on its newest weeks
waleedlatif1 Nov 6, 2026
1e33dea
fix(org): wrap a retention policy's summary instead of clipping it
waleedlatif1 Nov 6, 2026
e2af953
fix(org): run the calendar's now line behind meetings, not through th…
waleedlatif1 Nov 6, 2026
97f2a79
fix(platform): end a long read-only field value in an ellipsis
waleedlatif1 Nov 6, 2026
f185154
fix(org): stop Home's attention dividers with their text, as Workspac…
waleedlatif1 Nov 6, 2026
d5aea16
fix(org): give pick-a-row dialogs one way to close
waleedlatif1 Nov 6, 2026
398c998
fix(org): put Search and Assistant's landing on the 16px phone gutter
waleedlatif1 Nov 6, 2026
5c0af8c
fix(org): reserve a secret row's menu column only once a row has a menu
waleedlatif1 Nov 6, 2026
5d90473
fix(org): give Search MCP's copy field the card's field padding
waleedlatif1 Nov 6, 2026
748da9f
fix(org): stop a not-found page marking General as current, and space…
waleedlatif1 Nov 6, 2026
8665901
fix(org): pick Mothership's time range with the design system's date …
waleedlatif1 Nov 6, 2026
6d091cc
fix(org): drop the desktop toolbar's offset from a phone page's first…
waleedlatif1 Nov 6, 2026
649292a
fix(org): keep the current settings row in view on a short window
waleedlatif1 Nov 6, 2026
74401c4
test(org): report where each route's time goes
waleedlatif1 Nov 6, 2026
818fb5a
test(platform): prove per-organization rollout through the real AppCo…
waleedlatif1 Nov 6, 2026
14e5535
fix(platform): give a rolled-back organization a way off the zone
waleedlatif1 Nov 6, 2026
41653c3
Merge branch 'wip/next-visual-2' into wip/platform-org-wiring
waleedlatif1 Nov 6, 2026
ab46186
fix(org): center access denied like the other route states
waleedlatif1 Nov 6, 2026
a0e67ca
test(platform): prove a self-hosted deployment boots with /o and no zone
waleedlatif1 Nov 6, 2026
b568160
test(platform): prove a misconfigured production zone refuses to start
waleedlatif1 Nov 6, 2026
4c7c3b7
fix(chat): stop spinning the outgoing retry timer on a stale delay
waleedlatif1 Nov 6, 2026
861eea1
fix(chat): send a message with a search scope as its own turn, never …
waleedlatif1 Nov 6, 2026
aa51b01
fix(chat): keep an answer's end-of-conversation behavior under traili…
waleedlatif1 Nov 6, 2026
1cc9aac
fix(organizations): stop the Home waiting probe reading every organiz…
waleedlatif1 Nov 6, 2026
49b06c7
fix(chat): carry every message of a new chat past its surface's unmount
waleedlatif1 Nov 6, 2026
0cdb5c9
fix(chat): keep the zone wait countdown running under a steered message
waleedlatif1 Nov 6, 2026
adcd914
test(platform): drop redundant env resets and type the zone boot envi…
waleedlatif1 Nov 6, 2026
53aeaec
chore(knip): declare the live suite's fixture servers as entry points
waleedlatif1 Nov 6, 2026
0085d2c
fix(chat): find a running turn's saved answer past its steering rows
waleedlatif1 Nov 6, 2026
2ac7622
Merge branch 'wip/next-rollout-tests' into wip/platform-org-wiring
waleedlatif1 Nov 6, 2026
99addba
test(chat): rely on the shared config to restore mocks in the trailin…
waleedlatif1 Nov 6, 2026
092a6fc
test(chat): measure delivery passes without spying on the global timer
waleedlatif1 Nov 6, 2026
d48787f
Merge branch 'wip/next-steering-fixes' into wip/platform-org-wiring
waleedlatif1 Nov 6, 2026
3444b1b
test(platform): wait out the sign-in rate limit in the live suite
waleedlatif1 Nov 6, 2026
930478a
test(platform): read the rollout where the handoff reads it
waleedlatif1 Nov 6, 2026
e0dfcb2
fix(platform): exit when a production zone is misconfigured
waleedlatif1 Nov 6, 2026
6693cfc
fix(platform): move the zone's startup refusal behind the data seam
waleedlatif1 Nov 6, 2026
3a999a6
test(org): prove the page and the extension panel wire Retry and Dism…
waleedlatif1 Nov 6, 2026
7ce11ea
fix(org): center access denied, since only a definite height lets the…
waleedlatif1 Nov 6, 2026
dcabc6c
fix(org): hide secondary admin and request columns on a phone, and fa…
waleedlatif1 Nov 6, 2026
5e4f1c6
feat(chat): read a steering message's disposition without sending it
waleedlatif1 Nov 6, 2026
61b9fbd
Merge remote-tracking branch 'origin/improvement/platform-core-chat' …
waleedlatif1 Nov 6, 2026
978e26f
fix(chat): narrow a disposition read by its status
waleedlatif1 Nov 6, 2026
9896c2c
refine(platform): simplify permission lists and meeting idea cards
emir-karabeg Nov 6, 2026
72253b0
refine(platform): match calendar fill interaction timing
emir-karabeg Nov 6, 2026
5530dd0
fix(chat): hold a steering message a live run has not accepted yet
waleedlatif1 Nov 6, 2026
1626e5c
refine(platform): unify modal fields and manual credentials
emir-karabeg Nov 6, 2026
cf841e5
fix(platform): preserve explicit back-link props
emir-karabeg Nov 6, 2026
fbf01e9
Merge commit 'fb9163dd0b^' into wip/merge-staging-9740
waleedlatif1 Nov 6, 2026
34f9084
Merge staging's org view revert (#9740) without applying it; #9687 sh…
waleedlatif1 Nov 6, 2026
7af15d8
Merge remote-tracking branch 'origin/staging' into wip/merge-staging-…
waleedlatif1 Nov 6, 2026
cced77a
test(chat): keep the E2E undeliverable setup undeliverable under disp…
waleedlatif1 Nov 6, 2026
9b11d90
Merge remote-tracking branch 'origin/improvement/platform-core-chat' …
waleedlatif1 Nov 6, 2026
cd596d2
Merge staging's search history leftovers cleanup (#9746) without appl…
waleedlatif1 Nov 6, 2026
7614846
Merge remote-tracking branch 'origin/staging' into wip/merge-staging-…
waleedlatif1 Nov 6, 2026
6f01b80
fix(organizations): read owned credentials before account statuses on…
waleedlatif1 Nov 6, 2026
6a77bdf
test(chat): re-read message positions until each is on screen
waleedlatif1 Nov 6, 2026
d375b0c
Merge remote-tracking branch 'origin/improvement/platform-core-chat' …
waleedlatif1 Nov 6, 2026
b5a30e9
refactor(emcn): consolidate shared UI and platform refinements
emir-karabeg Nov 7, 2026
5dad616
Merge platform-core-chat into the integration center
emir-karabeg Nov 7, 2026
5f2fc54
Merge the EMCN package split onto the reconciled Platform
emir-karabeg Nov 7, 2026
9c361c3
docs(platform): record the platform-core-chat reconciliation
emir-karabeg Nov 7, 2026
016e3c0
fix(emcn): restore embedded surfaces, drag regions and Docs keyboard …
emir-karabeg Nov 7, 2026
6489e0e
fix(platform): mount the Settings leave guard on live data again
emir-karabeg Nov 7, 2026
bf9bfcd
fix(platform): mount the Settings leave guard on live data again
emir-karabeg Nov 7, 2026
3e5c246
Merge improvement/integration-center into the EMCN package split
emir-karabeg Nov 7, 2026
0a654ed
Merge origin/staging into the integration center and EMCN package split
waleedlatif1 Nov 7, 2026
7a072f5
Merge remote-tracking branch 'origin/staging' into wip/platform-org-w…
waleedlatif1 Nov 7, 2026
3d05b96
fix(platform): label Hex Search reads in the integration metadata
waleedlatif1 Nov 7, 2026
d42c850
fix(platform): give embedded choice menus their bare label
waleedlatif1 Nov 7, 2026
7ef9b03
test(desktop): send account sites from the source-connect stub
waleedlatif1 Nov 7, 2026
d4c9098
test(search): open the date filter through its menu button
waleedlatif1 Nov 7, 2026
6b3a320
refine(platform): load without skeletons and align integration icons
emir-karabeg Nov 7, 2026
d76de99
fix(platform): serve the provider-mark sprite to the organization views
waleedlatif1 Nov 7, 2026
bbc4fb7
improvement(org): show an account's sites and confirm connections in …
waleedlatif1 Nov 7, 2026
1d5c4c8
fix(org): no false success on a redirected connection, and mirror eve…
waleedlatif1 Nov 7, 2026
0eb9b4a
Merge remote-tracking branch 'origin/staging' into wip/platform-org-w…
waleedlatif1 Nov 7, 2026
ecd02bc
refine(platform): paint nothing while Settings, People and Search load
emir-karabeg Nov 7, 2026
40344b7
fix(emcn): give the Geist font tokens a fallback stack
waleedlatif1 Nov 7, 2026
93cf329
Merge platform-core-chat into the loading cleanup
emir-karabeg Nov 7, 2026
59a2fcb
fix(integrations): keep the workspace gallery until the organization …
waleedlatif1 Nov 7, 2026
195e06f
Merge remote-tracking branch 'origin/staging' into wip/platform-org-w…
waleedlatif1 Nov 7, 2026
56327fa
fix(oauth): build the connect confirmation from the EMCN auth package
waleedlatif1 Nov 7, 2026
052ecfe
Revert "fix(emcn): give the Geist font tokens a fallback stack"
waleedlatif1 Nov 7, 2026
6a96baf
refactor(org): report a redirected connection instead of never settling
waleedlatif1 Nov 7, 2026
adb142e
chore(integrations): tighten the Platform rollout docs
waleedlatif1 Nov 7, 2026
68b7b4e
refactor(org): drop fallbacks on values the types guarantee
waleedlatif1 Nov 7, 2026
f2d8ea9
Merge remote-tracking branch 'origin/improvement/platform-core-chat' …
waleedlatif1 Nov 7, 2026
3d5881c
Merge remote-tracking branch 'origin/staging' into wip/platform-org-w…
waleedlatif1 Nov 7, 2026
2a5f305
refactor(org): read connected-accounts data through the data layer
waleedlatif1 Nov 7, 2026
55174ed
refactor(org): read integration settings data through the data layer
waleedlatif1 Nov 7, 2026
6ccf474
refactor(org): read SSO, security and retention data through the data…
waleedlatif1 Nov 7, 2026
2df4be8
refactor(org): fold the new settings data hooks into their domain files
waleedlatif1 Nov 8, 2026
40a2749
fix(org): return focus to Rename organization after a rename
waleedlatif1 Nov 8, 2026
b9f73cb
Merge remote-tracking branch 'origin/staging' into wip/platform-org-w…
waleedlatif1 Nov 8, 2026
1988465
Revert "fix(org): return focus to Rename organization after a rename"
waleedlatif1 Nov 8, 2026
3191067
fix(org): return focus to Rename organization after a rename
waleedlatif1 Nov 8, 2026
ed0c843
Revert "fix(org): return focus to Rename organization after a rename"
waleedlatif1 Nov 8, 2026
3f4adba
refactor(workspace): move shared search, settings and sidebar logic o…
waleedlatif1 Nov 8, 2026
4049ec1
refactor(knowledge): move connector form hooks out of the workspace r…
waleedlatif1 Nov 8, 2026
b9eebb0
Merge remote-tracking branch 'origin/staging' into wip/platform-org-w…
waleedlatif1 Nov 8, 2026
8d699d6
refactor(chat): move the special-tag parser and Search result helpers…
waleedlatif1 Nov 8, 2026
0d03d41
refactor(chat): move source history and link helpers out of the route…
waleedlatif1 Nov 8, 2026
15f3c29
chore(audits): shrink the relative-import baseline after the route-tr…
waleedlatif1 Nov 8, 2026
69849d4
refactor(org): move shared Sim link and search setup modules out of t…
waleedlatif1 Nov 8, 2026
a510e9a
fix(org): return focus to Rename organization after a rename
waleedlatif1 Nov 8, 2026
8d7c744
Merge remote-tracking branch 'origin/staging' into wip/platform-org-w…
waleedlatif1 Nov 8, 2026
8fc0e8e
refactor(knowledge): move the connector form hooks under hooks/kb/con…
waleedlatif1 Nov 8, 2026
97394e0
refactor(chat): keep the chat slot models in lib/mothership/chat/types
waleedlatif1 Nov 8, 2026
3aab004
refactor(sidebar): share the sidebar chrome context from components/
waleedlatif1 Nov 8, 2026
7f895e3
chore(boundaries): lock in the smaller workspace layout and page modu…
waleedlatif1 Nov 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
6 changes: 3 additions & 3 deletions .agents/skills/add-column-type/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Decide what a cell literally holds in `user_table_rows.data` (JSONB). This drive

## Step 2: Add the icon

Create `packages/emcn/src/icons/type-{name}.tsx`, copying the geometry conventions of its siblings exactly:
Create `packages/emcn-legacy/src/icons/type-{name}.tsx`, copying the geometry conventions of its siblings exactly:

```tsx
import type { SVGProps } from 'react'
Expand Down Expand Up @@ -82,7 +82,7 @@ export function Type{Pascal}(props: SVGProps<SVGSVGElement>) {

- `viewBox='-1.75 -1.5 24 24'` is the **`type-*` family** value, not the set-wide default. Match the family.
- Center the glyph on the viewBox's optical center (**y = 10.5**, **x = 10.25**) — every sibling does, and a few tenths off is visible at `size-[14px]`.
- Export alphabetically **by component name** in `packages/emcn/src/icons/index.ts`.
- Export alphabetically **by component name** in `packages/emcn-legacy/src/icons/index.ts`.

## Step 3: Write the type file

Expand Down Expand Up @@ -118,7 +118,7 @@ Prefer set-based SQL. When the transform genuinely needs JS (`currency`'s separa

- **Import cycles.** `column-types/select.ts` imports `lib/table/select-values.ts`, so `select-values.ts` must **not** import the registry — that closes a cycle and fails at module init. Inside a type's own helper module the string literal is the implementation, not a config leak.
- **The client-safe boundary.** `registry.ts` and everything it imports must stay free of `@sim/db`, `drizzle-orm`, and `next/server` — the tables grid imports it directly. A React icon is fine (it's a component *reference*, never called server-side). Only `registry.server.ts` may touch drizzle.
- **Don't re-export the registry from `@/lib/table`.** Dozens of server modules import that barrel; routing this through it pulls `@sim/emcn/icons` into all of them. Deep-import `@/lib/table/column-types`.
- **Don't re-export the registry from `@/lib/table`.** Dozens of server modules import that barrel; routing this through it pulls `@sim/emcn-legacy/icons` into all of them. Deep-import `@/lib/table/column-types`.
- **`import.ts`'s `coerceValue` is a SECOND write path and is not opt-in.** Importing into a column of your type always hits it, and its `default` arm silently `String(value)`s — so a missing `case` stores text in a column whose `jsonbCast` is numeric, and then every filter and sort on that column errors in Postgres. Add a `case`, even though the switch compiles without one. (It is deliberately separate from the registry's `coerce`: an import wants an unparseable value to survive as its raw string so the row error can name it.)
- **CSV inference** is an ordered heuristic in `import.ts`, deliberately not registry-driven. A new type is not inferred from a CSV unless you extend `inferColumnType` — usually you should not, since inference cannot supply configuration (an option set, a currency code).

Expand Down
4 changes: 2 additions & 2 deletions .agents/skills/add-enrichment/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Why it matters: the cascade runner only bills (and only reads `output.cost.total
Create `apps/sim/enrichments/{id}/{id}.ts` and a barrel `index.ts`. Mirror the entries registered in `enrichments/registry.ts`.

```typescript
import { SomeIcon } from '@sim/emcn/icons'
import { SomeIcon } from '@sim/emcn-legacy/icons'
import { filterUndefined } from '@sim/utils/object'
import { normalizeDomain, splitName, str, toolProvider } from '@/enrichments/providers'
import type { EnrichmentConfig } from '@/enrichments/types'
Expand Down Expand Up @@ -111,7 +111,7 @@ export { myEnrichment } from './my-enrichment'
```

Rules:
- Keep the file **client-safe**: import only `@sim/emcn/icons`, `@sim/utils/*`, `@/enrichments/providers`, and the types. **Never import `@/tools`** here — the runner does the tool call.
- Keep the file **client-safe**: import only `@sim/emcn-legacy/icons`, `@sim/utils/*`, `@/enrichments/providers`, and the types. **Never import `@/tools`** here — the runner does the tool call.
- `buildParams` returns `null` when inputs are insufficient (provider skipped). `mapOutput` returns `null`/empty for a miss (falls through). Use `filterUndefined` when assembling optional tool params; coerce numbers explicitly (don't pass `''` to number outputs).
- Output `id`s are the keys `mapOutput` returns; output `name`s are the default column names (the user can rename them in the config).

Expand Down
12 changes: 7 additions & 5 deletions .agents/skills/add-settings-page/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
---
name: add-settings-page
description: Add a new Sim settings page, or audit existing settings pages for design-system compliance with the shared SettingsPanel layout. Use when creating a settings tab, or when asked to check/clean up settings pages so they match the design system (consistent title, header, search, spacing).
description: Add or audit settings pages that use SettingsPanel in the existing Sim app. Use implement-platform for isolated Platform settings.
---

# Settings Page (add / audit)

For `apps/sim/platform/**`, use [implement-platform](../implement-platform/SKILL.md). In a mixed request, apply the steps below only to the existing app's settings.

Settings page chrome (header bar, scroll region, content column, nav-driven
title + description) is owned by the `settings/[section]/layout.tsx` shell. Each
page renders through **`SettingsPanel`**, which registers the page's header data
Expand Down Expand Up @@ -45,28 +47,28 @@ For each page component, confirm the checklist in `.claude/rules/sim-settings-pa
Each grep lists candidates; review every match against the expected ones named below.

1. Find hand-rolled shells that should be `SettingsPanel`:
`git grep -n "flex h-full flex-col bg-\[var(--bg)\]" -- 'apps/sim/**/settings/**' 'apps/sim/ee/'`
`git grep -n "flex h-full flex-col bg-\[var(--bg)\]" -- 'apps/sim/**/settings/**' 'apps/sim/ee/' ':(exclude)apps/sim/platform/**'`
— expected matches: the workspace and organization `settings/layout.tsx` shells and the
shared header shell (`components/settings/settings-header.tsx`); an entitlement/loading gate
is also fine. `CredentialDetailLayout` (the `settings/secrets/[credentialId]` exception) is
an exempt hand-rolled shell outside these pathspecs. A detail sub-view is never a match: it
passes `back={{ text, icon: ArrowLeft, onSelect }}` to `SettingsPanel`. Anything else is a
violation: render it through `SettingsPanel`.
2. Find hand-rolled title blocks:
`git grep -n "text-\[var(--text-body)\] text-lg" -- 'apps/sim/**/settings/**' 'apps/sim/ee/'`
`git grep -n "text-\[var(--text-body)\] text-lg" -- 'apps/sim/**/settings/**' 'apps/sim/ee/' ':(exclude)apps/sim/platform/**'`
— the only title is the `<h1>` in `settings-header.tsx`; a non-heading value at that size
(e.g. the credit balance in `ee/organization-usage/components/usage-credits.tsx`) is fine.
3. Find literal pixel text sizes (should be 0 — see "Text Scale" in
`.claude/rules/sim-styling.md`):
`git grep -nE "text-\[1[0-8]px\]" -- 'apps/sim/**/settings/**' 'apps/sim/ee/'`.
`git grep -nE "text-\[1[0-8]px\]" -- 'apps/sim/**/settings/**' 'apps/sim/ee/' ':(exclude)apps/sim/platform/**'`.
Display type above the scale (`text-[40px]` hero headings) is deliberate and out of
scope.
4. Confirm each page imports `SettingsPanel` and that its registry entry has an
accurate `description` of consistent length with its peers.
- Editable pages: confirm Save/Discard go through `saveDiscardActions()` and
dirty is wired via `useSettingsUnsavedGuard` (called before early-return
gates) — flag any hand-rolled Save button, `beforeunload`, or unsaved modal.
`git grep -n "beforeunload" -- 'apps/sim/**/settings/**' 'apps/sim/ee/' 'apps/sim/components/settings/' ':(exclude,glob)**/*.test.*'`
`git grep -n "beforeunload" -- 'apps/sim/**/settings/**' 'apps/sim/ee/' 'apps/sim/components/settings/' ':(exclude)apps/sim/platform/**' 'apps/sim/hooks/use-settings-browser-navigation.ts' ':(exclude,glob)**/*.test.*'`
should only hit the centralized `use-settings-browser-navigation.ts`.
5. Fix each finding with the smallest structural change that satisfies the checklist;
do not touch handlers, state, queries, or gate returns. A pixel-size fix swaps
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/cleanup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Run these in parallel on the parsed `scope`:
3. `/you-might-not-need-a-callback <scope> fix=false`
4. `/you-might-not-need-state <scope> fix=false`
5. `/react-query-best-practices <scope> fix=false`
6. `/emcn-design-review <scope> fix=false`
6. Design review: route `apps/sim/platform/**` to [implement-platform](../implement-platform/SKILL.md) and existing app EMCN paths to [emcn-design-review](../emcn-design-review/SKILL.md). For a mixed diff, the same pass reviews each subset with its own contract. Both reviews are read-only and return proposals for Step 2.
7. `/you-might-not-need-url-state <scope> fix=false`
8. `/you-might-not-need-a-comment <scope> fix=false`
9. `/test-audit audit <test paths>` — read-only; only when the scope adds or changes test files (`*.test.ts(x)`, `*.integration.ts`, `**/e2e/**`, `apps/sim/scripts/test-*-e2e.ts`). First resolve a free-form scope to the concrete list of added or changed test paths (`git diff --name-only` against the scope's base) and pass those paths. It applies the authoring gate to every new or changed test and proposes deleting the ones that fail it.
Expand Down
4 changes: 2 additions & 2 deletions .agents/skills/design-taste-frontend/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ source: https://github.com/leonxlnx/taste-skill — skills/taste-skill/SKILL.md
description: Anti-slop frontend skill for landing pages, portfolios, and redesigns. The agent reads the brief, infers the right design direction, and ships interfaces that do not look templated. Real design systems when applicable, audit-first on redesigns, strict pre-flight check.
---

> **In this repo:** Tailwind 4 (CSS-first config in `apps/sim/app/_styles/globals.css`); animation via `import { motion } from 'framer-motion'` (not `motion/react`); icons from `@sim/emcn/icons`; colors through the CSS-variable tokens in `.claude/rules/sim-styling.md` (no hardcoded `text-gray-*`/hex/`zinc` utilities, no paired `dark:` utilities). This note overrides any conflicting guidance or code sample anywhere in this file. Fonts are fixed (Season body, Inter); never introduce new families, and never use Martian Mono on landing (`apps/sim/app/(landing)/CLAUDE.md`). Font weight is only `font-normal`/`font-medium`/`font-semibold`. Elevation uses the `shadow-subtle|medium|overlay|card` tokens. Type size uses named tokens, never `text-[Npx]`. Every labeled field inside a `ChipModalBody` is a `ChipModalField`. Use `bunx`, never `npx`. Do not add GSAP, Lenis, Three, or shadcn. On landing pages, motion is CSS first; an animation library stays out of the initial bundle and loads below the fold through `next/dynamic` (`apps/sim/app/(landing)/CLAUDE.md`). Landing copy and SEO follow `.claude/rules/constitution.md` and `.claude/rules/landing-seo-geo.md`.
> **In this repo:** Tailwind 4 (CSS-first config in `apps/sim/app/_styles/globals.css`); animation via `import { motion } from 'framer-motion'` (not `motion/react`); icons from `@sim/emcn-legacy/icons`; colors through the CSS-variable tokens in `.claude/rules/sim-styling.md` (no hardcoded `text-gray-*`/hex/`zinc` utilities, no paired `dark:` utilities). This note overrides any conflicting guidance or code sample anywhere in this file. Fonts are fixed (Season body, Inter); never introduce new families, and never use Martian Mono on landing (`apps/sim/app/(landing)/CLAUDE.md`). Font weight is only `font-normal`/`font-medium`/`font-semibold`. Elevation uses the `shadow-subtle|medium|overlay|card` tokens. Type size uses named tokens, never `text-[Npx]`. Every labeled field inside a `ChipModalBody` is a `ChipModalField`. Use `bunx`, never `npx`. Do not add GSAP, Lenis, Three, or shadcn. On landing pages, motion is CSS first; an animation library stays out of the initial bundle and loads below the fold through `next/dynamic` (`apps/sim/app/(landing)/CLAUDE.md`). Landing copy and SEO follow `.claude/rules/constitution.md` and `.claude/rules/landing-seo-geo.md`.

# tasteskill: Anti-Slop Frontend Skill

Expand Down Expand Up @@ -141,7 +141,7 @@ Unless the design read picks a real design system (Section 2.A), these are the d
* **NEVER** use `useState` to track continuous values driven by user input (mouse position, scroll progress, pointer physics, magnetic hover). Use Motion's `useMotionValue` / `useTransform` / `useScroll`. `useState` re-renders the React tree on every change and collapses on mobile.

### 3.C Icons
* **Icons:** in this repo, `@sim/emcn/icons` only — one family per tree, `strokeWidth` standardized. Outside this repo, pick one maintained library and standardize on it.
* **Icons:** in this repo, `@sim/emcn-legacy/icons` only — one family per tree, `strokeWidth` standardized. Outside this repo, pick one maintained library and standardize on it.

### 3.D Emoji Policy
Discouraged by default in code, markup, and visible text. Replace symbols with icon-library glyphs. **Override:** allow emojis only when the user explicitly asks for a playful / chat-style / social-native vibe - and even then use them sparingly with intent.
Expand Down
12 changes: 6 additions & 6 deletions .agents/skills/emcn-design-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: emcn-design-review
description: Review UI code for alignment with the emcn design system — components, tokens, patterns, and conventions
description: Review the existing Sim app against packages/emcn. Route isolated Platform UI in apps/sim/platform to implement-platform.
argument-hint: "[scope] [fix=true|false]"
---

Expand All @@ -14,11 +14,11 @@ User arguments: $ARGUMENTS

## Context

This codebase uses **emcn**, a custom component library built on Radix UI primitives with CVA variants and CSS variable design tokens. All UI must use emcn components and tokens.
The existing Sim app uses `packages/emcn-legacy`, its Radix primitives, CVA variants, and CSS tokens. For `apps/sim/platform/**`, use [implement-platform](../implement-platform/SKILL.md). For mixed scopes, review each file under its owning system and preserve the requested `fix` mode for both.

## Steps

1. Read the emcn public barrel at `packages/emcn/src/index.ts` (re-exports components, Calendar, Table*, and icons) to know what's available; for the full icon set read `packages/emcn/src/icons/index.ts`
1. Read the emcn public barrel at `packages/emcn-legacy/src/index.ts` (re-exports components, Calendar, Table*, and icons) to know what's available; for the full icon set read `packages/emcn-legacy/src/icons/index.ts`
2. Read `apps/sim/app/_styles/globals.css` for CSS variable tokens
3. Analyze the specified scope against every rule below
4. If fix=true, apply the fixes. If fix=false, propose the fixes without applying.
Expand All @@ -27,8 +27,8 @@ This codebase uses **emcn**, a custom component library built on Radix UI primit

## Imports

- Components, `cn`, and tokens from the `@sim/emcn` barrel, never component subpaths
- Icons from `@sim/emcn/icons`
- Components, `cn`, and tokens from the `@sim/emcn-legacy` barrel, never component subpaths
- Icons from `@sim/emcn-legacy/icons`

## Design Tokens

Expand All @@ -52,7 +52,7 @@ Use `ChipConfirmModal` (title "Delete/Remove {ItemType}", `confirm={{ label, onC

## Toast

`toast.success()`, `toast.error()`, `toast()` from `@sim/emcn`. Never custom notification UI.
`toast.success()`, `toast.error()`, `toast()` from `@sim/emcn-legacy`. Never custom notification UI.

## Badges

Expand Down
Loading
Loading