v0.9.30: mship improvements, mcp tool and skill discovery, docs refinements by waleedlatif1 · Pull Request #9270 · simstudioai/sim · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
d904e17
chore(mothership): sync the Search assistant tool contract from mothe…
waleedlatif1 Oct 20, 2026
58b3485
fix(chat): keep previous messages stable when sending (#9249)
waleedlatif1 Oct 20, 2026
57cc81e
improvement(sim-cli): publish each command's path aliases and renamed…
waleedlatif1 Oct 20, 2026
4b3adfe
feat(helpscout): add Help Scout integration with OAuth and app creden…
waleedlatif1 Oct 20, 2026
4a8d7d3
improvement(mothership): show the worker's display copy for a turn er…
waleedlatif1 Oct 20, 2026
06d4334
docs(library): rework no-code AI agent builders roundup into the lean…
waleedlatif1 Oct 20, 2026
fcf8fab
improvement(library): merge near-duplicate posts into their stronger …
waleedlatif1 Oct 20, 2026
fa72023
docs(library): tighten n8n alternatives and fix its tool count (#9258)
waleedlatif1 Oct 20, 2026
fe4a403
docs(library): restructure open source AI agents guide around its hea…
waleedlatif1 Oct 20, 2026
e24a910
docs(library): rework Zapier alternatives into the lean roundup forma…
waleedlatif1 Oct 20, 2026
4bd6871
feat(helpscout): knowledge base connector, auto-registered triggers, …
waleedlatif1 Oct 21, 2026
4be882a
fix(mothership): keep integration discovery working when a tagged mcp…
waleedlatif1 Oct 21, 2026
72eef16
fix(tools): advertise json and any params without an object type, and…
waleedlatif1 Oct 21, 2026
463350c
feat(mothership): send workspace skill ids and descriptions in the ch…
waleedlatif1 Oct 21, 2026
f2b5823
feat(mothership): discover every workspace mcp server without tagging…
waleedlatif1 Oct 21, 2026
9c977fb
improvement(mothership): rank integration discovery by bm25 and conne…
waleedlatif1 Oct 21, 2026
36dc539
docs(library): correct vendor facts and Flowise status found in the l…
waleedlatif1 Oct 21, 2026
96ab7c8
fix(mothership): keep untagged mcp discovery side-effect free and the…
waleedlatif1 Oct 21, 2026
19f2475
fix(comparisons): lead Flowise copy with its end of life, qualify Ret…
waleedlatif1 Oct 21, 2026
c8e39fb
improvement(insights): clarify unassigned usage and refresh usage cha…
waleedlatif1 Oct 21, 2026
fd4323a
improvement(docs): refine screenshots, copy, and API interactions (#9…
waleedlatif1 Oct 21, 2026
daca837
fix(comparisons): Retool self-hosting is on every plan, not Enterpris…
waleedlatif1 Oct 21, 2026
f2ead22
fix(insights): keep paused calendars visible and chart scales finite …
waleedlatif1 Oct 21, 2026
6511ea4
fix(helpscout): require explicit tags to clear, validate custom field…
waleedlatif1 Oct 21, 2026
5d029a3
fix(mothership): bound best-effort mcp discovery and stop retrying a …
waleedlatif1 Oct 21, 2026
658ccc8
improvement(docs): simplify integration page headers (#9275)
waleedlatif1 Oct 21, 2026
f839cc2
fix(ci): reset a broken desktop-live dev cache from a passing job (#9…
waleedlatif1 Oct 21, 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
  •  
  •  
  •  
6 changes: 5 additions & 1 deletion .github/actions/cache/action.yml
65 changes: 65 additions & 0 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,12 @@ jobs:
clear_cache() {
find "$GITHUB_WORKSPACE/apps/sim/.next/dev" -mindepth 1 -maxdepth 1 -exec rm -rf {} +
}
# A sticky disk keeps nothing from a failed job, so a clear here sticks only when the job
# passes. The marker names the cache for desktop-live-cache-reset, which empties it after
# a failed job; written on each panic, it survives the restart truncating the log.
mark_cache_broken() {
jq -r .version "$GITHUB_WORKSPACE/node_modules/next/package.json" > "$report_dir/turbopack-cache-broken"
}
# SIGINT first: `next dev` SIGKILLs its server 100ms after SIGTERM, which discards a cache
# write in flight. stop-session.sh then removes anything still running.
# SIGINT is best-effort; the cleanup always runs, since workers and the detached telemetry
Expand All @@ -490,6 +496,7 @@ jobs:
wait "$server_pid" "$realtime_pid" 2>/dev/null || true
if cache_broken; then
echo "::warning::Turbopack reported a broken dev cache; clearing it for the next run."
mark_cache_broken
clear_cache
fi
exit "$status"
Expand All @@ -511,6 +518,7 @@ jobs:
if [ "$retried" = 0 ] && cache_broken; then
echo "::warning::Turbopack rejected the restored dev cache; restarting from an empty cache."
bash "$GITHUB_WORKSPACE/.github/scripts/stop-session.sh" "$server_pid" "$server_tag"
mark_cache_broken
clear_cache
: > "$next_log"
retried=1
Expand Down Expand Up @@ -543,6 +551,63 @@ jobs:
if-no-files-found: ignore
retention-days: 7

# Empties a dev cache Turbopack panicked on in a failed desktop-live run. The run's own clear is
# discarded with the rest of its failed job, so every later run would restore the same broken
# cache and fail; emptied in this passing job, the empty cache is what the next run mounts. A
# failure the cache did not cause leaves no marker, and the warm cache stays.
desktop-live-cache-reset:
name: desktop-live cache reset
needs: desktop-live
if: ${{ always() && needs.desktop-live.result == 'failure' }}
runs-on: *runner-2vcpu
timeout-minutes: 5
steps:
- name: Download desktop-live results
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
pattern: desktop-live-e2e-results-*
path: ${{ runner.temp }}/desktop-live
merge-multiple: true

# The marker carries only the Next version; the rest of the key comes from this run's own
# context, as in desktop-live, so a fork's marker can name no cache but its own.
- name: Resolve the broken cache's key
id: broken
env:
MARKER: ${{ runner.temp }}/desktop-live/turbopack-cache-broken
FORK_SUFFIX: ${{ github.event.pull_request.head.repo.fork && '-fork' || '' }}
run: |
if [ ! -s "$MARKER" ]; then
echo "No broken dev cache reported; keeping the warm cache."
exit 0
fi
next_version="$(head -n 1 "$MARKER")"
if ! [[ "$next_version" =~ ^[0-9]+\.[0-9]+\.[0-9]+[0-9A-Za-z.-]*$ ]]; then
echo "::error::The broken cache marker holds no Next version: '$next_version'"
exit 1
fi
echo "key=${GITHUB_REPOSITORY}-next-dev-desktop-live-${GITHUB_EVENT_NAME}${FORK_SUFFIX}-${next_version}" >> "$GITHUB_OUTPUT"
- *checkout-mirror
- *checkout-plain

# A desktop-live leg that passed may have saved this run's actions/cache entry already; the
# suffix gives the emptied cache its own, newer entry for the next run's prefix restore.
- name: Mount the broken dev cache
if: steps.broken.outputs.key != ''
uses: ./.github/actions/cache
with:
provider: ${{ vars.CI_PROVIDER }}
key: ${{ steps.broken.outputs.key }}
path: ./apps/sim/.next/dev
save-suffix: -reset

- name: Empty the dev cache
if: steps.broken.outputs.key != ''
run: |
mkdir -p apps/sim/.next/dev
find apps/sim/.next/dev -mindepth 1 -maxdepth 1 -exec rm -rf {} +
# Lint, audits, type-check and the schema sync check: about two minutes of mostly cached work,
# kept off the test shards so neither waits on the other.
lint:
Expand Down
42 changes: 39 additions & 3 deletions apps/docs/COPY_AUDIT.md
Loading
Loading