@spencer-kit/coder-studio 0.3.6 → 0.3.7

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.7
4
+
5
+ ### Patch Changes
6
+
7
+ - [#35](https://github.com/spencerkit/coder-studio/pull/35) [`2182828`](https://github.com/spencerkit/coder-studio/commit/2182828da8c199b7a0dc540f547d98d9b79c8e2c) Thanks [@pallyoung](https://github.com/pallyoung)! - Improve theme-owned workspace icon styling so file tree, mobile workspace dock, settings navigation, and Git footer icons stay consistent across themes, while also hardening workspace target restore behavior and mobile terminal paste and upload flows.
8
+
3
9
  ## 0.3.6
4
10
 
5
11
  ### Patch Changes
package/dist/esm/bin.mjs CHANGED
@@ -10063,10 +10063,26 @@ var init_workspace = __esm({
10063
10063
 
10064
10064
  // packages/server/src/commands/workspace-activity.ts
10065
10065
  import { z as z7 } from "zod";
10066
+ function parseWorkspaceLastViewedTarget(value) {
10067
+ try {
10068
+ const parsed = JSON.parse(value);
10069
+ const result = workspaceLastViewedTargetSchema.safeParse(parsed);
10070
+ return result.success ? result.data : null;
10071
+ } catch {
10072
+ return null;
10073
+ }
10074
+ }
10075
+ var WORKSPACE_LAST_VIEWED_TARGET_KEY, workspaceLastViewedTargetSchema;
10066
10076
  var init_workspace_activity = __esm({
10067
10077
  "packages/server/src/commands/workspace-activity.ts"() {
10068
10078
  "use strict";
10069
10079
  init_dispatch();
10080
+ WORKSPACE_LAST_VIEWED_TARGET_KEY = "workspace.lastViewedTarget";
10081
+ workspaceLastViewedTargetSchema = z7.object({
10082
+ workspaceId: z7.string(),
10083
+ sessionId: z7.string().optional(),
10084
+ updatedAt: z7.number()
10085
+ });
10070
10086
  registerCommand(
10071
10087
  "workspace.activate",
10072
10088
  z7.object({
@@ -10087,6 +10103,43 @@ var init_workspace_activity = __esm({
10087
10103
  ctx.autoFetch.unregisterViewer(clientId);
10088
10104
  return {};
10089
10105
  });
10106
+ registerCommand("workspace.lastViewedTarget.get", z7.object({}), async (_args, ctx) => {
10107
+ const row = ctx.db.prepare("SELECT value FROM user_settings WHERE key = ?").get(WORKSPACE_LAST_VIEWED_TARGET_KEY);
10108
+ if (!row) {
10109
+ return null;
10110
+ }
10111
+ return parseWorkspaceLastViewedTarget(row.value);
10112
+ });
10113
+ registerCommand(
10114
+ "workspace.lastViewedTarget.set",
10115
+ z7.object({
10116
+ workspaceId: z7.string(),
10117
+ sessionId: z7.string().optional()
10118
+ }),
10119
+ async (args, ctx) => {
10120
+ const workspace = ctx.workspaceMgr.get(args.workspaceId);
10121
+ if (!workspace) {
10122
+ throw {
10123
+ code: "workspace_not_found",
10124
+ message: `Workspace not found: ${args.workspaceId}`
10125
+ };
10126
+ }
10127
+ const session = args.sessionId ? ctx.sessionMgr.get(args.sessionId) : void 0;
10128
+ const nextTarget = {
10129
+ workspaceId: args.workspaceId,
10130
+ sessionId: session && session.workspaceId === args.workspaceId ? session.id : void 0,
10131
+ updatedAt: Date.now()
10132
+ };
10133
+ ctx.db.prepare(
10134
+ `
10135
+ INSERT INTO user_settings (key, value)
10136
+ VALUES (?, ?)
10137
+ ON CONFLICT(key) DO UPDATE SET value = excluded.value
10138
+ `
10139
+ ).run(WORKSPACE_LAST_VIEWED_TARGET_KEY, JSON.stringify(nextTarget));
10140
+ return nextTarget;
10141
+ }
10142
+ );
10090
10143
  }
10091
10144
  });
10092
10145