Jefferson Warrior
c851bdd47a
feat: add Tailscale binary detection, IP binding modes, and health probe password fix
...
This PR includes three main improvements:
1. Tailscale Binary Detection with Fallback Strategies
- Added findTailscaleBinary() with multi-strategy detection:
* PATH lookup via 'which' command
* Known macOS app path (/Applications/Tailscale.app/Contents/MacOS/Tailscale)
* find /Applications for Tailscale.app
* locate database lookup
- Added getTailscaleBinary() with caching
- Updated all Tailscale operations to use detected binary
- Added TUI warning when Tailscale binary not found for serve/funnel modes
2. Custom Gateway IP Binding with Fallback
- New bind mode "custom" allowing user-specified IP with fallback to 0.0.0.0
- Removed "tailnet" mode (folded into "auto")
- All modes now support graceful fallback: custom (if fail → 0.0.0.0), loopback (127.0.0.1 → 0.0.0.0), auto (tailnet → 0.0.0.0), lan (0.0.0.0)
- Added customBindHost config option for custom bind mode
- Added canBindTo() helper to test IP availability before binding
- Updated configure and onboarding wizards with new bind mode options
3. Health Probe Password Auth Fix
- Gateway probe now tries both new and old passwords
- Fixes issue where password change fails health check if gateway hasn't restarted yet
- Uses nextConfig password first, falls back to baseConfig password if needed
Files changed:
- src/infra/tailscale.ts: Binary detection + caching
- src/gateway/net.ts: IP binding with fallback logic
- src/config/types.ts: BridgeBindMode type + customBindHost field
- src/commands/configure.ts: Health probe dual-password try + Tailscale detection warning + bind mode UI
- src/wizard/onboarding.ts: Tailscale detection warning + bind mode UI
- src/gateway/server.ts: Use new resolveGatewayBindHost
- src/gateway/call.ts: Updated preferTailnet logic (removed "tailnet" mode)
- src/commands/onboard-types.ts: Updated GatewayBind type
- src/commands/onboard-helpers.ts: resolveControlUiLinks updated
- src/cli/*.ts: Updated bind mode casts
- src/gateway/call.test.ts: Removed "tailnet" mode test
2026-01-13 05:20:02 +00:00
Peter Steinberger
01776e0569
refactor: dedupe OAuth flow handlers
2026-01-13 05:14:05 +00:00
Peter Steinberger
8eb1c76337
fix: clean up api key validation
2026-01-13 05:12:42 +00:00
Peter Steinberger
f566e6451f
fix: harden Chutes OAuth flow ( #726 ) (thanks @FrieSei)
2026-01-13 05:01:08 +00:00
Friederike Seiler
3271ff1d6e
Tests: clean chutes fetch spies
2026-01-13 04:50:27 +00:00
Friederike Seiler
0efcfc0864
Chores: fix chutes oauth build
2026-01-13 04:50:27 +00:00
Friederike Seiler
0aba911912
Chores: format chutes oauth
2026-01-13 04:50:26 +00:00
Friederike Seiler
4efb5cc18e
Auth: add Chutes OAuth
2026-01-13 04:50:26 +00:00
Peter Steinberger
0ba60ff69c
Merge pull request #794 from roshanasingh4/fix/777-windows-openurl-quotes
...
Fix Antigravity OAuth login on Windows (quote URL for cmd start)
2026-01-13 04:28:11 +00:00
Peter Steinberger
3061d8e057
fix: preserve Windows cmd start URL quoting ( #794 ) (thanks @roshanasingh4)
2026-01-13 04:26:43 +00:00
Peter Steinberger
ea5597b483
fix: restore implicit providers + copilot auth choice
2026-01-13 04:26:08 +00:00
Peter Steinberger
b41e75a15d
feat: cron agent binding + doctor UI refresh
2026-01-13 04:25:41 +00:00
meaningfool
bfdbaa5ab6
feat(doctor): add UI protocol freshness check
2026-01-13 04:25:41 +00:00
meaningfool
93ae3b8405
fix: sync protocol artifacts and resolve linting errors
2026-01-13 04:25:41 +00:00
meaningfool
f249a82383
fix: resolve CI failures (test timeout & formatting)
2026-01-13 04:25:41 +00:00
Roshan Singh
ea9486ae2d
Fix: quote URLs when opening browser on Windows
2026-01-13 04:23:20 +00:00
Peter Steinberger
66ad8a9289
fix: apply lint fixes
2026-01-13 03:36:53 +00:00
Peter Steinberger
df6634727e
fix: refine synthetic provider + minimax probes
2026-01-13 03:36:53 +00:00
Travis Hinton
8b5cd97ceb
Add Synthetic provider support
2026-01-13 03:36:53 +00:00
Peter Steinberger
2111d0c653
test: force real config module for lan onboarding test ( #766 )
2026-01-13 01:53:40 +00:00
Peter Steinberger
642e6acf49
test: unmock config for lan onboarding auto-token ( #766 )
2026-01-13 01:53:40 +00:00
Peter Steinberger
231d2d5fdf
fix(config): require doctor for invalid configs ( #764 — thanks @mukhtharcm)
2026-01-13 01:18:18 +00:00
Peter Steinberger
3636a2bf51
refactor: unify message tool + CLI
2026-01-13 00:12:57 +00:00
Peter Steinberger
ddd4b55cf6
fix: prevent onboarding TUI auto-delivery ( #791 ) (thanks @roshanasingh4)
2026-01-12 19:38:52 +00:00
Peter Steinberger
bb7397c636
feat: add dashboard command
2026-01-12 19:08:29 +00:00
Peter Steinberger
77b20377cc
fix: stabilize session tools and tests
2026-01-12 18:21:20 +00:00
Ayaan Zaidi
14801b46fc
Merge pull request #792 from clawdbot/fix/gateway-auth-off
...
fix: clear gateway auth when set to off
2026-01-12 23:10:15 +05:30
Ayaan Zaidi
4bba49770d
fix: clear gateway auth on off selection
2026-01-12 22:59:37 +05:30
Mustafa Tag Eldeen
3da1afed68
feat: add GitHub Copilot provider
...
Copilot device login + onboarding option; model list auth detection.
2026-01-12 16:52:15 +00:00
Peter Steinberger
8049f33435
chore: sanitize onboarding api keys
2026-01-12 11:18:31 +00:00
Peter Steinberger
8fb655198f
test: skip lan auto-token on windows
2026-01-12 09:20:37 +00:00
Peter Steinberger
7db1cbe178
fix: improve daemon node selection
2026-01-12 08:33:32 +00:00
Peter Steinberger
d0ba56c5ac
fix: set default model after auth choice
2026-01-12 08:04:32 +00:00
Peter Steinberger
b8f8e7f4dd
fix: correct MiniMax Lightning hint
2026-01-12 08:04:32 +00:00
Peter Steinberger
e79cf5a8b1
feat: improve onboarding auth prompts
2026-01-12 07:47:15 +00:00
Peter Steinberger
018f7aa4df
fix: streamline configure section flow
2026-01-12 07:47:15 +00:00
Peter Steinberger
496bad8b98
feat: add Moonshot auth choice
2026-01-12 06:48:06 +00:00
Peter Steinberger
2bed0d78af
test: stabilize lan auto-token onboarding
2026-01-12 06:13:31 +00:00
Peter Steinberger
0baf08fda1
fix: dedupe minimax non-interactive auth
2026-01-12 06:13:31 +00:00
Peter Steinberger
d0861670bd
feat: simplify minimax auth choice
2026-01-12 06:13:00 +00:00
Peter Steinberger
744fadbded
feat: loop configure section picker
2026-01-12 06:13:00 +00:00
Peter Steinberger
2da2057a37
feat(model): add /model picker
2026-01-12 06:02:39 +00:00
Peter Steinberger
f5c851e11e
fix(models): default MiniMax to /anthropic
2026-01-12 05:12:07 +00:00
Peter Steinberger
873cee6947
feat: streamline wizard selection prompts
2026-01-12 05:08:07 +00:00
Peter Steinberger
51d5f16770
refactor: remove mac attach-only setting
2026-01-12 04:58:38 +00:00
Peter Steinberger
2f4a248314
feat: plugin system + voice-call
2026-01-12 01:16:39 +00:00
Peter Steinberger
cf0c72a557
feat: add plugin architecture
2026-01-11 12:11:12 +00:00
Peter Steinberger
7acd26a2fc
Move provider to a plugin-architecture ( #661 )
...
* refactor: introduce provider plugin registry
* refactor: move provider CLI to plugins
* docs: add provider plugin implementation notes
* refactor: shift provider runtime logic into plugins
* refactor: add plugin defaults and summaries
* docs: update provider plugin notes
* feat(commands): add /commands slash list
* Auto-reply: tidy help message
* Auto-reply: fix status command lint
* Tests: align google shared expectations
* Auto-reply: tidy help message
* Auto-reply: fix status command lint
* refactor: move provider routing into plugins
* test: align agent routing expectations
* docs: update provider plugin notes
* refactor: route replies via provider plugins
* docs: note route-reply plugin hooks
* refactor: extend provider plugin contract
* refactor: derive provider status from plugins
* refactor: unify gateway provider control
* refactor: use plugin metadata in auto-reply
* fix: parenthesize cron target selection
* refactor: derive gateway methods from plugins
* refactor: generalize provider logout
* refactor: route provider logout through plugins
* refactor: move WhatsApp web login methods into plugin
* refactor: generalize provider log prefixes
* refactor: centralize default chat provider
* refactor: derive provider lists from registry
* refactor: move provider reload noops into plugins
* refactor: resolve web login provider via alias
* refactor: derive CLI provider options from plugins
* refactor: derive prompt provider list from plugins
* style: apply biome lint fixes
* fix: resolve provider routing edge cases
* docs: update provider plugin refactor notes
* fix(gateway): harden agent provider routing
* refactor: move provider routing into plugins
* refactor: move provider CLI to plugins
* refactor: derive provider lists from registry
* fix: restore slash command parsing
* refactor: align provider ids for schema
* refactor: unify outbound target resolution
* fix: keep outbound labels stable
* feat: add msteams to cron surfaces
* fix: clean up lint build issues
* refactor: localize chat provider alias normalization
* refactor: drive gateway provider lists from plugins
* docs: update provider plugin notes
* style: format message-provider
* fix: avoid provider registry init cycles
* style: sort message-provider imports
* fix: relax provider alias map typing
* refactor: move provider routing into plugins
* refactor: add plugin pairing/config adapters
* refactor: route pairing and provider removal via plugins
* refactor: align auto-reply provider typing
* test: stabilize telegram media mocks
* docs: update provider plugin refactor notes
* refactor: pluginize outbound targets
* refactor: pluginize provider selection
* refactor: generalize text chunk limits
* docs: update provider plugin notes
* refactor: generalize group session/config
* fix: normalize provider id for room detection
* fix: avoid provider init in system prompt
* style: formatting cleanup
* refactor: normalize agent delivery targets
* test: update outbound delivery labels
* chore: fix lint regressions
* refactor: extend provider plugin adapters
* refactor: move elevated/block streaming defaults to plugins
* refactor: defer outbound send deps to plugins
* docs: note plugin-driven streaming/elevated defaults
* refactor: centralize webchat provider constant
* refactor: add provider setup adapters
* refactor: delegate provider add config to plugins
* docs: document plugin-driven provider add
* refactor: add plugin state/binding metadata
* refactor: build agent provider status from plugins
* docs: note plugin-driven agent bindings
* refactor: centralize internal provider constant usage
* fix: normalize WhatsApp targets for groups and E.164 (#631 ) (thanks @imfing)
* refactor: centralize default chat provider
* refactor: centralize WhatsApp target normalization
* refactor: move provider routing into plugins
* refactor: normalize agent delivery targets
* chore: fix lint regressions
* fix: normalize WhatsApp targets for groups and E.164 (#631 ) (thanks @imfing)
* feat: expand provider plugin adapters
* refactor: route auto-reply via provider plugins
* fix: align WhatsApp target normalization
* fix: normalize WhatsApp targets for groups and E.164 (#631 ) (thanks @imfing)
* refactor: centralize WhatsApp target normalization
* feat: add /config chat config updates
* docs: add /config get alias
* feat(commands): add /commands slash list
* refactor: centralize default chat provider
* style: apply biome lint fixes
* chore: fix lint regressions
* fix: clean up whatsapp allowlist typing
* style: format config command helpers
* refactor: pluginize tool threading context
* refactor: normalize session announce targets
* docs: note new plugin threading and announce hooks
* refactor: pluginize message actions
* docs: update provider plugin actions notes
* fix: align provider action adapters
* refactor: centralize webchat checks
* style: format message provider helpers
* refactor: move provider onboarding into adapters
* docs: note onboarding provider adapters
* feat: add msteams onboarding adapter
* style: organize onboarding imports
* fix: normalize msteams allowFrom types
* feat: add plugin text chunk limits
* refactor: use plugin chunk limit fallbacks
* feat: add provider mention stripping hooks
* style: organize provider plugin type imports
* refactor: generalize health snapshots
* refactor: update macOS health snapshot handling
* docs: refresh health snapshot notes
* style: format health snapshot updates
* refactor: drive security warnings via plugins
* docs: note provider security adapter
* style: format provider security adapters
* refactor: centralize provider account defaults
* refactor: type gateway client identity constants
* chore: regen gateway protocol swift
* fix: degrade health on failed provider probe
* refactor: centralize pairing approve hint
* docs: add plugin CLI command references
* refactor: route auth and tool sends through plugins
* docs: expand provider plugin hooks
* refactor: document provider docking touchpoints
* refactor: normalize internal provider defaults
* refactor: streamline outbound delivery wiring
* refactor: make provider onboarding plugin-owned
* refactor: support provider-owned agent tools
* refactor: move telegram draft chunking into telegram module
* refactor: infer provider tool sends via extractToolSend
* fix: repair plugin onboarding imports
* refactor: de-dup outbound target normalization
* style: tidy plugin and agent imports
* refactor: data-drive provider selection line
* fix: satisfy lint after provider plugin rebase
* test: deflake gateway-cli coverage
* style: format gateway-cli coverage test
* refactor(provider-plugins): simplify provider ids
* test(pairing-cli): avoid provider-specific ternary
* style(macos): swiftformat HealthStore
* refactor(sandbox): derive provider tool denylist
* fix(sandbox): avoid plugin init in defaults
* refactor(provider-plugins): centralize provider aliases
* style(test): satisfy biome
* refactor(protocol): v3 providers.status maps
* refactor(ui): adapt to protocol v3
* refactor(macos): adapt to protocol v3
* test: update providers.status v3 fixtures
* refactor(gateway): map provider runtime snapshot
* test(gateway): update reload runtime snapshot
* refactor(whatsapp): normalize heartbeat provider id
* docs(refactor): update provider plugin notes
* style: satisfy biome after rebase
* fix: describe sandboxed elevated in prompt
* feat(gateway): add agent image attachments + live probe
* refactor: derive CLI provider options from plugins
* fix(gateway): harden agent provider routing
* fix(gateway): harden agent provider routing
* refactor: align provider ids for schema
* fix(protocol): keep agent provider string
* fix(gateway): harden agent provider routing
* fix(protocol): keep agent provider string
* refactor: normalize agent delivery targets
* refactor: support provider-owned agent tools
* refactor(config): provider-keyed elevated allowFrom
* style: satisfy biome
* fix(gateway): appease provider narrowing
* style: satisfy biome
* refactor(reply): move group intro hints into plugin
* fix(reply): avoid plugin registry init cycle
* refactor(providers): add lightweight provider dock
* refactor(gateway): use typed client id in connect
* refactor(providers): document docks and avoid init cycles
* refactor(providers): make media limit helper generic
* fix(providers): break plugin registry import cycles
* style: satisfy biome
* refactor(status-all): build providers table from plugins
* refactor(gateway): delegate web login to provider plugin
* refactor(provider): drop web alias
* refactor(provider): lazy-load monitors
* style: satisfy lint/format
* style: format status-all providers table
* style: swiftformat gateway discovery model
* test: make reload plan plugin-driven
* fix: avoid token stringification in status-all
* refactor: make provider IDs explicit in status
* feat: warn on signal/imessage provider runtime errors
* test: cover gateway provider runtime warnings in status
* fix: add runtime kind to provider status issues
* test: cover health degradation on probe failure
* fix: keep routeReply lightweight
* style: organize routeReply imports
* refactor(web): extract auth-store helpers
* refactor(whatsapp): lazy login imports
* refactor(outbound): route replies via plugin outbound
* docs: update provider plugin notes
* style: format provider status issues
* fix: make sandbox scope warning wrap-safe
* refactor: load outbound adapters from provider plugins
* docs: update provider plugin outbound notes
* style(macos): fix swiftformat lint
* docs: changelog for provider plugins
* fix(macos): satisfy swiftformat
* fix(macos): open settings via menu action
* style: format after rebase
* fix(macos): open Settings via menu action
---------
Co-authored-by: LK <luke@kyohere.com>
Co-authored-by: Luke K (pr-0f3t) <2609441+lc0rp@users.noreply.github.com>
Co-authored-by: Xin <xin@imfing.com>
2026-01-11 11:45:25 +00:00
user
dc3c733612
fix(agent): use session key agentId for transcript path
...
Cross-agent subagent spawns wrote transcripts to the spawner's agent
directory instead of the target agent's directory. For example, when
main spawned a codex subagent with session key agent:codex:subagent:...,
the transcript went to agents/main/sessions/ instead of agents/codex/sessions/.
Pass sessionAgentId to resolveSessionFilePath so transcripts are written
to the correct agent's session directory.
2026-01-11 11:11:43 +00:00
Peter Steinberger
0590365683
style: format cleanup commands
2026-01-11 10:54:33 +00:00
Peter Steinberger
11a3b5aac9
style: biome fixes
2026-01-11 10:35:16 +00:00
Peter Steinberger
11c8db14a1
feat: add reset/uninstall commands
2026-01-11 10:23:52 +00:00
Peter Steinberger
f00038b383
fix(testing): stabilize live model runs
2026-01-11 04:22:35 +00:00
Peter Steinberger
343b6ac31b
feat: add onboard reset option
2026-01-11 05:04:36 +01:00
Peter Steinberger
71791d5a6a
fix: restore ZAI provider preference
2026-01-11 04:58:37 +01:00
Peter Steinberger
b7ac9095e6
fix: skip tool-only reasoning replay
2026-01-11 04:52:16 +01:00
Peter Steinberger
30348e41c6
test: stabilize doctor + sandbox tests
2026-01-11 04:45:04 +01:00
Peter Steinberger
7343597075
chore: keep gate green
2026-01-11 04:42:44 +01:00
Peter Steinberger
eeae5ce7fd
fix: stabilize notes and reasoning replay
2026-01-11 04:37:06 +01:00
Peter Steinberger
29884f8d6f
fix: wrap clack notes for cleaner boxes
2026-01-11 04:23:43 +01:00
Peter Steinberger
38604acd94
fix: tighten WhatsApp ack reactions and migrate config ( #629 ) (thanks @pasogott)
2026-01-11 04:11:04 +01:00
Peter Steinberger
579b00503f
style: format onboard providers
2026-01-11 04:08:26 +01:00
Peter Steinberger
36a21ae9b0
fix: improve telegram configuration safety
2026-01-11 03:57:52 +01:00
Peter Steinberger
11f897b7df
fix(gateway): show connect vs RPC status
2026-01-11 03:57:52 +01:00
Peter Steinberger
480bf916e2
fix(status): simplify footer guidance
2026-01-11 03:44:28 +01:00
Peter Steinberger
9a4021a277
Merge pull request #703 from mteam88/openrouter-auth-config
...
Openrouter auth config (AI)
2026-01-11 02:44:24 +00:00
Peter Steinberger
2b07a2a8ab
fix: stabilize onboarding auth tests ( #703 ) (thanks @mteam88)
2026-01-11 03:42:27 +01:00
Matthew
77bc11f91c
chore: format OpenRouter auth edits
2026-01-11 03:35:45 +01:00
Matthew
7890bd7369
CLI: reuse OpenRouter credentials
2026-01-11 03:35:45 +01:00
Matthew
b6982236a6
CLI: add OpenRouter auth choice
2026-01-11 03:35:45 +01:00
Peter Steinberger
494f41d575
docs(status): make status first-step
2026-01-11 03:34:33 +01:00
Peter Steinberger
9b6bc0e66b
fix: reset unsigned launchd overrides ( #695 ) (thanks @jeffersonwarrior)
2026-01-11 03:19:24 +01:00
Peter Steinberger
e824b3514b
fix(status): improve diagnostics and output
2026-01-11 02:42:24 +01:00
Peter Steinberger
2d74119a08
test: cover auto-reply command gating
2026-01-11 02:27:16 +01:00
Peter Steinberger
e0bf86f06c
feat: improve gateway services and auto-reply commands
2026-01-11 02:27:16 +01:00
Peter Steinberger
d8f1124d59
feat: add CLI backend fallback
2026-01-11 00:55:22 +00:00
Peter Steinberger
b0b4b33b6b
fix: update gateway auth docs and clients
2026-01-11 01:51:24 +01:00
Peter Steinberger
d33285a9cd
fix: harden gateway auth defaults
2026-01-11 01:51:24 +01:00
Peter Steinberger
3e6d27ac4e
fix(status): show gateway auth when reachable
2026-01-11 01:46:37 +01:00
Peter Steinberger
506cc9e7a1
chore(release): 2026.1.11-3
2026-01-11 01:38:15 +01:00
Peter Steinberger
07eed3de56
docs(status): add diagnostics commands
2026-01-11 01:31:56 +01:00
Peter Steinberger
318f59ec3e
fix(status): show token previews
2026-01-11 01:11:46 +01:00
Peter Steinberger
57dafec0ec
docs(status): add troubleshooting footer
2026-01-11 01:06:58 +01:00
Peter Steinberger
518dfd4e42
fix(status): provider setup vs warn
2026-01-11 01:05:06 +01:00
Peter Steinberger
5fa3ac1e01
fix(status): full-width tables + better diagnosis
2026-01-11 00:54:27 +01:00
Peter Steinberger
1eb50ffac4
feat(status): improve status output
2026-01-10 23:32:07 +01:00
Peter Steinberger
06052640e8
Merge pull request #685 from carlulsoe/fix/daemon-restart-feedback
...
fix(cli): improve daemon restart feedback [AI-assisted]
2026-01-10 21:53:00 +00:00
Peter Steinberger
fa61699f9a
fix: polish restart feedback + stabilize tests ( #685 ) (thanks @carlulsoe)
2026-01-10 22:52:09 +01:00
Peter Steinberger
ad17966e2f
fix(doctor): warn on opencode overrides
2026-01-10 22:44:31 +01:00
Peter Steinberger
8a194b4abc
fix: align opencode-zen provider setup
2026-01-10 21:38:18 +01:00
Peter Steinberger
3389231ecb
feat(doctor): offer update first
2026-01-10 21:34:59 +01:00
Peter Steinberger
0ef429f532
feat: color docs search output
2026-01-10 21:02:27 +01:00
Peter Steinberger
1bd5500832
feat: add colored CLI docs links
2026-01-10 20:51:03 +01:00
Peter Steinberger
cf192f8551
style: biome format
2026-01-10 19:47:17 +00:00
Peter Steinberger
9f9098406c
feat(sandbox): add sandbox explain inspector
2026-01-10 20:28:43 +01:00
cristip73
c4e76eb635
fix: enable image attachments in chat messages for Claude API
...
Images were previously converted to markdown data URLs which Claude API
treats as plain text, not as actual images.
Changes:
- Add parseMessageWithAttachments() that returns {message, images[]}
- Pass images through the stack to session.prompt() as content blocks
- Filter null/empty attachments before parsing
- Strip data URL prefix if client sends it
This enables iOS and other clients to send images that Claude can actually see.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 20:00:25 +01:00
Peter Steinberger
12722acb55
feat: wizard model picker ( #611 , thanks @jonasjancarik)
2026-01-10 16:32:59 +00:00
Jonáš Jančařík
687a10b8cc
fix: map opencode-zen preferred provider
2026-01-10 16:32:59 +00:00
Jonáš Jančařík
dcc41e932d
feat: add shared model picker to configure/onboarding
2026-01-10 16:32:59 +00:00
Peter Steinberger
81f9093c3c
fix(pairing): accept positional provider args
2026-01-10 16:36:43 +01:00
Peter Steinberger
41c8bdfada
feat: add ZAI auth choice
2026-01-10 16:32:21 +01:00
Peter Steinberger
e60c3fc1b3
fix: doctor ignore install dir in legacy workspace check
2026-01-10 16:23:35 +01:00
Peter Steinberger
78532d76bd
test: clean up lint warnings
2026-01-10 16:17:02 +01:00
Peter Steinberger
53a0c966a5
refactor: unify configure auth choice
2026-01-10 16:14:49 +01:00
mneves75
3e2e3eb023
Config: add MiniMax direct API authentication option
...
Makes apiKey optional in ModelProviderConfig so MiniMax can use auth
profiles or environment variables (MINIMAX_API_KEY) instead of requiring
explicit config.
Changes:
- src/config/types.ts: apiKey changed from required to optional
- src/config/zod-schema.ts: use z.string().min(1).optional() for validation
- src/commands/configure.ts: add minimax-api auth choice in wizard
- src/commands/onboard-auth.ts: MiniMax provider omits apiKey (uses env/auth)
- patches/@mariozechner__pi-ai@0.42.1.patch: map minimax → MINIMAX_API_KEY
Auth Resolution Order (unchanged):
1. Auth profiles (highest priority)
2. Environment variables (MINIMAX_API_KEY, etc.)
3. Custom provider apiKey from models.json (lowest priority)
2026-01-10 10:57:09 -03:00
Peter Steinberger
d3674f4d6c
test(onboard): cover remote + lan token flows
2026-01-10 04:14:39 +00:00
Peter Steinberger
a7c8341452
feat: show more session flags
2026-01-10 05:14:07 +01:00
Peter Steinberger
7b392ca74b
test(onboard): gateway token auth flow
2026-01-10 03:54:29 +00:00
Peter Steinberger
eee04fa2ce
fix(onboard): persist gateway token in config
2026-01-10 03:54:25 +00:00
Peter Steinberger
63b0a16357
feat(cli): colorize gateway health + daemon output
2026-01-10 03:01:27 +01:00
Peter Steinberger
c69c4caa33
fix: polish opencode-zen onboarding ( #623 ) (thanks @magimetal)
2026-01-10 01:09:34 +01:00
Magi Metal
05bd100f7a
style: fix formatting
2026-01-10 01:09:34 +01:00
Magi Metal
a399fa36c8
feat(onboard): add OpenCode Zen as model provider
2026-01-10 01:09:34 +01:00
Peter Steinberger
3554004968
fix: QuickStart provider selection ( #485 )
2026-01-10 01:08:00 +01:00
Peter Steinberger
097550c299
fix: centralize verbose overrides and tool stream gating
2026-01-10 00:52:24 +01:00
Peter Steinberger
79f5ccc99d
fix(gateway): harden agent provider routing
2026-01-09 23:00:36 +01:00
Peter Steinberger
6c7a27c010
refactor: normalize main session key handling
2026-01-09 22:30:15 +01:00
Peter Steinberger
55e830b009
fix: harden onboarding for non-systemd environments
2026-01-09 22:17:09 +01:00
Peter Steinberger
c27b1441f7
fix(auth): billing backoff + cooldown UX
2026-01-09 22:00:14 +01:00
Peter Steinberger
42a0089b3b
fix: require explicit system event session keys
2026-01-09 21:59:01 +01:00
Peter Steinberger
564caf49bb
feat: add config --section
2026-01-09 21:27:51 +01:00
Peter Steinberger
6d378ee608
feat(telegram): inline keyboard buttons ( #491 )
...
Co-authored-by: Azade <azade@hey.com>
2026-01-09 20:47:03 +01:00
Peter Steinberger
7e81980747
refactor: centralize model override validation
2026-01-09 20:14:42 +01:00
Peter Steinberger
42ead1499f
refactor: centralize minimax onboarding + keys
2026-01-09 18:37:06 +01:00
Peter Steinberger
a6a469435a
fix: finalize minimax-api onboarding ( #590 ) (thanks @mneves75)
2026-01-09 18:17:13 +01:00
mneves75
9279795c47
feat: Add MiniMax Anthropic-compatible API support (minimax-api)
...
Add --auth-choice minimax-api for direct MiniMax API usage at
https://api.minimax.io/anthropic using the anthropic-messages API.
Changes:
- Add applyMinimaxApiConfig() function with provider/model config
- Add minimax-api to AuthChoice type and CLI options
- Add handler and non-interactive support
- Fix duplicate minimax entry in envMap
- Update live test to use anthropic-messages API
- Add 11 unit tests covering all edge cases
- Document configuration in gateway docs
Test results:
- 11/11 unit tests pass
- 1/1 live API test passes (verified with real API key)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-09 18:13:18 +01:00
Peter Steinberger
377885bd36
style: format doctor gateway services
2026-01-09 17:53:57 +01:00
Peter Steinberger
c3083f0186
feat: add setup-token + token auth
2026-01-09 17:50:34 +01:00
Peter Steinberger
083877d286
fix: audit doctor service entrypoint
2026-01-09 17:50:28 +01:00
Peter Steinberger
fd9e2d3def
feat: remove provider config in configure
2026-01-09 16:55:47 +01:00
Peter Steinberger
4ffbd9802a
refactor(test): consolidate temp home + vitest setup
2026-01-09 16:41:05 +01:00
Peter Steinberger
f436808735
refactor: consolidate schema scrub + test harness
2026-01-09 16:27:28 +01:00
Peter Steinberger
f5cc6bb283
fix: harden node bridge keepalive
2026-01-09 15:46:45 +01:00
Peter Steinberger
c4c0f1349a
fix: keep build green after main rebase ( #570 ) (thanks @azade-c)
2026-01-09 15:40:36 +01:00
Peter Steinberger
2c5ec94843
test: stabilize sandbox/doctor tests
2026-01-09 15:17:20 +01:00
Peter Steinberger
fc7580ab5e
fix: remove configure control-ui prompt
2026-01-09 15:17:20 +01:00
Peter Steinberger
3e400ff9f2
feat(models): add per-agent auth order overrides
2026-01-09 14:07:45 +00:00
Peter Steinberger
b5c32a4c79
fix(onboarding): remove redundant model spread fallback
2026-01-09 14:16:37 +01:00
Peter Steinberger
cb86d0d6d4
fix: land mac node bridge ping loop ( #572 ) (thanks @ngutman)
2026-01-09 14:01:20 +01:00
Peter Steinberger
7b81d97ec2
feat: wire multi-agent config and routing
...
Co-authored-by: Mark Pors <1078320+pors@users.noreply.github.com>
2026-01-09 12:48:42 +00:00
Peter Steinberger
ac922e83d3
Merge branch 'main' into tobias-sync
2026-01-09 13:42:34 +01:00
Peter Steinberger
dc6f22c2c5
fix: add hosted minimax onboarding ( #495 , thanks @tobiasbischoff)
2026-01-09 13:40:01 +01:00
Tobias Bischoff
a0bb2bccaf
Onboarding: add MiniMax hosted API key option
2026-01-09 13:39:28 +01:00
Peter Steinberger
22d517a520
fix: clarify WhatsApp owner number prompts
2026-01-09 13:32:52 +01:00
Peter Steinberger
201c879772
fix(sandbox): compare list to config images ( #563 ) - thanks @pasogott
2026-01-09 13:29:47 +01:00
sheeek
7883491ce2
test(sandbox): add unit tests for formatter functions
...
Add comprehensive tests for sandbox-formatters.ts (20 tests):
- formatStatus: running/stopped with emojis
- formatSimpleStatus: running/stopped without emojis
- formatImageMatch: match/mismatch indicators
- formatAge: seconds, minutes, hours, days with edge cases
- countRunning: count items by running state
- countMismatches: count items by image mismatch
All pure functions now covered. 152 LOC tests added.
Total test count: 39 tests (19 integration + 20 unit)
Test coverage increased from ~66% to ~80%.
2026-01-09 13:23:16 +01:00
sheeek
7f02b62bba
style(sandbox): fix linting errors
...
- Remove unused normalizeOptions function
- Fix line length violations (format long lines)
- Fix import order (alphabetical)
- Format function signatures for readability
All lint checks now passing.
2026-01-09 13:23:16 +01:00
sheeek
1c757ae35e
refactor(sandbox): use extracted display and formatter modules
...
Update sandbox.ts to import and use functions from:
- sandbox-display.ts for all UI output
- sandbox-formatters.ts for data formatting
Removes 141 LOC of display/formatting code from sandbox.ts,
reducing it from 351 to 210 LOC (-40%).
Core business logic now clearer and more focused.
2026-01-09 13:23:16 +01:00
sheeek
81c55be19b
refactor(sandbox): extract display logic into separate module
...
Move all display functions to sandbox-display.ts:
- displayContainers, displayBrowsers with generic displayItems helper
- displaySummary with image mismatch warnings
- displayRecreatePreview, displayRecreateResult
Uses DisplayConfig pattern to reduce duplication between container
and browser display logic. 156 LOC.
2026-01-09 13:23:16 +01:00
sheeek
dd0104290e
refactor(sandbox): extract formatters into separate module
...
Move formatting utilities to sandbox-formatters.ts:
- formatStatus, formatSimpleStatus, formatImageMatch, formatAge
- countRunning, countMismatches helper functions
- ContainerItem type definition
Improves modularity and reusability. 49 LOC.
2026-01-09 13:23:16 +01:00