@pellux/goodvibes-tui 0.19.30 → 0.19.31

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
@@ -4,6 +4,11 @@ All notable changes to GoodVibes TUI.
4
4
 
5
5
  ---
6
6
 
7
+ ## [0.19.31] — 2026-04-25
8
+
9
+ ### Changes
10
+ - 2508d632 chore: wire sdk service secret updates
11
+
7
12
  ## [0.19.30] — 2026-04-25
8
13
 
9
14
  ### Changes
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![CI](https://github.com/mgd34msu/goodvibes-tui/actions/workflows/ci.yml/badge.svg)](https://github.com/mgd34msu/goodvibes-tui/actions/workflows/ci.yml)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
- [![Version](https://img.shields.io/badge/version-0.19.30-blue.svg)](https://github.com/mgd34msu/goodvibes-tui)
5
+ [![Version](https://img.shields.io/badge/version-0.19.31-blue.svg)](https://github.com/mgd34msu/goodvibes-tui)
6
6
 
7
7
  A terminal-native AI coding, operations, automation, knowledge, and integration console with a typed runtime, omnichannel surfaces, structured memory/knowledge, and a raw ANSI renderer.
8
8
 
@@ -836,7 +836,7 @@ Key commands:
836
836
  - `/profilesync`
837
837
  - `/setup transfer export|inspect|import`
838
838
 
839
- Service entries can use existing `tokenKey` fields, a SecretRef in the key field, or explicit `tokenRef` / `passwordRef` / `webhookUrlRef` / `signingSecretRef` / `publicKeyRef` fields:
839
+ Service entries can use existing `tokenKey` fields, a SecretRef in the key field, or explicit `tokenRef` / `passwordRef` / `webhookUrlRef` / `signingSecretRef` / `publicKeyRef` / `appTokenRef` fields:
840
840
 
841
841
  ```json
842
842
  {
@@ -844,11 +844,18 @@ Service entries can use existing `tokenKey` fields, a SecretRef in the key field
844
844
  "name": "slack",
845
845
  "authType": "bearer",
846
846
  "tokenKey": "SLACK_BOT_TOKEN",
847
+ "appTokenKey": "SLACK_APP_TOKEN",
847
848
  "tokenRef": {
848
849
  "source": "vaultwarden",
849
850
  "item": "GoodVibes Slack",
850
851
  "field": "password",
851
852
  "server": "https://vault.example.test"
853
+ },
854
+ "appTokenRef": {
855
+ "source": "vaultwarden",
856
+ "item": "GoodVibes Slack App",
857
+ "field": "password",
858
+ "server": "https://vault.example.test"
852
859
  }
853
860
  }
854
861
  }
@@ -3,7 +3,7 @@
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "0.25.5"
6
+ "version": "0.25.6"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-tui",
3
- "version": "0.19.30",
3
+ "version": "0.19.31",
4
4
  "description": "Terminal-native GoodVibes product for coding, operations, automation, knowledge, channels, and daemon-backed control-plane workflows.",
5
5
  "type": "module",
6
6
  "main": "src/main.ts",
@@ -91,7 +91,7 @@
91
91
  "@anthropic-ai/vertex-sdk": "^0.16.0",
92
92
  "@ast-grep/napi": "^0.42.0",
93
93
  "@aws/bedrock-token-generator": "^1.1.0",
94
- "@pellux/goodvibes-sdk": "^0.25.5",
94
+ "@pellux/goodvibes-sdk": "^0.25.6",
95
95
  "bash-language-server": "^5.6.0",
96
96
  "fuse.js": "^7.1.0",
97
97
  "graphql": "^16.13.2",
@@ -41,6 +41,7 @@ export function registerServicesRuntimeCommands(registry: CommandRegistry): void
41
41
  ` webhookUrl: ${inspection.hasWebhookUrl ? 'present' : 'missing'}`,
42
42
  ` signingSecret: ${inspection.hasSigningSecret ? 'present' : 'missing'}`,
43
43
  ` publicKey: ${inspection.hasPublicKey ? 'present' : 'missing'}`,
44
+ ` appToken: ${inspection.hasAppToken ? 'present' : 'missing'}`,
44
45
  ].join('\n'));
45
46
  return;
46
47
  }
@@ -195,6 +195,8 @@ export class ServicesPanel extends ScrollableListPanel<ServicePanelEntry> {
195
195
  ...buildStatusPill(inspect.hasWebhookUrl ? 'good' : 'info', inspect.hasWebhookUrl ? 'present' : 'missing'),
196
196
  [' Signing secret: ', C.label],
197
197
  ...buildStatusPill(inspect.hasSigningSecret ? 'good' : 'info', inspect.hasSigningSecret ? 'present' : 'missing'),
198
+ [' App token: ', C.label],
199
+ ...buildStatusPill(inspect.hasAppToken ? 'good' : 'info', inspect.hasAppToken ? 'present' : 'missing'),
198
200
  ]));
199
201
  if (selected.lastTest) {
200
202
  detailLines.push(buildPanelLine(width, [
@@ -211,7 +211,7 @@ function hasRemoteDeviceAccess(snapshot: OnboardingSnapshotState): boolean {
211
211
  function hasWebhookOrEventIngress(snapshot: OnboardingSnapshotState): boolean {
212
212
  return snapshot.bindSettings.httpListenerEnabled
213
213
  || hasInboundEventSurface(snapshot)
214
- || snapshot.services.services.some((service) => service.hasWebhookUrl || service.hasSigningSecret || service.hasPublicKey);
214
+ || snapshot.services.services.some((service) => service.hasWebhookUrl || service.hasSigningSecret || service.hasPublicKey || service.hasAppToken);
215
215
  }
216
216
 
217
217
  function getProviderIdentityIds(snapshot: OnboardingSnapshotState): Set<string> {
@@ -122,6 +122,7 @@ async function buildServicesSnapshot(
122
122
  hasWebhookUrl: inspection?.hasWebhookUrl ?? false,
123
123
  hasSigningSecret: inspection?.hasSigningSecret ?? false,
124
124
  hasPublicKey: inspection?.hasPublicKey ?? false,
125
+ hasAppToken: inspection?.hasAppToken ?? false,
125
126
  } satisfies OnboardingServiceState,
126
127
  issue: null,
127
128
  };
@@ -139,6 +140,7 @@ async function buildServicesSnapshot(
139
140
  hasWebhookUrl: false,
140
141
  hasSigningSecret: false,
141
142
  hasPublicKey: false,
143
+ hasAppToken: false,
142
144
  } satisfies OnboardingServiceState,
143
145
  issue: {
144
146
  area: 'services',
@@ -75,6 +75,7 @@ export interface OnboardingServiceState {
75
75
  readonly hasWebhookUrl: boolean;
76
76
  readonly hasSigningSecret: boolean;
77
77
  readonly hasPublicKey: boolean;
78
+ readonly hasAppToken: boolean;
78
79
  }
79
80
 
80
81
  export interface OnboardingServicesSnapshot {
@@ -417,6 +417,7 @@ export function createRuntimeServices(options: RuntimeServicesOptions): RuntimeS
417
417
  const projectIndex = new ProjectIndex(workingDirectory);
418
418
  const channelDeliveryRouter = new ChannelDeliveryRouter({
419
419
  configManager,
420
+ secretsManager,
420
421
  serviceRegistry,
421
422
  artifactStore,
422
423
  });
package/src/version.ts CHANGED
@@ -6,7 +6,7 @@ import { join } from 'node:path';
6
6
  // The prebuild script updates the fallback value before compilation.
7
7
  // Uses import.meta.dir (Bun) to locate package.json relative to this file,
8
8
  // which is correct regardless of the process working directory.
9
- let _version = '0.19.30';
9
+ let _version = '0.19.31';
10
10
  try {
11
11
  const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', 'package.json'), 'utf-8'));
12
12
  _version = pkg.version ?? _version;