shortcutxl 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BINARY-INVENTORY.json +12 -12
- package/CHANGELOG.md +6 -0
- package/dist/app/session/model-manager.d.ts +1 -1
- package/dist/app/session/model-manager.js +4 -1
- package/dist/app/session/session-lifecycle.js +14 -12
- package/dist/cli.js +12 -8
- package/dist/supported-models.generated.js +1 -1
- package/native-app/main/index.js +5 -5
- package/native-app/package.json +1 -1
- package/native-app/renderer/assets/{index-DkKrXRl6.js → index-De3NGXD5.js} +8 -6
- package/native-app/renderer/index.html +1 -1
- package/package.json +1 -1
- package/xll/python/Lib/site-packages/httpx-0.28.1.dist-info/RECORD +1 -1
- package/xll/python/Lib/site-packages/idna-3.18.dist-info/RECORD +1 -1
- package/xll/python/Lib/site-packages/pip-26.2.dist-info/RECORD +3 -3
- package/xll/python/Lib/site-packages/pywin32-311.dist-info/RECORD +2 -2
- package/xll/python/Scripts/httpx.exe +0 -0
- package/xll/python/Scripts/idna.exe +0 -0
- package/xll/python/Scripts/pip.exe +0 -0
- package/xll/python/Scripts/pip3.13.exe +0 -0
- package/xll/python/Scripts/pip3.exe +0 -0
- package/xll/python/Scripts/pywin32_postinstall.exe +0 -0
- package/xll/python/Scripts/pywin32_testall.exe +0 -0
package/BINARY-INVENTORY.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"generatedAt": "2026-10-
|
|
3
|
+
"generatedAt": "2026-10-20T06:34:34.546Z",
|
|
4
4
|
"package": "shortcutxl",
|
|
5
5
|
"build": {
|
|
6
6
|
"builder": "github-actions",
|
|
7
7
|
"repository": "lyfegame/shortcut",
|
|
8
|
-
"sourceRef": "refs/
|
|
9
|
-
"sourceCommit": "
|
|
10
|
-
"workflowRef": "lyfegame/shortcut/.github/workflows/release-shortcut-cli-npm-package.yml@refs/
|
|
11
|
-
"runId": "
|
|
8
|
+
"sourceRef": "refs/heads/main",
|
|
9
|
+
"sourceCommit": "d31a59fd8f7ebec7800d9bd325ccc4835ecab91c",
|
|
10
|
+
"workflowRef": "lyfegame/shortcut/.github/workflows/release-shortcut-cli-npm-package.yml@refs/heads/main",
|
|
11
|
+
"runId": "39380994342",
|
|
12
12
|
"runnerOs": "Windows",
|
|
13
13
|
"runnerImage": "win25-vs2026",
|
|
14
14
|
"runnerImageVersion": "20261007.264.1"
|
|
@@ -550,7 +550,7 @@
|
|
|
550
550
|
},
|
|
551
551
|
{
|
|
552
552
|
"path": "xll/python/Scripts/httpx.exe",
|
|
553
|
-
"sha256": "
|
|
553
|
+
"sha256": "0ae7fc1605a56db84f3824478722830defc55116228e0d6ce810d593cc54f4e3",
|
|
554
554
|
"source": "httpx console launcher installed into embedded Python",
|
|
555
555
|
"version": "see packaged httpx distribution",
|
|
556
556
|
"builtBy": "third-party",
|
|
@@ -558,7 +558,7 @@
|
|
|
558
558
|
},
|
|
559
559
|
{
|
|
560
560
|
"path": "xll/python/Scripts/idna.exe",
|
|
561
|
-
"sha256": "
|
|
561
|
+
"sha256": "2aba1463e9caa2be1f8f12beee70995c893af72dd9dc81a8317056e478a15470",
|
|
562
562
|
"source": "Python package console launcher installed into embedded Python",
|
|
563
563
|
"version": "see owning Python package metadata in site-packages",
|
|
564
564
|
"builtBy": "third-party",
|
|
@@ -566,7 +566,7 @@
|
|
|
566
566
|
},
|
|
567
567
|
{
|
|
568
568
|
"path": "xll/python/Scripts/pip.exe",
|
|
569
|
-
"sha256": "
|
|
569
|
+
"sha256": "ccdb9c9263d20f71609aadb08a785ba78c7e6f6757437629d96fd1078f6676af",
|
|
570
570
|
"source": "pip console launcher installed into embedded Python",
|
|
571
571
|
"version": "see packaged pip distribution",
|
|
572
572
|
"builtBy": "third-party",
|
|
@@ -574,7 +574,7 @@
|
|
|
574
574
|
},
|
|
575
575
|
{
|
|
576
576
|
"path": "xll/python/Scripts/pip3.13.exe",
|
|
577
|
-
"sha256": "
|
|
577
|
+
"sha256": "ccdb9c9263d20f71609aadb08a785ba78c7e6f6757437629d96fd1078f6676af",
|
|
578
578
|
"source": "pip console launcher installed into embedded Python",
|
|
579
579
|
"version": "see packaged pip distribution",
|
|
580
580
|
"builtBy": "third-party",
|
|
@@ -582,7 +582,7 @@
|
|
|
582
582
|
},
|
|
583
583
|
{
|
|
584
584
|
"path": "xll/python/Scripts/pip3.exe",
|
|
585
|
-
"sha256": "
|
|
585
|
+
"sha256": "ccdb9c9263d20f71609aadb08a785ba78c7e6f6757437629d96fd1078f6676af",
|
|
586
586
|
"source": "pip console launcher installed into embedded Python",
|
|
587
587
|
"version": "see packaged pip distribution",
|
|
588
588
|
"builtBy": "third-party",
|
|
@@ -590,7 +590,7 @@
|
|
|
590
590
|
},
|
|
591
591
|
{
|
|
592
592
|
"path": "xll/python/Scripts/pywin32_postinstall.exe",
|
|
593
|
-
"sha256": "
|
|
593
|
+
"sha256": "72d1e776a493eddcfbcd852b3b9f79c50480d6886fffa1c1798d88625148f22a",
|
|
594
594
|
"source": "Python package console launcher installed into embedded Python",
|
|
595
595
|
"version": "see owning Python package metadata in site-packages",
|
|
596
596
|
"builtBy": "third-party",
|
|
@@ -598,7 +598,7 @@
|
|
|
598
598
|
},
|
|
599
599
|
{
|
|
600
600
|
"path": "xll/python/Scripts/pywin32_testall.exe",
|
|
601
|
-
"sha256": "
|
|
601
|
+
"sha256": "13146537a7cf67f66380470f48d4de7d2d4d12632415c673f191ab0e744fad7d",
|
|
602
602
|
"source": "Python package console launcher installed into embedded Python",
|
|
603
603
|
"version": "see owning Python package metadata in site-packages",
|
|
604
604
|
"builtBy": "third-party",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.4.1]
|
|
4
|
+
|
|
5
|
+
- Prevent unsupported thinking Off for Claude Opus 5.5 and repair saved Off selections to Medium.
|
|
6
|
+
- Keep new desktop chats from inheriting placeholder Off while models or login are initializing.
|
|
7
|
+
- Handle thinking controls safely before a model is selected.
|
|
8
|
+
|
|
3
9
|
## [0.4.0]
|
|
4
10
|
|
|
5
11
|
- **Sign in again after upgrading** - Shortcut credentials now use an account store scoped to the selected deployment. Existing CLI and desktop users must sign in again; standalone provider keys remain available.
|
|
@@ -15,7 +15,7 @@ import type { ModelSessionStore } from './session-store-types.js';
|
|
|
15
15
|
/** Minimal agent interface — only what ModelManager needs to push state. */
|
|
16
16
|
export interface ModelManagerAgent {
|
|
17
17
|
state: {
|
|
18
|
-
model: Model<any
|
|
18
|
+
model: Model<any> | undefined;
|
|
19
19
|
thinkingLevel: ThinkingLevel;
|
|
20
20
|
};
|
|
21
21
|
setModel(model: Model<any>): void;
|
|
@@ -48,7 +48,10 @@ export class ModelManager {
|
|
|
48
48
|
}
|
|
49
49
|
/** Set thinking level, clamped to model capabilities. Persists only on change. */
|
|
50
50
|
setThinkingLevel(level) {
|
|
51
|
-
const
|
|
51
|
+
const model = this._agent.state.model;
|
|
52
|
+
if (!model)
|
|
53
|
+
return;
|
|
54
|
+
const effective = resolveModelReasoningLevel(model, level);
|
|
52
55
|
const isChanging = effective !== this._agent.state.thinkingLevel;
|
|
53
56
|
this._agent.setThinkingLevel(effective);
|
|
54
57
|
if (isChanging) {
|
|
@@ -116,18 +116,20 @@ export async function executeSwitchSession(params) {
|
|
|
116
116
|
await models.restoreModel(match);
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
119
|
+
if (agent.state.model) {
|
|
120
|
+
const hasThinkingEntry = sessionManager
|
|
121
|
+
.getBranch()
|
|
122
|
+
.some((entry) => entry.type === 'thinking_level_change');
|
|
123
|
+
const defaultThinkingLevel = settingsManager.getDefaultThinkingLevel() ??
|
|
124
|
+
resolveModelReasoningLevel(agent.state.model, undefined);
|
|
125
|
+
if (hasThinkingEntry) {
|
|
126
|
+
// Restore thinking level if saved (setThinkingLevel clamps to model capabilities)
|
|
127
|
+
setThinkingLevel(sessionContext.thinkingLevel);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
// Set thinking level without persisting — we're restoring, not changing
|
|
131
|
+
models.setThinkingLevel(defaultThinkingLevel);
|
|
132
|
+
}
|
|
131
133
|
}
|
|
132
134
|
reconnectToAgent();
|
|
133
135
|
return true;
|
package/dist/cli.js
CHANGED
|
@@ -302549,7 +302549,7 @@ var init_supported_models_generated = __esm({
|
|
|
302549
302549
|
control: "adaptive-effort",
|
|
302550
302550
|
defaultLevel: "medium",
|
|
302551
302551
|
levels: ["low", "medium", "high", "xhigh", "max"],
|
|
302552
|
-
supportsOff:
|
|
302552
|
+
supportsOff: false
|
|
302553
302553
|
}
|
|
302554
302554
|
},
|
|
302555
302555
|
protocol: "anthropic-messages"
|
|
@@ -317447,7 +317447,9 @@ var init_model_manager = __esm({
|
|
|
317447
317447
|
}
|
|
317448
317448
|
/** Set thinking level, clamped to model capabilities. Persists only on change. */
|
|
317449
317449
|
setThinkingLevel(level) {
|
|
317450
|
-
const
|
|
317450
|
+
const model = this._agent.state.model;
|
|
317451
|
+
if (!model) return;
|
|
317452
|
+
const effective = resolveModelReasoningLevel(model, level);
|
|
317451
317453
|
const isChanging = effective !== this._agent.state.thinkingLevel;
|
|
317452
317454
|
this._agent.setThinkingLevel(effective);
|
|
317453
317455
|
if (isChanging) {
|
|
@@ -318351,12 +318353,14 @@ async function executeSwitchSession(params) {
|
|
|
318351
318353
|
await models.restoreModel(match2);
|
|
318352
318354
|
}
|
|
318353
318355
|
}
|
|
318354
|
-
|
|
318355
|
-
|
|
318356
|
-
|
|
318357
|
-
|
|
318358
|
-
|
|
318359
|
-
|
|
318356
|
+
if (agent.state.model) {
|
|
318357
|
+
const hasThinkingEntry = sessionManager.getBranch().some((entry) => entry.type === "thinking_level_change");
|
|
318358
|
+
const defaultThinkingLevel = settingsManager.getDefaultThinkingLevel() ?? resolveModelReasoningLevel(agent.state.model, void 0);
|
|
318359
|
+
if (hasThinkingEntry) {
|
|
318360
|
+
setThinkingLevel(sessionContext.thinkingLevel);
|
|
318361
|
+
} else {
|
|
318362
|
+
models.setThinkingLevel(defaultThinkingLevel);
|
|
318363
|
+
}
|
|
318360
318364
|
}
|
|
318361
318365
|
reconnectToAgent();
|
|
318362
318366
|
return true;
|
package/native-app/main/index.js
CHANGED
|
@@ -273,7 +273,7 @@ const MODEL_CATALOG = {
|
|
|
273
273
|
control: "adaptive-effort",
|
|
274
274
|
defaultLevel: "medium",
|
|
275
275
|
levels: ["low", "medium", "high", "xhigh", "max"],
|
|
276
|
-
supportsOff:
|
|
276
|
+
supportsOff: false
|
|
277
277
|
}
|
|
278
278
|
},
|
|
279
279
|
protocol: "anthropic-messages"
|
|
@@ -18235,7 +18235,7 @@ const startupDiagnostics = createStartupDiagnosticWriter({
|
|
|
18235
18235
|
resolveRemoteContext: (cwd, binding) => resolveDesktopStartupLogContext({ cwd, binding }),
|
|
18236
18236
|
directory: join(app.getPath("userData"), "logs"),
|
|
18237
18237
|
appVersion: app.getVersion(),
|
|
18238
|
-
runtimeBundleVersion: "0.4.
|
|
18238
|
+
runtimeBundleVersion: "0.4.1",
|
|
18239
18239
|
launchRoute: readLaunchArgument("shortcut-runtime-cli") ? "explicit" : app.isPackaged ? "packaged" : "unpackaged"
|
|
18240
18240
|
});
|
|
18241
18241
|
const agents = new AgentProcessManager({
|
|
@@ -18251,7 +18251,7 @@ const fileMentions = new FileMentionSearchService();
|
|
|
18251
18251
|
let mainWindow = null;
|
|
18252
18252
|
let attachmentTempDirectory;
|
|
18253
18253
|
const updateOptions = {
|
|
18254
|
-
currentVersion: "0.4.
|
|
18254
|
+
currentVersion: "0.4.1",
|
|
18255
18255
|
offline: isTruthyEnvFlag(process.env.SHORTCUT_OFFLINE),
|
|
18256
18256
|
skipCheck: isTruthyEnvFlag(process.env.SHORTCUT_SKIP_VERSION_CHECK),
|
|
18257
18257
|
onNotice: (notice) => mainWindow?.webContents.send(AgentIpcChannel.UpdateNoticeEvent, notice)
|
|
@@ -18271,7 +18271,7 @@ const setup = new AppSetupManager({
|
|
|
18271
18271
|
});
|
|
18272
18272
|
const deviceRunner = createDeviceRunnerService({
|
|
18273
18273
|
userDataDir: app.getPath("userData"),
|
|
18274
|
-
appVersion: "0.4.
|
|
18274
|
+
appVersion: "0.4.1",
|
|
18275
18275
|
nodePath: process.execPath,
|
|
18276
18276
|
cliPath: runtimeLayout.cliPath,
|
|
18277
18277
|
defaultRuntimeDir: join(process.resourcesPath, "automation-runtime"),
|
|
@@ -18524,7 +18524,7 @@ function createWindow() {
|
|
|
18524
18524
|
`${JSON.stringify({
|
|
18525
18525
|
appReady: true,
|
|
18526
18526
|
packaged: app.isPackaged,
|
|
18527
|
-
version: "0.4.
|
|
18527
|
+
version: "0.4.1",
|
|
18528
18528
|
runtimeCliPath: runtimeLayout.cliPath,
|
|
18529
18529
|
runtimeExists: existsSync$1(runtimeLayout.cliPath)
|
|
18530
18530
|
})}
|
package/native-app/package.json
CHANGED
|
@@ -29009,7 +29009,7 @@ const COMMANDS = [
|
|
|
29009
29009
|
["/permissions", "Runtime access"],
|
|
29010
29010
|
["/goal", "Persistent execution"]
|
|
29011
29011
|
];
|
|
29012
|
-
const changelogMarkdown = "# Changelog\n\n## [0.4.0]\n\n- **Sign in again after upgrading** - Shortcut credentials now use an account store scoped to the selected deployment. Existing CLI and desktop users must sign in again; standalone provider keys remain available.\n\n- **Faster Windows startup with connected integrations** - Reduce credential-store work and prevent token refreshes from blocking unrelated MCP integrations during startup.\n- **Better Excel connection recovery** - Detect when Excel disconnects or restarts, refresh the connection, and report more useful native Excel failure details.\n\n- **Updated model selection and controls** - Add GPT-6.1 Sol and Claude Sonnet 5.5, update response-speed and thinking controls, and improve model selection for task agents.\n- **Continue desktop work in Shortcut Cloud** - Pause a local conversation, select a saved workbook and supporting files, and prepare a cloud continuation.\n- **Accurate desktop permission controls** - Unstarted chats show saved defaults explicitly; approval choices made before sending remain in effect when the runtime starts.\n- **Desktop navigation and file previews** - Preview linked text, images, and videos inside the app, with updated keyboard shortcuts and session controls.\n- **Account and integration routing** - Add deployment-aware account routing and user-configured private gateway support, with improved MCP login persistence and token refresh recovery.\n- **Long-running agent reliability** - Improve subagent context compaction, model transport handling, and terminal rendering.\n\n## [0.3.92]\n\n- **Latest OpenAI and Anthropic models** - Select GPT-6 Sol, GPT-6 Luna, or Claude Opus 5.5 in the CLI and Windows app. New CLI sessions default to GPT-6 Sol.\n- **Simpler model selector** - Replaced GPT-5.6 Sol/Luna and Opus 5 in the selector with their successors. Existing saved sessions and explicit model selections remain supported.\n\n## [0.3.91]\n\n- **GPT-6 Astra** - GPT-6 Astra is now available in the model selector.\n- **Faster, more reliable MCP startup** - Shortcut now starts MCP integrations faster, retries temporary connection failures, and clearly reports servers that take too long to start.\n\n## [0.3.90]\n\n- **Skill Forge** - A recursive self-improvement loop for skills. Create or improve personal skills by giving Skill Forge tasks and a grading bar to train, evaluate, and refine against.\n- **Safer, more reliable Excel changes** - Shortcut now asks for approval before making workbook changes and allows longer operations to finish without timing out.\n- **Credit usage at a glance** - See today's personal credit usage for non-teams users.\n\n## [0.3.88]\n\n- **More reliable app startup** - Fixed startup failures on slower or managed Windows computers.\n- **Easier skill sync** - Click a sync warning to jump straight to the setting that needs attention.\n\n## [0.3.87]\n\n- **Shorty reviewers** - Inspector Shorty checks recent workbook changes for issues, while Doctor Shorty reviews your saved memory and personal skills.\n- **More reliable native app startup** - Fixed app bugs and resolved some app stability issues.\n\n## [0.3.86]\n\n- **Signed Windows installer and updates** - Shortcut now ships as a signed Windows app installer, with versioned installer and updater assets published on [GitHub Releases](https://github.com/lyfegame/shortcutxl-releases/releases).\n- **Clearer installation flow** - Windows setup guidance now describes Shortcut's bundled runtime, includes Office-wide recovery steps, and keeps Excel, Word, and PowerPoint integrations current during first run and upgrades.\n- **Scrollable approval dialogs** - Long approval requests in the native app now remain fully accessible.\n\n## [0.3.84]\n\n- **Work across Excel, Word, and PowerPoint** - On Windows, Shortcut can now discover and work with open Word documents and PowerPoint presentations alongside Excel.\n- **Simpler skill setup and sync** - The native app now finds skills from Claude Code and Codex automatically, and adds a dedicated place to review and sync differences with Shortcut Cloud.\n\n## [0.3.83]\n\n- **More reliable native app chats**\n\n## [0.3.82]\n\n- **Safer CLI and app updates**\n- **More reliable native chats for app**\n- **Drag and drop file attachments for app**\n\n## [0.3.81]\n\n- **Smoother native setup and upgrades** - `shortcut app` now guides first-run prerequisites and required Excel integration updates directly in the app.\n- **Native resources and MCP management** - The native app adds dedicated Skills, Memories, and MCP pages.\n\n## [0.3.80]\n\n- **Shortcut app updates** - The native app now surfaces available updates, installs and restarts in place.\n- **Model and effort updates** - Free and Personal Pro now default to GPT-5.6 Luna.\n- **Cost-aware task agents** - Task-agent models now stay within the active model's cost tier: premium models use Sol or Opus, lower-cost and custom models use Luna, and Pivot remains on Pivot.\n- **More focused delegation** - Agents now use the minimum necessary task agents.\n- **Multiple Excel instances** - CLI and native app sessions now detect multiple Excel processes and target the intended workbook reliably.\n- **More reliable long sessions** - CLI rendering now shows finalized assistant responses, and stricter compaction preserves queued turns while preventing oversized or stale-context model calls.\n\n## [0.3.79]\n\n- **Security and privacy hardening** - Session telemetry now defaults off, runtime tool downloads are integrity-verified, native-app protections are stronger, and package release verification has been expanded.\n\n## [0.3.78]\n\n- **More performant spreadsheet operations** - Read/write operations should be much faster and less buggy.\n- **Linked local files** - Open local file links from agent responses in both the CLI and native app.\n- **Safer read-only modes** - Ask and Plan modes no longer expose shell execution, and mode switching avoids unnecessary skill scans.\n- **Native app polish** - Refreshed the native app design and improved chat autoscrolling during active sessions.\n- **Auto-update reminders** - Update reminders will be surfaced in open terminal windows.\n\n## [0.3.77]\n\n- **Native app file mentions** - Type `@` in the native app to search and attach workspace files with the same completion behavior as the CLI.\n- **Custom model setup** - A bundled skill now guides configuration of compatible custom model providers.\n- **Subagent permissions** - CLI subagents inherit the active permission policy and surface nested approval requests more clearly.\n\n## [0.3.76]\n\n- **Claude Opus 5** - Claude Opus 5 is now available as ShortcutXL's high-accuracy Opus option.\n\n## [0.3.75]\n\n- **Native desktop app** - Run `shortcut app` for a multi-session desktop experience with tools, approvals, subagents, attachments, skills, themes, and account controls.\n\n## [0.3.72]\n\n- **Excel sheet mentions** - Type `@` in the CLI to autocomplete sheets from open workbooks alongside file attachments.\n\n## [0.3.71]\n\n- **Responsive retry recovery** - CLI sessions now keep showing retry progress and can cancel an active retry without freezing.\n\n## [0.3.70]\n\n- **GPT-5.6 Sol default** - ShortcutXL now defaults CLI and embedded sessions to GPT-5.6 Sol and shows clearer compact model labels.\n- **Path-based attachments** - Fixed CLI file attachments that reference files by path.\n\n## [0.3.69]\n\n- **CLI screenshot capture** - ShortcutXL can now capture screenshots from CLI sessions, giving agents visual context when working with Excel or the desktop.\n\n## [0.3.68]\n\n- **Model availability fix** - Introducing GLM 5.2 and Pivot models for eligible individual CLI accounts, not teams plans.\n- **Persistent prompt history** — Your prompt history now persists across CLI sessions and can be accessed by up/down arrows.\n\n## [0.3.65]\n\n- **Fable is back**\n- **/goal mode** — Set a goal for longer-running work and have the agent auto-continue toward it across turns.\n- **Faster web search** — Web search now runs through Exa with QPS-aware throttling for quicker, more reliable batch lookups.\n\n## [0.3.63]\n\n- **Windows runtime security** - Updated the embedded Windows SQLite DLL used by ShortcutXL's bundled Python runtime.\n- **Default model update** - Updated the default model to Fable for individual users, while team accounts continue to use Opus 4.8.\n\n## [0.3.61]\n\n- **ShortcutXL plugin guidance** - Refreshed the bundled Claude and Codex ShortcutXL plugin guidance.\n\n## [0.3.60]\n\n- **Safer shell approvals** - High-risk Outlook-style send and delete shell operations now require explicit one-time approval even when runtime shell bypass is enabled.\n- **ShortcutXL plugin sync** - ShortcutXL now detects stale Claude and Codex plugin installs and can update them from the bundled plugin copy.\n\n## [0.3.59]\n\n- **Security and model updates** - Strengthened account policy checks and updated model routing/defaults.\n\n## [0.3.57]\n\n- **Improved Windows reliability** - Improved ShortcutXL install, upgrade, and uninstall behavior on Windows.\n- **Improved security** - Strengthened release validation and account policy checks.\n\n## [0.3.56]\n\n- **Claude and Codex ShortcutXL understanding** - Refreshed the built-in ShortcutXL guidance and spreadsheet API context so Claude and Codex understand ShortcutXL workflows more reliably.\n- **Model updates** - Updated model routing and defaults around Claude Opus 4.8.\n- **Reliability fixes** - Improved Windows XLL sync/uninstall cleanup.\n\n## [0.3.55]\n\n- **Improved error handling** - Improved error handling.\n\n## [0.3.54]\n\n- **Skill selector rendering** - Skill source and visibility selectors now stay within narrow Windows terminal widths.\n\n## [0.3.53]\n\n- **Enterprise MCP OAuth fixes** - Hosted enterprise MCP servers now handle OAuth discovery and proxied requests more reliably.\n\n## [0.3.52]\n\n- **Team fast mode policy** - Fast Mode is now automatically disabled for team accounts, with a clear message when your team policy blocks it.\n- **Cleaner footer and shortcuts** - The footer now uses shorter model names, shows model/thinking hotkeys inline, and moves model cycling to `alt+p`, thinking to `alt+t`, and runtime permission bypass to `alt+r`.\n- **Copy selection hint** - Selecting transcript text now shows a `Ctrl+C to copy` hint while preserving the exact copied text.\n\n## [0.3.51]\n\n- **TUI rendering and text selection** - Improved TUI rendering, scrolling. Fixed text highlighting and selection for copy pastes.\n- **Agentic MCP setup** - Agents can now help set up MCP servers through `shortcut mcp add/list/get/login/logout/remove`, with clearer login, logs, and OAuth settings.\n- **User-requested session settings** - When asked, agents can inspect available models and thinking levels or apply your requested session change.\n- **Skill sync clarity** - Skill sync now shows startup differences plus per-file upload/download changes, source, and visibility.\n- **Fast mode toggle** - Fast Mode now shows in the footer and can be toggled with `alt+f` or `/fast`, with clearer availability warnings.\n- **Scrollable approvals** - Large approval and permission dialogs now scroll properly, including spreadsheet change tables in small terminals.\n\n## [0.3.50]\n\n- **MCP-enabled task agents** - General task agents can now use connected MCP servers, giving delegated work access to the same external tools and resources as the main CLI.\n- **Safer skill uploads** - Uploading skills no longer treats missing local skills as cloud deletions, so remote-only skills stay untouched unless explicitly replaced.\n- **Misc bug fixes** - Shift+A for agent panel, wording, clarity.\n\n## [0.3.49]\n\n- **Transcript scrolling & rendering** - Long conversations now scroll more cleanly with mouse wheel, PageUp/PageDown, and Ctrl+Home/Ctrl+End support while the editor and footer stay pinned.\n- **Longer-running task agents** - Background task agents now get a 30-minute default timeout, reducing early timeouts on bigger jobs.\n- **Clearer path-based skills** - Skills loaded from custom folders are grouped by their real root paths so the agent can find and use them more reliably.\n\n## [0.3.48]\n\n- **Background subagents** - Subagents can now work in the background, be steered during conversations, be revived for additional tasks once they are done, and have their statuses surfaced in the UI.\n- **Skill proposals** - ShortcutXL now automatically browses through past sessions and suggests new skills and skill modifications.\n\n## [0.3.47]\n\n- **GPT-5.5** — Upgraded the OpenAI reasoning model from GPT-5.4 to GPT-5.5 (400K context window, stronger reasoning).\n- **Out-of-credits message** — When your credit balance runs out, ShortcutXL now shows a clear message instead of silently failing.\n\n## [0.3.46]\n\n- **`alt+m` to cycle modes** — New keyboard shortcut to cycle between Ask, Plan, and Action modes.\n- **Automatic session recovery** — ShortcutXL now silently refreshes your token and retries when the session expires mid-run, instead of surfacing a \"Session expired\" error.\n\n## [0.3.45]\n\n- **Preserve Excel calculation mode** — ShortcutXL no longer overrides Excel's calculation mode during code execution. If you have manual calculation enabled, it stays manual while Shortcut runs your code.\n\n## [0.3.44]\n\n- **Shorty mascot** — Replaced the braille X logo with a new Shorty block-art mascot.\n- **Plan mode bug fix** — Fixed an issue where plan mode was unable to read files.\n\n## [0.3.43]\n\n- **Security & stability** — Internal hardening fixes across the runtime.\n\n## [0.3.42]\n\n- **Hosted MCP OAuth** — ShortcutXL now supports OAuth-authenticated hosted MCP servers. Configure a hosted MCP in `mcp.json`, then log in from `/mcp` or `/login`, see `login required` status when auth is missing, and log out again directly from the MCP menu.\n- **AgentController context cleanup** — Simplified agent context and prompt behavior for cleaner single-turn and multi-turn execution.\n\n## [0.3.40]\n\n- **Runtime permissions** — New `/permissions` command to review and change what file and shell tools can do. Approve individual workspaces, grant narrower read or read/write exceptions to files and folders outside them, and toggle spreadsheet auto-approve per settings profile.\n- **Skip runtime and spreadsheet permissions** — Explicit `/permissions skip-runtime-permissions` (and matching `--skip-runtime-permissions` / `--skip-spreadsheet-permissions` CLI flags) for when you intentionally want those permission boundaries disabled.\n\n## [0.3.39]\n\n- **Claude Opus 4.7** - Added Claude Opus 4.7 as a selectable Shortcut model with a 1M-token context window.\n- **Clearer mode switching** - Action, Plan, and Installation now each expose only the mode switches that are actually valid from that mode.\n- **More reliable Excel connection handling** - ShortcutXL now gives clearer guidance and better context for Excel and workbook state.\n\n## [0.3.38]\n\n- **Inline `/skill:name` invocations** — Trigger a skill from anywhere in your message, not just the start.\n- **Interactive approval for skill downloads** — `/download-skills` now shows per-skill diffs (modified, local-only, and remote-only files) and asks before replacing a local skill folder with the cloud copy.\n- **Larger context windows** — Claude Opus 4.6 bumped to 400K tokens; GPT-5.4 bumped to 272K tokens.\n\n## [0.3.37]\n\n- **Bug fixes** — Improved stability for autonomous workflows and update checks.\n\n## [0.3.36]\n\n- **Managed-network install fix** - ShortcutXL no longer fails installation on locked-down networks just because WhatsApp phone control depends on a GitHub-hosted package. Standard installs now succeed without needing GitHub SSH access.\n\n## [0.3.35]\n\n- **Edit-mode detection** — When you're editing a cell, ShortcutXL now detects it and waits instead of throwing a cryptic COM error. You'll see a prompt asking you to press Enter or Escape, and execution resumes automatically.\n- **Bug fixes** — General stability and reliability improvements across credit reporting, Excel operations, session resumption, and concurrency.\n\n## [0.3.34]\n\n- **Revamped update flow** - When an update is available at launch, ShortcutXL now prompts before the shell starts and runs the update in the foreground.\n- **Import skills from Claude Code and Codex** - New `/port-skills` lets you register skills from Claude Code, Codex, and `.agents` folders.\n- **Better `/autonomous` continuation** - Long-running autonomous tasks now continue more cleanly after a context refresh instead of losing the thread mid-run.\n\n## [0.2.32]\n\n- **Durable memory** - ShortcutXL now remembers useful context across sessions, so you no longer need to repeat the same preferences and project details every time you start a new conversation.\n- **Faster and more reliable tool use** - Read-only tools can run while the assistant is still streaming, interrupted turns recover more gracefully, and long responses continue more reliably.\n- **`/manage` mode** - New delegation-focused mode for complex work. Use `/manage` when you want the agent to coordinate tasks instead of executing everything directly.\n- **Tool summaries** - The interactive UI now shows short human-readable summaries of tool executions so it's easier to follow what the agent is doing.\n- **Budgeted runs** - New `/budget <token-budget> <task>` command for long-running work with an explicit cumulative token limit.\n- **More reliable MCP connections** - Long-running MCP tools now handle timeouts and progress more gracefully, with clearer errors and better visibility in `/mcp`.\n- **Skill visibility controls** - `/skills` now lets you choose which loaded skills are advertised to the agent. Unchecked skills stay available through explicit `/skill:name`.\n- **Skill upload** - New `/upload-skills` command to push your local user skills to cloud storage, with approval before overwriting or deleting an existing remote copy.\n- **Faster workbook startup context** - ShortcutXL now uses a lighter workbook context during startup, improving responsiveness before deeper workbook inspection is needed.\n\n## [0.2.31]\n\n- **Improved agent behavior quality** — Better exploration, verification, and convention-matching when working with spreadsheets.\n\n## [0.2.30]\n\n- **MCP server support** — Connect external tools via the Model Context Protocol. Ask the agent to set one up and it will walk you through config, credentials via `/connect`, and verification. Use `/mcp` to see connected servers and their tools.\n- **Loops** — Set up recurring tasks with `/loop`. The agent executes them in the background and shows a status line in the footer. Example: `/loop 5m pull latest google earnings when it drops`.\n- **Autonomous mode** — Run `/autonomous` to let the agent tackle complex tasks end-to-end. It collaborates with you on a phased plan, then executes each phase with built-in implementation, testing, and independent review cycles.\n\n## [0.2.28]\n\n- **Three working modes** — Ask questions about your spreadsheet (Ask), plan complex changes before executing (Plan), or jump straight into edits (Action). Switch anytime with `/ask`, `/plan`, `/action`.\n- **Claude Code & Codex plugin integration** — Use ShortcutXL as a skill directly from Claude Code or Codex.\n- **Improved installation experience** — Smoother setup with better error handling and guided prompts.\n- **Built-in help** — `/docs` opens a guide covering features, workflows, and integrations.\n- **Cleaner status bar** — Simplified token usage display in the footer.\n\n## [0.2.27]\n\n- **Friendlier setup experience** — First-time install now shows plain-language step names (e.g. \"Calculation Engine\" instead of \"Python Packages\") and a prominent green prompt when Excel needs to be opened.\n\n## [0.2.26]\n\n- **Workbook scope** — When multiple workbooks are open, ShortcutXL now asks which ones to focus on. The agent only sees the workbooks you select, keeping context tight and responses more relevant.\n- **Connections** — Connect external data sources via `/connect`. Supports databases (Snowflake, Postgres, Oracle, MySQL), SaaS APIs (Salesforce, Notion, HubSpot, Airtable), and cloud drives. Credentials are stored in the OS keychain.\n- **Skill sync** — Download shared skills from the cloud with `/download-skills`.\n- **Skill creator** — A built-in eval-driven workflow for authoring, testing, and improving custom skills.\n- **Fixed local install issues** — Resolved a shell path bug that could prevent the CLI from launching after a global package-manager install.\n\n## [0.2.22]\n\n- **Tool extensions** — Build custom tools that the agent can call.\n- **Sandbox hardening** — The sandbox now blocks more ways code could escape isolation. When you update ShortcutXL, the sandbox automatically updates itself too.\n- **Faster install** — Sandbox is now downloaded on demand instead of bundled.\n\n## [0.2.19]\n\n- **Sandbox & security hardening** — Code execution can now optionally run inside a sandbox (/sandbox) that blocks unauthorized file writes, reads, and in-bound and out-bound network traffic.\n- **Clearer privacy controls** - You can opt out of conversation uploads to our servers for complete privacy.\n\n## [0.2.18]\n\n- **Fixed startup crash** — Resolved a circular import in the Python modules that caused \"internal error\" on every Excel action.\n\n## [0.2.17]\n\n- **Better change review dialog** — Cell diffs now show full addresses (e.g. `Sheet1!A1`), formula details, and keyboard navigation with arrow keys for scrolling through large changesets.\n- **Alt+V paste is more reliable** — Fixed cases where Alt+V would fail silently. Now gives clear feedback and handles clipboard errors gracefully.\n- **Skill saving bug fixed** — Skills are not saved in the correct directory and survives application updates.\n- **Clean terminal on launch** — Starting ShortcutXL now clears prior output so you always begin with a fresh screen.\n\n## [0.2.14]\n\n- **Python linting & type checking** — Added ruff and pyright checks for the Python modules and tests. Import sorting, unused variables, and type errors are now caught before publish.\n- **Cleaner dead-code detection** — Removed unused TypeScript exports and tightened knip configuration.\n\n## [0.2.13]\n\n- **Stay logged in across terminals** — Previously, opening a new terminal while others were running could force you to log in again. Now your session persists reliably no matter how many terminals you have open.\n\n## [0.2.12]\n\n- **No more popup windows during updates** — Background updates now run silently instead of flashing a command prompt on your screen.\n\n## [0.2.11]\n\n- **More reliable first-time setup** — ShortcutXL now waits for Excel to be fully ready before running its connection test, so setup succeeds on the first try even on slower machines.\n- **Switched to production servers** — All traffic now routes through `shortcut.ai` production endpoints for better performance and reliability.\n\n## [0.2.9]\n\n- **Works without Python on your PATH** — ShortcutXL now finds and loads Python automatically. No more fiddling with environment variables or system settings to get things working.\n\n## [0.1.1]\n\n- **Update notifications** — ShortcutXL tells you when a new version is available and shows you the exact command to upgrade.\n- **Survives reinstalls** — Updating or reinstalling the npm package no longer breaks your Excel setup. Everything keeps working without reconfiguration.\n- **Handles Excel locks gracefully** — If Excel has ShortcutXL loaded during an update, you get a clear message instead of a crash.\n".replace(/^# Changelog\s*/, "");
|
|
29012
|
+
const changelogMarkdown = "# Changelog\n\n## [0.4.1]\n\n- Prevent unsupported thinking Off for Claude Opus 5.5 and repair saved Off selections to Medium.\n- Keep new desktop chats from inheriting placeholder Off while models or login are initializing.\n- Handle thinking controls safely before a model is selected.\n\n## [0.4.0]\n\n- **Sign in again after upgrading** - Shortcut credentials now use an account store scoped to the selected deployment. Existing CLI and desktop users must sign in again; standalone provider keys remain available.\n\n- **Faster Windows startup with connected integrations** - Reduce credential-store work and prevent token refreshes from blocking unrelated MCP integrations during startup.\n- **Better Excel connection recovery** - Detect when Excel disconnects or restarts, refresh the connection, and report more useful native Excel failure details.\n\n- **Updated model selection and controls** - Add GPT-6.1 Sol and Claude Sonnet 5.5, update response-speed and thinking controls, and improve model selection for task agents.\n- **Continue desktop work in Shortcut Cloud** - Pause a local conversation, select a saved workbook and supporting files, and prepare a cloud continuation.\n- **Accurate desktop permission controls** - Unstarted chats show saved defaults explicitly; approval choices made before sending remain in effect when the runtime starts.\n- **Desktop navigation and file previews** - Preview linked text, images, and videos inside the app, with updated keyboard shortcuts and session controls.\n- **Account and integration routing** - Add deployment-aware account routing and user-configured private gateway support, with improved MCP login persistence and token refresh recovery.\n- **Long-running agent reliability** - Improve subagent context compaction, model transport handling, and terminal rendering.\n\n## [0.3.92]\n\n- **Latest OpenAI and Anthropic models** - Select GPT-6 Sol, GPT-6 Luna, or Claude Opus 5.5 in the CLI and Windows app. New CLI sessions default to GPT-6 Sol.\n- **Simpler model selector** - Replaced GPT-5.6 Sol/Luna and Opus 5 in the selector with their successors. Existing saved sessions and explicit model selections remain supported.\n\n## [0.3.91]\n\n- **GPT-6 Astra** - GPT-6 Astra is now available in the model selector.\n- **Faster, more reliable MCP startup** - Shortcut now starts MCP integrations faster, retries temporary connection failures, and clearly reports servers that take too long to start.\n\n## [0.3.90]\n\n- **Skill Forge** - A recursive self-improvement loop for skills. Create or improve personal skills by giving Skill Forge tasks and a grading bar to train, evaluate, and refine against.\n- **Safer, more reliable Excel changes** - Shortcut now asks for approval before making workbook changes and allows longer operations to finish without timing out.\n- **Credit usage at a glance** - See today's personal credit usage for non-teams users.\n\n## [0.3.88]\n\n- **More reliable app startup** - Fixed startup failures on slower or managed Windows computers.\n- **Easier skill sync** - Click a sync warning to jump straight to the setting that needs attention.\n\n## [0.3.87]\n\n- **Shorty reviewers** - Inspector Shorty checks recent workbook changes for issues, while Doctor Shorty reviews your saved memory and personal skills.\n- **More reliable native app startup** - Fixed app bugs and resolved some app stability issues.\n\n## [0.3.86]\n\n- **Signed Windows installer and updates** - Shortcut now ships as a signed Windows app installer, with versioned installer and updater assets published on [GitHub Releases](https://github.com/lyfegame/shortcutxl-releases/releases).\n- **Clearer installation flow** - Windows setup guidance now describes Shortcut's bundled runtime, includes Office-wide recovery steps, and keeps Excel, Word, and PowerPoint integrations current during first run and upgrades.\n- **Scrollable approval dialogs** - Long approval requests in the native app now remain fully accessible.\n\n## [0.3.84]\n\n- **Work across Excel, Word, and PowerPoint** - On Windows, Shortcut can now discover and work with open Word documents and PowerPoint presentations alongside Excel.\n- **Simpler skill setup and sync** - The native app now finds skills from Claude Code and Codex automatically, and adds a dedicated place to review and sync differences with Shortcut Cloud.\n\n## [0.3.83]\n\n- **More reliable native app chats**\n\n## [0.3.82]\n\n- **Safer CLI and app updates**\n- **More reliable native chats for app**\n- **Drag and drop file attachments for app**\n\n## [0.3.81]\n\n- **Smoother native setup and upgrades** - `shortcut app` now guides first-run prerequisites and required Excel integration updates directly in the app.\n- **Native resources and MCP management** - The native app adds dedicated Skills, Memories, and MCP pages.\n\n## [0.3.80]\n\n- **Shortcut app updates** - The native app now surfaces available updates, installs and restarts in place.\n- **Model and effort updates** - Free and Personal Pro now default to GPT-5.6 Luna.\n- **Cost-aware task agents** - Task-agent models now stay within the active model's cost tier: premium models use Sol or Opus, lower-cost and custom models use Luna, and Pivot remains on Pivot.\n- **More focused delegation** - Agents now use the minimum necessary task agents.\n- **Multiple Excel instances** - CLI and native app sessions now detect multiple Excel processes and target the intended workbook reliably.\n- **More reliable long sessions** - CLI rendering now shows finalized assistant responses, and stricter compaction preserves queued turns while preventing oversized or stale-context model calls.\n\n## [0.3.79]\n\n- **Security and privacy hardening** - Session telemetry now defaults off, runtime tool downloads are integrity-verified, native-app protections are stronger, and package release verification has been expanded.\n\n## [0.3.78]\n\n- **More performant spreadsheet operations** - Read/write operations should be much faster and less buggy.\n- **Linked local files** - Open local file links from agent responses in both the CLI and native app.\n- **Safer read-only modes** - Ask and Plan modes no longer expose shell execution, and mode switching avoids unnecessary skill scans.\n- **Native app polish** - Refreshed the native app design and improved chat autoscrolling during active sessions.\n- **Auto-update reminders** - Update reminders will be surfaced in open terminal windows.\n\n## [0.3.77]\n\n- **Native app file mentions** - Type `@` in the native app to search and attach workspace files with the same completion behavior as the CLI.\n- **Custom model setup** - A bundled skill now guides configuration of compatible custom model providers.\n- **Subagent permissions** - CLI subagents inherit the active permission policy and surface nested approval requests more clearly.\n\n## [0.3.76]\n\n- **Claude Opus 5** - Claude Opus 5 is now available as ShortcutXL's high-accuracy Opus option.\n\n## [0.3.75]\n\n- **Native desktop app** - Run `shortcut app` for a multi-session desktop experience with tools, approvals, subagents, attachments, skills, themes, and account controls.\n\n## [0.3.72]\n\n- **Excel sheet mentions** - Type `@` in the CLI to autocomplete sheets from open workbooks alongside file attachments.\n\n## [0.3.71]\n\n- **Responsive retry recovery** - CLI sessions now keep showing retry progress and can cancel an active retry without freezing.\n\n## [0.3.70]\n\n- **GPT-5.6 Sol default** - ShortcutXL now defaults CLI and embedded sessions to GPT-5.6 Sol and shows clearer compact model labels.\n- **Path-based attachments** - Fixed CLI file attachments that reference files by path.\n\n## [0.3.69]\n\n- **CLI screenshot capture** - ShortcutXL can now capture screenshots from CLI sessions, giving agents visual context when working with Excel or the desktop.\n\n## [0.3.68]\n\n- **Model availability fix** - Introducing GLM 5.2 and Pivot models for eligible individual CLI accounts, not teams plans.\n- **Persistent prompt history** — Your prompt history now persists across CLI sessions and can be accessed by up/down arrows.\n\n## [0.3.65]\n\n- **Fable is back**\n- **/goal mode** — Set a goal for longer-running work and have the agent auto-continue toward it across turns.\n- **Faster web search** — Web search now runs through Exa with QPS-aware throttling for quicker, more reliable batch lookups.\n\n## [0.3.63]\n\n- **Windows runtime security** - Updated the embedded Windows SQLite DLL used by ShortcutXL's bundled Python runtime.\n- **Default model update** - Updated the default model to Fable for individual users, while team accounts continue to use Opus 4.8.\n\n## [0.3.61]\n\n- **ShortcutXL plugin guidance** - Refreshed the bundled Claude and Codex ShortcutXL plugin guidance.\n\n## [0.3.60]\n\n- **Safer shell approvals** - High-risk Outlook-style send and delete shell operations now require explicit one-time approval even when runtime shell bypass is enabled.\n- **ShortcutXL plugin sync** - ShortcutXL now detects stale Claude and Codex plugin installs and can update them from the bundled plugin copy.\n\n## [0.3.59]\n\n- **Security and model updates** - Strengthened account policy checks and updated model routing/defaults.\n\n## [0.3.57]\n\n- **Improved Windows reliability** - Improved ShortcutXL install, upgrade, and uninstall behavior on Windows.\n- **Improved security** - Strengthened release validation and account policy checks.\n\n## [0.3.56]\n\n- **Claude and Codex ShortcutXL understanding** - Refreshed the built-in ShortcutXL guidance and spreadsheet API context so Claude and Codex understand ShortcutXL workflows more reliably.\n- **Model updates** - Updated model routing and defaults around Claude Opus 4.8.\n- **Reliability fixes** - Improved Windows XLL sync/uninstall cleanup.\n\n## [0.3.55]\n\n- **Improved error handling** - Improved error handling.\n\n## [0.3.54]\n\n- **Skill selector rendering** - Skill source and visibility selectors now stay within narrow Windows terminal widths.\n\n## [0.3.53]\n\n- **Enterprise MCP OAuth fixes** - Hosted enterprise MCP servers now handle OAuth discovery and proxied requests more reliably.\n\n## [0.3.52]\n\n- **Team fast mode policy** - Fast Mode is now automatically disabled for team accounts, with a clear message when your team policy blocks it.\n- **Cleaner footer and shortcuts** - The footer now uses shorter model names, shows model/thinking hotkeys inline, and moves model cycling to `alt+p`, thinking to `alt+t`, and runtime permission bypass to `alt+r`.\n- **Copy selection hint** - Selecting transcript text now shows a `Ctrl+C to copy` hint while preserving the exact copied text.\n\n## [0.3.51]\n\n- **TUI rendering and text selection** - Improved TUI rendering, scrolling. Fixed text highlighting and selection for copy pastes.\n- **Agentic MCP setup** - Agents can now help set up MCP servers through `shortcut mcp add/list/get/login/logout/remove`, with clearer login, logs, and OAuth settings.\n- **User-requested session settings** - When asked, agents can inspect available models and thinking levels or apply your requested session change.\n- **Skill sync clarity** - Skill sync now shows startup differences plus per-file upload/download changes, source, and visibility.\n- **Fast mode toggle** - Fast Mode now shows in the footer and can be toggled with `alt+f` or `/fast`, with clearer availability warnings.\n- **Scrollable approvals** - Large approval and permission dialogs now scroll properly, including spreadsheet change tables in small terminals.\n\n## [0.3.50]\n\n- **MCP-enabled task agents** - General task agents can now use connected MCP servers, giving delegated work access to the same external tools and resources as the main CLI.\n- **Safer skill uploads** - Uploading skills no longer treats missing local skills as cloud deletions, so remote-only skills stay untouched unless explicitly replaced.\n- **Misc bug fixes** - Shift+A for agent panel, wording, clarity.\n\n## [0.3.49]\n\n- **Transcript scrolling & rendering** - Long conversations now scroll more cleanly with mouse wheel, PageUp/PageDown, and Ctrl+Home/Ctrl+End support while the editor and footer stay pinned.\n- **Longer-running task agents** - Background task agents now get a 30-minute default timeout, reducing early timeouts on bigger jobs.\n- **Clearer path-based skills** - Skills loaded from custom folders are grouped by their real root paths so the agent can find and use them more reliably.\n\n## [0.3.48]\n\n- **Background subagents** - Subagents can now work in the background, be steered during conversations, be revived for additional tasks once they are done, and have their statuses surfaced in the UI.\n- **Skill proposals** - ShortcutXL now automatically browses through past sessions and suggests new skills and skill modifications.\n\n## [0.3.47]\n\n- **GPT-5.5** — Upgraded the OpenAI reasoning model from GPT-5.4 to GPT-5.5 (400K context window, stronger reasoning).\n- **Out-of-credits message** — When your credit balance runs out, ShortcutXL now shows a clear message instead of silently failing.\n\n## [0.3.46]\n\n- **`alt+m` to cycle modes** — New keyboard shortcut to cycle between Ask, Plan, and Action modes.\n- **Automatic session recovery** — ShortcutXL now silently refreshes your token and retries when the session expires mid-run, instead of surfacing a \"Session expired\" error.\n\n## [0.3.45]\n\n- **Preserve Excel calculation mode** — ShortcutXL no longer overrides Excel's calculation mode during code execution. If you have manual calculation enabled, it stays manual while Shortcut runs your code.\n\n## [0.3.44]\n\n- **Shorty mascot** — Replaced the braille X logo with a new Shorty block-art mascot.\n- **Plan mode bug fix** — Fixed an issue where plan mode was unable to read files.\n\n## [0.3.43]\n\n- **Security & stability** — Internal hardening fixes across the runtime.\n\n## [0.3.42]\n\n- **Hosted MCP OAuth** — ShortcutXL now supports OAuth-authenticated hosted MCP servers. Configure a hosted MCP in `mcp.json`, then log in from `/mcp` or `/login`, see `login required` status when auth is missing, and log out again directly from the MCP menu.\n- **AgentController context cleanup** — Simplified agent context and prompt behavior for cleaner single-turn and multi-turn execution.\n\n## [0.3.40]\n\n- **Runtime permissions** — New `/permissions` command to review and change what file and shell tools can do. Approve individual workspaces, grant narrower read or read/write exceptions to files and folders outside them, and toggle spreadsheet auto-approve per settings profile.\n- **Skip runtime and spreadsheet permissions** — Explicit `/permissions skip-runtime-permissions` (and matching `--skip-runtime-permissions` / `--skip-spreadsheet-permissions` CLI flags) for when you intentionally want those permission boundaries disabled.\n\n## [0.3.39]\n\n- **Claude Opus 4.7** - Added Claude Opus 4.7 as a selectable Shortcut model with a 1M-token context window.\n- **Clearer mode switching** - Action, Plan, and Installation now each expose only the mode switches that are actually valid from that mode.\n- **More reliable Excel connection handling** - ShortcutXL now gives clearer guidance and better context for Excel and workbook state.\n\n## [0.3.38]\n\n- **Inline `/skill:name` invocations** — Trigger a skill from anywhere in your message, not just the start.\n- **Interactive approval for skill downloads** — `/download-skills` now shows per-skill diffs (modified, local-only, and remote-only files) and asks before replacing a local skill folder with the cloud copy.\n- **Larger context windows** — Claude Opus 4.6 bumped to 400K tokens; GPT-5.4 bumped to 272K tokens.\n\n## [0.3.37]\n\n- **Bug fixes** — Improved stability for autonomous workflows and update checks.\n\n## [0.3.36]\n\n- **Managed-network install fix** - ShortcutXL no longer fails installation on locked-down networks just because WhatsApp phone control depends on a GitHub-hosted package. Standard installs now succeed without needing GitHub SSH access.\n\n## [0.3.35]\n\n- **Edit-mode detection** — When you're editing a cell, ShortcutXL now detects it and waits instead of throwing a cryptic COM error. You'll see a prompt asking you to press Enter or Escape, and execution resumes automatically.\n- **Bug fixes** — General stability and reliability improvements across credit reporting, Excel operations, session resumption, and concurrency.\n\n## [0.3.34]\n\n- **Revamped update flow** - When an update is available at launch, ShortcutXL now prompts before the shell starts and runs the update in the foreground.\n- **Import skills from Claude Code and Codex** - New `/port-skills` lets you register skills from Claude Code, Codex, and `.agents` folders.\n- **Better `/autonomous` continuation** - Long-running autonomous tasks now continue more cleanly after a context refresh instead of losing the thread mid-run.\n\n## [0.2.32]\n\n- **Durable memory** - ShortcutXL now remembers useful context across sessions, so you no longer need to repeat the same preferences and project details every time you start a new conversation.\n- **Faster and more reliable tool use** - Read-only tools can run while the assistant is still streaming, interrupted turns recover more gracefully, and long responses continue more reliably.\n- **`/manage` mode** - New delegation-focused mode for complex work. Use `/manage` when you want the agent to coordinate tasks instead of executing everything directly.\n- **Tool summaries** - The interactive UI now shows short human-readable summaries of tool executions so it's easier to follow what the agent is doing.\n- **Budgeted runs** - New `/budget <token-budget> <task>` command for long-running work with an explicit cumulative token limit.\n- **More reliable MCP connections** - Long-running MCP tools now handle timeouts and progress more gracefully, with clearer errors and better visibility in `/mcp`.\n- **Skill visibility controls** - `/skills` now lets you choose which loaded skills are advertised to the agent. Unchecked skills stay available through explicit `/skill:name`.\n- **Skill upload** - New `/upload-skills` command to push your local user skills to cloud storage, with approval before overwriting or deleting an existing remote copy.\n- **Faster workbook startup context** - ShortcutXL now uses a lighter workbook context during startup, improving responsiveness before deeper workbook inspection is needed.\n\n## [0.2.31]\n\n- **Improved agent behavior quality** — Better exploration, verification, and convention-matching when working with spreadsheets.\n\n## [0.2.30]\n\n- **MCP server support** — Connect external tools via the Model Context Protocol. Ask the agent to set one up and it will walk you through config, credentials via `/connect`, and verification. Use `/mcp` to see connected servers and their tools.\n- **Loops** — Set up recurring tasks with `/loop`. The agent executes them in the background and shows a status line in the footer. Example: `/loop 5m pull latest google earnings when it drops`.\n- **Autonomous mode** — Run `/autonomous` to let the agent tackle complex tasks end-to-end. It collaborates with you on a phased plan, then executes each phase with built-in implementation, testing, and independent review cycles.\n\n## [0.2.28]\n\n- **Three working modes** — Ask questions about your spreadsheet (Ask), plan complex changes before executing (Plan), or jump straight into edits (Action). Switch anytime with `/ask`, `/plan`, `/action`.\n- **Claude Code & Codex plugin integration** — Use ShortcutXL as a skill directly from Claude Code or Codex.\n- **Improved installation experience** — Smoother setup with better error handling and guided prompts.\n- **Built-in help** — `/docs` opens a guide covering features, workflows, and integrations.\n- **Cleaner status bar** — Simplified token usage display in the footer.\n\n## [0.2.27]\n\n- **Friendlier setup experience** — First-time install now shows plain-language step names (e.g. \"Calculation Engine\" instead of \"Python Packages\") and a prominent green prompt when Excel needs to be opened.\n\n## [0.2.26]\n\n- **Workbook scope** — When multiple workbooks are open, ShortcutXL now asks which ones to focus on. The agent only sees the workbooks you select, keeping context tight and responses more relevant.\n- **Connections** — Connect external data sources via `/connect`. Supports databases (Snowflake, Postgres, Oracle, MySQL), SaaS APIs (Salesforce, Notion, HubSpot, Airtable), and cloud drives. Credentials are stored in the OS keychain.\n- **Skill sync** — Download shared skills from the cloud with `/download-skills`.\n- **Skill creator** — A built-in eval-driven workflow for authoring, testing, and improving custom skills.\n- **Fixed local install issues** — Resolved a shell path bug that could prevent the CLI from launching after a global package-manager install.\n\n## [0.2.22]\n\n- **Tool extensions** — Build custom tools that the agent can call.\n- **Sandbox hardening** — The sandbox now blocks more ways code could escape isolation. When you update ShortcutXL, the sandbox automatically updates itself too.\n- **Faster install** — Sandbox is now downloaded on demand instead of bundled.\n\n## [0.2.19]\n\n- **Sandbox & security hardening** — Code execution can now optionally run inside a sandbox (/sandbox) that blocks unauthorized file writes, reads, and in-bound and out-bound network traffic.\n- **Clearer privacy controls** - You can opt out of conversation uploads to our servers for complete privacy.\n\n## [0.2.18]\n\n- **Fixed startup crash** — Resolved a circular import in the Python modules that caused \"internal error\" on every Excel action.\n\n## [0.2.17]\n\n- **Better change review dialog** — Cell diffs now show full addresses (e.g. `Sheet1!A1`), formula details, and keyboard navigation with arrow keys for scrolling through large changesets.\n- **Alt+V paste is more reliable** — Fixed cases where Alt+V would fail silently. Now gives clear feedback and handles clipboard errors gracefully.\n- **Skill saving bug fixed** — Skills are not saved in the correct directory and survives application updates.\n- **Clean terminal on launch** — Starting ShortcutXL now clears prior output so you always begin with a fresh screen.\n\n## [0.2.14]\n\n- **Python linting & type checking** — Added ruff and pyright checks for the Python modules and tests. Import sorting, unused variables, and type errors are now caught before publish.\n- **Cleaner dead-code detection** — Removed unused TypeScript exports and tightened knip configuration.\n\n## [0.2.13]\n\n- **Stay logged in across terminals** — Previously, opening a new terminal while others were running could force you to log in again. Now your session persists reliably no matter how many terminals you have open.\n\n## [0.2.12]\n\n- **No more popup windows during updates** — Background updates now run silently instead of flashing a command prompt on your screen.\n\n## [0.2.11]\n\n- **More reliable first-time setup** — ShortcutXL now waits for Excel to be fully ready before running its connection test, so setup succeeds on the first try even on slower machines.\n- **Switched to production servers** — All traffic now routes through `shortcut.ai` production endpoints for better performance and reliability.\n\n## [0.2.9]\n\n- **Works without Python on your PATH** — ShortcutXL now finds and loads Python automatically. No more fiddling with environment variables or system settings to get things working.\n\n## [0.1.1]\n\n- **Update notifications** — ShortcutXL tells you when a new version is available and shows you the exact command to upgrade.\n- **Survives reinstalls** — Updating or reinstalling the npm package no longer breaks your Excel setup. Everything keeps working without reconfiguration.\n- **Handles Excel locks gracefully** — If Excel has ShortcutXL loaded during an update, you get a clear message instead of a crash.\n".replace(/^# Changelog\s*/, "");
|
|
29013
29013
|
function ChangelogDialog({ onClose }) {
|
|
29014
29014
|
const dialogRef = reactExports.useRef(null);
|
|
29015
29015
|
reactExports.useEffect(() => {
|
|
@@ -29041,7 +29041,7 @@ function ChangelogDialog({ onClose }) {
|
|
|
29041
29041
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { id: "changelog-dialog-title", children: "Changelog" }),
|
|
29042
29042
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
|
|
29043
29043
|
"Shortcut v",
|
|
29044
|
-
"0.4.
|
|
29044
|
+
"0.4.1"
|
|
29045
29045
|
] })
|
|
29046
29046
|
] }),
|
|
29047
29047
|
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { "aria-label": "Close changelog", type: "button", onClick: onClose, children: "×" })
|
|
@@ -29072,7 +29072,7 @@ function EmptyConversation({
|
|
|
29072
29072
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "empty-hero-version", children: [
|
|
29073
29073
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [
|
|
29074
29074
|
"v",
|
|
29075
|
-
"0.4.
|
|
29075
|
+
"0.4.1"
|
|
29076
29076
|
] }),
|
|
29077
29077
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "·" }),
|
|
29078
29078
|
/* @__PURE__ */ jsxRuntimeExports.jsx("button", { type: "button", onClick: () => setChangelogOpen(true), children: "See what's new" })
|
|
@@ -36307,12 +36307,13 @@ function launchModeControls(mode) {
|
|
|
36307
36307
|
return mode ? { mode } : {};
|
|
36308
36308
|
}
|
|
36309
36309
|
function newChatDefaultsFromSnapshot(snapshot) {
|
|
36310
|
+
if (!snapshot.model) return void 0;
|
|
36310
36311
|
return {
|
|
36311
|
-
model:
|
|
36312
|
+
model: {
|
|
36312
36313
|
provider: snapshot.model.provider,
|
|
36313
36314
|
id: snapshot.model.id,
|
|
36314
36315
|
name: snapshot.model.name
|
|
36315
|
-
}
|
|
36316
|
+
},
|
|
36316
36317
|
thinkingLevel: snapshot.thinkingLevel
|
|
36317
36318
|
};
|
|
36318
36319
|
}
|
|
@@ -36514,7 +36515,8 @@ function App({ initialThemeId: initialThemeId2 }) {
|
|
|
36514
36515
|
const passiveThinkingLevel = activeTab?.controls.thinkingLevel ?? newChatDefaults?.thinkingLevel;
|
|
36515
36516
|
const passiveModelLabel = passiveModel?.name ?? passiveModel?.id;
|
|
36516
36517
|
const updateNewChatModelDefaults = (snapshot) => {
|
|
36517
|
-
|
|
36518
|
+
const defaults = newChatDefaultsFromSnapshot(snapshot);
|
|
36519
|
+
if (defaults) setNewChatDefaults(defaults);
|
|
36518
36520
|
};
|
|
36519
36521
|
const attachRuntimeToTab = (tabId, hostId) => {
|
|
36520
36522
|
const runtimeView = agent.getHostView(hostId);
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
content="default-src 'self'; base-uri 'none'; object-src 'none'; frame-ancestors 'none'; form-action 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; media-src 'self' blob:; font-src 'self' data:; connect-src 'self' http: https: ws: wss:"
|
|
9
9
|
/>
|
|
10
10
|
<title>Shortcut CLI</title>
|
|
11
|
-
<script type="module" crossorigin src="./assets/index-
|
|
11
|
+
<script type="module" crossorigin src="./assets/index-De3NGXD5.js"></script>
|
|
12
12
|
<link rel="stylesheet" crossorigin href="./assets/index-BVniXN5M.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
../../Scripts/httpx.exe,sha256=
|
|
1
|
+
../../Scripts/httpx.exe,sha256=Cuf8FgWlbbhPOCRHhyKDDe_FURYijg1s6BDVk8xU9OM,108351
|
|
2
2
|
httpx-0.28.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
|
3
3
|
httpx-0.28.1.dist-info/METADATA,sha256=_rubD48-gNV8gZnDBPNcQzboWB0dGNeYPJJ2a4J5OyU,7052
|
|
4
4
|
httpx-0.28.1.dist-info/RECORD,,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
../../Scripts/idna.exe,sha256=
|
|
1
|
+
../../Scripts/idna.exe,sha256=KroUY-nKor4fjxK-7nCZXIk69y3Z3IGoMXBW5HihVHA,108354
|
|
2
2
|
idna-3.18.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
|
3
3
|
idna-3.18.dist-info/METADATA,sha256=Rt_m5axGLQ9oDs2avPZugptqIzSCS02eOXmzETXK8oE,6119
|
|
4
4
|
idna-3.18.dist-info/RECORD,,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
../../Scripts/pip.exe,sha256=
|
|
2
|
-
../../Scripts/pip3.13.exe,sha256=
|
|
3
|
-
../../Scripts/pip3.exe,sha256=
|
|
1
|
+
../../Scripts/pip.exe,sha256=zNuckmPSD3Fgmq2winhbp4x-b2dXQ3Yp2W_RB49mdq8,108368
|
|
2
|
+
../../Scripts/pip3.13.exe,sha256=zNuckmPSD3Fgmq2winhbp4x-b2dXQ3Yp2W_RB49mdq8,108368
|
|
3
|
+
../../Scripts/pip3.exe,sha256=zNuckmPSD3Fgmq2winhbp4x-b2dXQ3Yp2W_RB49mdq8,108368
|
|
4
4
|
pip-26.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
|
5
5
|
pip-26.2.dist-info/METADATA,sha256=wKcTSK4V341FIPhD3DO36evBk_qONBgQ8D6JJ1Samfk,4615
|
|
6
6
|
pip-26.2.dist-info/RECORD,,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
../../Scripts/__pycache__/pywin32_postinstall.cpython-313.pyc,,
|
|
2
2
|
../../Scripts/__pycache__/pywin32_testall.cpython-313.pyc,,
|
|
3
|
-
../../Scripts/pywin32_postinstall.exe,sha256=
|
|
3
|
+
../../Scripts/pywin32_postinstall.exe,sha256=ctHndqST7dz7zYUrO595xQSA1ohv_6HBeY2IYlFI8io,108379
|
|
4
4
|
../../Scripts/pywin32_postinstall.py,sha256=mx4WVp1hD_8xgkSXttNtto1BVDECZOc3FCClrR1SjFM,25736
|
|
5
|
-
../../Scripts/pywin32_testall.exe,sha256=
|
|
5
|
+
../../Scripts/pywin32_testall.exe,sha256=ExRlN6fPZ_ZjgEcPSNTefS1NEmMkFcZz8ZGrDnRPrX0,108375
|
|
6
6
|
../../Scripts/pywin32_testall.py,sha256=hyGLMKILn3_W0q-McP1VJnNFW_z5yk_gesTMQDlUocM,3847
|
|
7
7
|
PyWin32.chm,sha256=S3fN4iKEUFyW4IIm3Zf5jtdrlTJLh93MzIrT9wX3z9o,2646518
|
|
8
8
|
__pycache__/pythoncom.cpython-313.pyc,,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|