@todesktop/shared 7.193.0 → 7.194.0

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,23 @@
1
1
  # @todesktop/shared
2
2
 
3
+ ## 7.194.0
4
+
5
+ ### Minor Changes
6
+
7
+ - dc5fe40: Add build introspection feature for interactive shell access to
8
+ in-progress builds
9
+ - `todesktop build --introspect` enables introspection on all platforms during
10
+ build creation
11
+ - New `todesktop introspect [buildId]` command for connecting to running
12
+ builds with interactive shell access
13
+ - Agent Introspection Service (AIS) runs on build agents, providing secure
14
+ WebSocket terminal access via Cloudflare Quick Tunnels
15
+ - Firebase function `startIntrospectionSession` handles authentication and
16
+ session management
17
+ - Builds with introspection sessions cannot be released (security safeguard)
18
+ - Session limits: 30 min inactivity timeout, 60 min absolute TTL, single
19
+ concurrent session per platform
20
+
3
21
  ## 7.191.1
4
22
 
5
23
  ### Patch Changes
@@ -1,6 +1,5 @@
1
- import type { Build } from '../desktopify';
2
- import type { IntrospectBreakpointStatus, IntrospectShellStatus } from '../desktopify';
3
- export type IntrospectPlatformName = 'mac' | 'windows' | 'linux';
1
+ import type { Build, IntrospectBreakpointStatus, IntrospectShellStatus } from '../desktopify';
2
+ export type IntrospectPlatformName = 'linux' | 'mac' | 'windows';
4
3
  /**
5
4
  * Check if a build was introspected (has connectedAt or disconnectedAt on any platform).
6
5
  * Builds that were introspected cannot be released.
@@ -4,16 +4,16 @@ exports.wasIntrospected = wasIntrospected;
4
4
  exports.getIntrospectedPlatformNames = getIntrospectedPlatformNames;
5
5
  exports.formatIntrospectionStatus = formatIntrospectionStatus;
6
6
  const PLATFORM_LABELS = {
7
+ linux: 'Linux',
7
8
  mac: 'Mac',
8
9
  windows: 'Windows',
9
- linux: 'Linux',
10
10
  };
11
11
  /**
12
12
  * Check if a build was introspected (has connectedAt or disconnectedAt on any platform).
13
13
  * Builds that were introspected cannot be released.
14
14
  */
15
15
  function wasIntrospected(build) {
16
- const introspect = build.introspect;
16
+ const { introspect } = build;
17
17
  if (!introspect)
18
18
  return false;
19
19
  const platforms = ['mac', 'windows', 'linux'];
@@ -30,7 +30,7 @@ function wasIntrospected(build) {
30
30
  * Returns capitalized platform names (e.g., ['Mac', 'Windows']).
31
31
  */
32
32
  function getIntrospectedPlatformNames(build) {
33
- const introspect = build.introspect;
33
+ const { introspect } = build;
34
34
  if (!introspect)
35
35
  return [];
36
36
  const platforms = ['mac', 'windows', 'linux'];
@@ -1,6 +1,5 @@
1
- import type { Build } from '../desktopify';
2
- import type { IntrospectBreakpointStatus, IntrospectShellStatus } from '../desktopify';
3
- export type IntrospectPlatformName = 'mac' | 'windows' | 'linux';
1
+ import type { Build, IntrospectBreakpointStatus, IntrospectShellStatus } from '../desktopify';
2
+ export type IntrospectPlatformName = 'linux' | 'mac' | 'windows';
4
3
  /**
5
4
  * Check if a build was introspected (has connectedAt or disconnectedAt on any platform).
6
5
  * Builds that were introspected cannot be released.
@@ -1,14 +1,14 @@
1
1
  const PLATFORM_LABELS = {
2
+ linux: 'Linux',
2
3
  mac: 'Mac',
3
4
  windows: 'Windows',
4
- linux: 'Linux',
5
5
  };
6
6
  /**
7
7
  * Check if a build was introspected (has connectedAt or disconnectedAt on any platform).
8
8
  * Builds that were introspected cannot be released.
9
9
  */
10
10
  export function wasIntrospected(build) {
11
- const introspect = build.introspect;
11
+ const { introspect } = build;
12
12
  if (!introspect)
13
13
  return false;
14
14
  const platforms = ['mac', 'windows', 'linux'];
@@ -25,7 +25,7 @@ export function wasIntrospected(build) {
25
25
  * Returns capitalized platform names (e.g., ['Mac', 'Windows']).
26
26
  */
27
27
  export function getIntrospectedPlatformNames(build) {
28
- const introspect = build.introspect;
28
+ const { introspect } = build;
29
29
  if (!introspect)
30
30
  return [];
31
31
  const platforms = ['mac', 'windows', 'linux'];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@todesktop/shared",
3
- "version": "7.193.0",
3
+ "version": "7.194.0",
4
4
  "description": "",
5
5
  "main": "./lib/cjs/index.js",
6
6
  "module": "./lib/esm/index.js",
@@ -1,15 +1,15 @@
1
- import type { Build } from '../desktopify';
2
1
  import type {
2
+ Build,
3
3
  IntrospectBreakpointStatus,
4
4
  IntrospectShellStatus,
5
5
  } from '../desktopify';
6
6
 
7
- export type IntrospectPlatformName = 'mac' | 'windows' | 'linux';
7
+ export type IntrospectPlatformName = 'linux' | 'mac' | 'windows';
8
8
 
9
9
  const PLATFORM_LABELS: Record<IntrospectPlatformName, string> = {
10
+ linux: 'Linux',
10
11
  mac: 'Mac',
11
12
  windows: 'Windows',
12
- linux: 'Linux',
13
13
  };
14
14
 
15
15
  /**
@@ -17,7 +17,7 @@ const PLATFORM_LABELS: Record<IntrospectPlatformName, string> = {
17
17
  * Builds that were introspected cannot be released.
18
18
  */
19
19
  export function wasIntrospected(build: Build): boolean {
20
- const introspect = build.introspect;
20
+ const { introspect } = build;
21
21
  if (!introspect) return false;
22
22
 
23
23
  const platforms: IntrospectPlatformName[] = ['mac', 'windows', 'linux'];
@@ -37,7 +37,7 @@ export function wasIntrospected(build: Build): boolean {
37
37
  * Returns capitalized platform names (e.g., ['Mac', 'Windows']).
38
38
  */
39
39
  export function getIntrospectedPlatformNames(build: Build): string[] {
40
- const introspect = build.introspect;
40
+ const { introspect } = build;
41
41
  if (!introspect) return [];
42
42
 
43
43
  const platforms: IntrospectPlatformName[] = ['mac', 'windows', 'linux'];
package/vitest.config.ts DELETED
@@ -1,9 +0,0 @@
1
- // eslint-disable-next-line import-x/no-extraneous-dependencies
2
- import { defineConfig } from 'vitest/config';
3
-
4
- export default defineConfig({
5
- test: {
6
- exclude: ['lib/**', 'node_modules/**'],
7
- include: ['src/**/*.test.ts'],
8
- },
9
- });