@co0ontty/wand 4.55.2-beta.g41756a5 → 4.55.2

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.
@@ -1,6 +1,6 @@
1
1
  {
2
- "commit": "41756a507eaa183618587f2a5c18616888788c25",
3
- "builtAt": "2026-09-08T04:37:22.268Z",
4
- "version": "4.55.2-beta.g41756a5",
5
- "channel": "beta"
2
+ "commit": "f4b403a97f3c2fe092b2f249841aa10ec1c82b80",
3
+ "builtAt": "2026-09-07T13:38:48.657Z",
4
+ "version": "4.55.2",
5
+ "channel": "stable"
6
6
  }
@@ -228,7 +228,7 @@ export function sanitizeTaskLayout(value) {
228
228
  * - 布局树由前端 allotment 构造,PUT 时经 sanitizeLayout 校验/规整后落库。
229
229
  */
230
230
  export function registerWorkspaceRoutes(app, storage, sessions) {
231
- // 列出所有项目(按创建时间升序,保证项目层级稳定)
231
+ // 列出所有项目(按最近打开排序)
232
232
  app.get("/api/workspaces", (_req, res) => {
233
233
  backfillSessionWorkspaces(storage);
234
234
  const sessionCounts = storage.countSessionsByWorkspace();
package/dist/server.js CHANGED
@@ -489,35 +489,16 @@ export async function startServer(config, configPath, options = {}) {
489
489
  const storage = new WandStorage(resolveDatabasePath(configPath));
490
490
  const runtimeConfig = new RuntimeConfigState(config);
491
491
  const authService = new AuthService(storage);
492
- // Helper to get current default models from storage (not from startup-captured config)
493
- // This allows model preferences to update in real-time when user changes config via UI
494
- const getCurrentDefaultModels = () => {
495
- // Try to read from storage first (most up-to-date via UI settings)
496
- // Falls back to config values for deployment settings
497
- const prefStorage = storage;
498
- if (prefStorage) {
499
- return {
500
- claude: prefStorage.getPreference("pref:defaultModel", config.defaultModel ?? ""),
501
- codex: prefStorage.getPreference("pref:defaultCodexModel", config.defaultCodexModel ?? ""),
502
- opencode: prefStorage.getPreference("pref:defaultOpenCodeModel", config.defaultOpenCodeModel ?? ""),
503
- grok: prefStorage.getPreference("pref:defaultGrokModel", config.defaultGrokModel ?? ""),
504
- qoder: prefStorage.getPreference("pref:defaultQoderModel", config.defaultQoderModel ?? ""),
505
- pi: prefStorage.getPreference("pref:defaultPiModel", config.defaultPiModel ?? ""),
506
- };
507
- }
508
- return getProviderDefaultModels(config);
509
- };
510
492
  const getModelRefreshOptions = () => {
511
493
  const injected = options.modelRefreshOptions?.() ?? {};
512
- const currentDefaults = getCurrentDefaultModels();
513
494
  return {
514
495
  storage,
515
496
  inheritEnv: config.inheritEnv !== false,
516
497
  apiKey: process.env.ANTHROPIC_API_KEY,
517
498
  ...injected,
518
499
  configuredClaudeModels: [
519
- currentDefaults.claude,
520
- config.commitCli === "claude" ? (storage.getPreference("pref:commitModel", config.commitModel) ?? "") : undefined,
500
+ getProviderDefaultModels(config).claude,
501
+ config.commitCli === "claude" ? config.commitModel : undefined,
521
502
  ...(injected.configuredClaudeModels ?? []),
522
503
  ],
523
504
  };
package/dist/storage.js CHANGED
@@ -814,7 +814,7 @@ export class WandStorage {
814
814
  // ============ Workspaces(多标签 / 分屏项目)============
815
815
  listWorkspaces() {
816
816
  const rows = this.db
817
- .prepare("SELECT id, name, cwd, kind, default_provider, layout_json, created_at, last_opened_at FROM workspaces ORDER BY created_at ASC, id ASC")
817
+ .prepare("SELECT id, name, cwd, kind, default_provider, layout_json, created_at, last_opened_at FROM workspaces ORDER BY COALESCE(last_opened_at, created_at) DESC")
818
818
  .all();
819
819
  return rows.map(mapWorkspaceRow);
820
820
  }