feat(cli): add autostart on/off/toggle shorthand for headless serve mode (#3331) - #3614
Merged
Merged
Conversation
…ode (#3331) Co-authored-by: uniQta <uniQta@users.noreply.github.com>
Contributor
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
Code Review SummaryStatus: 1 Warning Found | Recommendation: Review before merging | Note: PR #3614 appears to already be in MERGED state as of this review. Overview
Issue Details (click to expand)WARNING
Other Observations (not in diff)No other observations. Files Reviewed (4 files)
Reviewed by step-3.7-flash-20260528 · 525,286 tokens |
Merged
diegosouzapw
added a commit
that referenced
this pull request
Jun 11, 2026
* chore(release): open v3.8.21 development cycle * fix: pass through valid max_tokens-truncated responses instead of fake 502 (#3572) (#3595) * fix: /v1/completions returns legacy text-completion format, not chat (#3571) (#3596) * fix: z.ai/GLM coding plan no longer shows Monthly 0% when no monthly cap (#3580) (#3597) * docs: mark DISCOVERY_TOOL_DESIGN endpoints as Phase-2 not-yet-implemented (#3498) (#3599) * fix(agent-bridge): add validate-only upstream-ca/test route (#3488) (#3600) * fix(gamification): add level/badges/badges-earned profile routes (#3484) * security(oauth): migrate 5 public client_ids to resolvePublicCred (#3493) * fix(mcp): ship MCP server source closure in npm files + coverage gate (#3578) * fix: add reasoning token buffer for combo routing (fixes #3587) (#3588) Integrated into release/v3.8.21 * Refactor: Extract chatCore phases into modular files (#3598) Integrated into release/v3.8.21 — chatCore phase modularization. Adjusted: re-derive idempotencyKey for the save path after the check moved into the module (co-authored). Thanks @oyi77! * docs(changelog): credit #3598 (chatCore modularization) + #3588 (combo reasoning buffer) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(api): implement GET /api/guardrails + POST /api/guardrails/test, drop shadow/guardrails doc-fiction (#3496) (#3602) Integrated into release/v3.8.21 — implements GET /api/guardrails + POST /api/guardrails/test, removes shadow/guardrails doc-fiction. TDD-validated (5/5) + check-docs-symbols/typecheck/eslint green. * fix(gemini): isolate textual reasoning wrappers (#3605) Split-out PR C from #3584. Isolates textual reasoning wrappers (<think>/<thinking>/<thought>/<internal_thought>, including malformed/open tags) into reasoning_content across both the non-streaming sanitizer and the Gemini streaming translator, with split-chunk buffering. Additive to the existing textual tool-call pipeline; does not touch the #3569 native functionResponse path. Integrated into release/v3.8.21. Thanks @dhaern! * fix(antigravity): normalize Gemini 3.5 Flash tier IDs (#3603) Split-out PR A from #3584. Normalizes the Antigravity/agy Gemini 3.5 Flash tier IDs to clean public names (gemini-3.5-flash-low/medium/high), maps them to the live upstream IDs at the executor boundary, and removes Antigravity from the global model resolver so the executor owns wire normalization. Maintainer follow-up: kept gemini-3.5-flash-preview as a hidden backward-compat alias routing to the High tier (so saved combos/configs keep working). Live-validated the tier set via the agy CLI catalog. Integrated into release/v3.8.21. Thanks @dhaern! * fix(agent-bridge): surface real MITM startup-failure cause, not always port 443 (#3606) (#3608) Integrated into release/v3.8.21 (#3606) * fix(oauth): surface real Kiro import-token failure cause, not a bare 500 (#3589) (#3609) Integrated into release/v3.8.21 (#3589) * docs(opencode-provider): soft-deprecate in favor of @omniroute/opencode-plugin (#3419) (#3613) Integrated into release/v3.8.21 (#3419) * fix(usage): normalize Antigravity and agy provider quotas (#3604) Split-out PR B from #3584. Normalizes Antigravity/agy provider quotas: prefers retrieveUserQuota for live consumption, falls back to fetchAvailableModels and local usage_history, sanitizes cached Provider Limits so retired upstream IDs are not re-exposed, and schedules a deduplicated post-usage refresh. Maintainer follow-up: decoupled the post-usage refresh via a lightweight usageEvents bus (usageHistory no longer dynamic-imports providerLimits) so it does not pull the executors/translator graph into the typecheck-core surface — typecheck:core stays at 0. Integrated into release/v3.8.21. Thanks @dhaern! * feat(cli): add autostart on/off/toggle shorthand for headless serve mode (#3331) (#3614) Integrated into release/v3.8.21 (#3331) * docs(changelog): credit #3603 (Flash tier IDs) + #3604 (provider quotas) + #3605 (reasoning wrappers) Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com> * fix(review): resolve findings from /review-reviews battery (v3.8.21 hardening) (#3618) Pre-release hardening from the /review-reviews battery — 15 findings resolved (L1-L13,L15) + L14 live-verified WONTFIX, convergence re-review clean. lint/typecheck:core/test:vitest(146)/build green; zero new test:unit failures vs baseline 797de43. * chore(release): v3.8.21 CHANGELOG + i18n + env-doc sync --------- Co-authored-by: Hernan Javier Ardila Sanchez <hjasgr@gmail.com> Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Raxxoor <manker_lol@hotmail.com>
oyi77
pushed a commit
to oyi77/OmniRoute
that referenced
this pull request
Jun 12, 2026
…ode (diegosouzapw#3331) (diegosouzapw#3614) Integrated into release/v3.8.21 (diegosouzapw#3331)
oyi77
pushed a commit
to oyi77/OmniRoute
that referenced
this pull request
Jun 12, 2026
…ode (diegosouzapw#3331) (diegosouzapw#3614) Integrated into release/v3.8.21 (diegosouzapw#3331)
oyi77
pushed a commit
to oyi77/OmniRoute
that referenced
this pull request
Jun 12, 2026
…ode (diegosouzapw#3331) (diegosouzapw#3614) Integrated into release/v3.8.21 (diegosouzapw#3331)
oyi77
pushed a commit
to oyi77/OmniRoute
that referenced
this pull request
Jun 12, 2026
…ode (diegosouzapw#3331) (diegosouzapw#3614) Integrated into release/v3.8.21 (diegosouzapw#3331)
oyi77
pushed a commit
to oyi77/OmniRoute
that referenced
this pull request
Jun 12, 2026
…ode (diegosouzapw#3331) (diegosouzapw#3614) Integrated into release/v3.8.21 (diegosouzapw#3331)
oyi77
pushed a commit
to oyi77/OmniRoute
that referenced
this pull request
Jun 12, 2026
…ode (diegosouzapw#3331) (diegosouzapw#3614) Integrated into release/v3.8.21 (diegosouzapw#3331)
oyi77
pushed a commit
to oyi77/OmniRoute
that referenced
this pull request
Jun 12, 2026
…ode (diegosouzapw#3331) (diegosouzapw#3614) Integrated into release/v3.8.21 (diegosouzapw#3331)
HouMinXi
pushed a commit
to HouMinXi/OmniRoute
that referenced
this pull request
Aug 2, 2026
* chore(release): open v3.8.21 development cycle * fix: pass through valid max_tokens-truncated responses instead of fake 502 (diegosouzapw#3572) (diegosouzapw#3595) * fix: /v1/completions returns legacy text-completion format, not chat (diegosouzapw#3571) (diegosouzapw#3596) * fix: z.ai/GLM coding plan no longer shows Monthly 0% when no monthly cap (diegosouzapw#3580) (diegosouzapw#3597) * docs: mark DISCOVERY_TOOL_DESIGN endpoints as Phase-2 not-yet-implemented (diegosouzapw#3498) (diegosouzapw#3599) * fix(agent-bridge): add validate-only upstream-ca/test route (diegosouzapw#3488) (diegosouzapw#3600) * fix(gamification): add level/badges/badges-earned profile routes (diegosouzapw#3484) * security(oauth): migrate 5 public client_ids to resolvePublicCred (diegosouzapw#3493) * fix(mcp): ship MCP server source closure in npm files + coverage gate (diegosouzapw#3578) * fix: add reasoning token buffer for combo routing (fixes diegosouzapw#3587) (diegosouzapw#3588) Integrated into release/v3.8.21 * Refactor: Extract chatCore phases into modular files (diegosouzapw#3598) Integrated into release/v3.8.21 — chatCore phase modularization. Adjusted: re-derive idempotencyKey for the save path after the check moved into the module (co-authored). Thanks @oyi77! * docs(changelog): credit diegosouzapw#3598 (chatCore modularization) + diegosouzapw#3588 (combo reasoning buffer) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(api): implement GET /api/guardrails + POST /api/guardrails/test, drop shadow/guardrails doc-fiction (diegosouzapw#3496) (diegosouzapw#3602) Integrated into release/v3.8.21 — implements GET /api/guardrails + POST /api/guardrails/test, removes shadow/guardrails doc-fiction. TDD-validated (5/5) + check-docs-symbols/typecheck/eslint green. * fix(gemini): isolate textual reasoning wrappers (diegosouzapw#3605) Split-out PR C from diegosouzapw#3584. Isolates textual reasoning wrappers (<think>/<thinking>/<thought>/<internal_thought>, including malformed/open tags) into reasoning_content across both the non-streaming sanitizer and the Gemini streaming translator, with split-chunk buffering. Additive to the existing textual tool-call pipeline; does not touch the diegosouzapw#3569 native functionResponse path. Integrated into release/v3.8.21. Thanks @dhaern! * fix(antigravity): normalize Gemini 3.5 Flash tier IDs (diegosouzapw#3603) Split-out PR A from diegosouzapw#3584. Normalizes the Antigravity/agy Gemini 3.5 Flash tier IDs to clean public names (gemini-3.5-flash-low/medium/high), maps them to the live upstream IDs at the executor boundary, and removes Antigravity from the global model resolver so the executor owns wire normalization. Maintainer follow-up: kept gemini-3.5-flash-preview as a hidden backward-compat alias routing to the High tier (so saved combos/configs keep working). Live-validated the tier set via the agy CLI catalog. Integrated into release/v3.8.21. Thanks @dhaern! * fix(agent-bridge): surface real MITM startup-failure cause, not always port 443 (diegosouzapw#3606) (diegosouzapw#3608) Integrated into release/v3.8.21 (diegosouzapw#3606) * fix(oauth): surface real Kiro import-token failure cause, not a bare 500 (diegosouzapw#3589) (diegosouzapw#3609) Integrated into release/v3.8.21 (diegosouzapw#3589) * docs(opencode-provider): soft-deprecate in favor of @omniroute/opencode-plugin (diegosouzapw#3419) (diegosouzapw#3613) Integrated into release/v3.8.21 (diegosouzapw#3419) * fix(usage): normalize Antigravity and agy provider quotas (diegosouzapw#3604) Split-out PR B from diegosouzapw#3584. Normalizes Antigravity/agy provider quotas: prefers retrieveUserQuota for live consumption, falls back to fetchAvailableModels and local usage_history, sanitizes cached Provider Limits so retired upstream IDs are not re-exposed, and schedules a deduplicated post-usage refresh. Maintainer follow-up: decoupled the post-usage refresh via a lightweight usageEvents bus (usageHistory no longer dynamic-imports providerLimits) so it does not pull the executors/translator graph into the typecheck-core surface — typecheck:core stays at 0. Integrated into release/v3.8.21. Thanks @dhaern! * feat(cli): add autostart on/off/toggle shorthand for headless serve mode (diegosouzapw#3331) (diegosouzapw#3614) Integrated into release/v3.8.21 (diegosouzapw#3331) * docs(changelog): credit diegosouzapw#3603 (Flash tier IDs) + diegosouzapw#3604 (provider quotas) + diegosouzapw#3605 (reasoning wrappers) Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com> * fix(review): resolve findings from /review-reviews battery (v3.8.21 hardening) (diegosouzapw#3618) Pre-release hardening from the /review-reviews battery — 15 findings resolved (L1-L13,L15) + L14 live-verified WONTFIX, convergence re-review clean. lint/typecheck:core/test:vitest(146)/build green; zero new test:unit failures vs baseline 6d24708. * chore(release): v3.8.21 CHANGELOG + i18n + env-doc sync --------- Co-authored-by: Hernan Javier Ardila Sanchez <hjasgr@gmail.com> Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Raxxoor <manker_lol@hotmail.com>
Poid-ZA
pushed a commit
to Poid-ZA/OmniRoute
that referenced
this pull request
Aug 5, 2026
* chore(release): open v3.8.21 development cycle * fix: pass through valid max_tokens-truncated responses instead of fake 502 (diegosouzapw#3572) (diegosouzapw#3595) * fix: /v1/completions returns legacy text-completion format, not chat (diegosouzapw#3571) (diegosouzapw#3596) * fix: z.ai/GLM coding plan no longer shows Monthly 0% when no monthly cap (diegosouzapw#3580) (diegosouzapw#3597) * docs: mark DISCOVERY_TOOL_DESIGN endpoints as Phase-2 not-yet-implemented (diegosouzapw#3498) (diegosouzapw#3599) * fix(agent-bridge): add validate-only upstream-ca/test route (diegosouzapw#3488) (diegosouzapw#3600) * fix(gamification): add level/badges/badges-earned profile routes (diegosouzapw#3484) * security(oauth): migrate 5 public client_ids to resolvePublicCred (diegosouzapw#3493) * fix(mcp): ship MCP server source closure in npm files + coverage gate (diegosouzapw#3578) * fix: add reasoning token buffer for combo routing (fixes diegosouzapw#3587) (diegosouzapw#3588) Integrated into release/v3.8.21 * Refactor: Extract chatCore phases into modular files (diegosouzapw#3598) Integrated into release/v3.8.21 — chatCore phase modularization. Adjusted: re-derive idempotencyKey for the save path after the check moved into the module (co-authored). Thanks @oyi77! * docs(changelog): credit diegosouzapw#3598 (chatCore modularization) + diegosouzapw#3588 (combo reasoning buffer) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(api): implement GET /api/guardrails + POST /api/guardrails/test, drop shadow/guardrails doc-fiction (diegosouzapw#3496) (diegosouzapw#3602) Integrated into release/v3.8.21 — implements GET /api/guardrails + POST /api/guardrails/test, removes shadow/guardrails doc-fiction. TDD-validated (5/5) + check-docs-symbols/typecheck/eslint green. * fix(gemini): isolate textual reasoning wrappers (diegosouzapw#3605) Split-out PR C from diegosouzapw#3584. Isolates textual reasoning wrappers (<think>/<thinking>/<thought>/<internal_thought>, including malformed/open tags) into reasoning_content across both the non-streaming sanitizer and the Gemini streaming translator, with split-chunk buffering. Additive to the existing textual tool-call pipeline; does not touch the diegosouzapw#3569 native functionResponse path. Integrated into release/v3.8.21. Thanks @dhaern! * fix(antigravity): normalize Gemini 3.5 Flash tier IDs (diegosouzapw#3603) Split-out PR A from diegosouzapw#3584. Normalizes the Antigravity/agy Gemini 3.5 Flash tier IDs to clean public names (gemini-3.5-flash-low/medium/high), maps them to the live upstream IDs at the executor boundary, and removes Antigravity from the global model resolver so the executor owns wire normalization. Maintainer follow-up: kept gemini-3.5-flash-preview as a hidden backward-compat alias routing to the High tier (so saved combos/configs keep working). Live-validated the tier set via the agy CLI catalog. Integrated into release/v3.8.21. Thanks @dhaern! * fix(agent-bridge): surface real MITM startup-failure cause, not always port 443 (diegosouzapw#3606) (diegosouzapw#3608) Integrated into release/v3.8.21 (diegosouzapw#3606) * fix(oauth): surface real Kiro import-token failure cause, not a bare 500 (diegosouzapw#3589) (diegosouzapw#3609) Integrated into release/v3.8.21 (diegosouzapw#3589) * docs(opencode-provider): soft-deprecate in favor of @omniroute/opencode-plugin (diegosouzapw#3419) (diegosouzapw#3613) Integrated into release/v3.8.21 (diegosouzapw#3419) * fix(usage): normalize Antigravity and agy provider quotas (diegosouzapw#3604) Split-out PR B from diegosouzapw#3584. Normalizes Antigravity/agy provider quotas: prefers retrieveUserQuota for live consumption, falls back to fetchAvailableModels and local usage_history, sanitizes cached Provider Limits so retired upstream IDs are not re-exposed, and schedules a deduplicated post-usage refresh. Maintainer follow-up: decoupled the post-usage refresh via a lightweight usageEvents bus (usageHistory no longer dynamic-imports providerLimits) so it does not pull the executors/translator graph into the typecheck-core surface — typecheck:core stays at 0. Integrated into release/v3.8.21. Thanks @dhaern! * feat(cli): add autostart on/off/toggle shorthand for headless serve mode (diegosouzapw#3331) (diegosouzapw#3614) Integrated into release/v3.8.21 (diegosouzapw#3331) * docs(changelog): credit diegosouzapw#3603 (Flash tier IDs) + diegosouzapw#3604 (provider quotas) + diegosouzapw#3605 (reasoning wrappers) Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com> * fix(review): resolve findings from /review-reviews battery (v3.8.21 hardening) (diegosouzapw#3618) Pre-release hardening from the /review-reviews battery — 15 findings resolved (L1-L13,L15) + L14 live-verified WONTFIX, convergence re-review clean. lint/typecheck:core/test:vitest(146)/build green; zero new test:unit failures vs baseline 797de43. * chore(release): v3.8.21 CHANGELOG + i18n + env-doc sync --------- Co-authored-by: Hernan Javier Ardila Sanchez <hjasgr@gmail.com> Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Raxxoor <manker_lol@hotmail.com>
tkgo11
pushed a commit
to tkgo11/OmniRoute
that referenced
this pull request
Sep 23, 2026
…ode (diegosouzapw#3331) (diegosouzapw#3614) Integrated into release/v3.8.21 (diegosouzapw#3331)
muhamadgalihsaputra
pushed a commit
to niyatna/NiyatnaRoute
that referenced
this pull request
Sep 27, 2026
* chore(release): open v3.8.21 development cycle * fix: pass through valid max_tokens-truncated responses instead of fake 502 (diegosouzapw#3572) (diegosouzapw#3595) * fix: /v1/completions returns legacy text-completion format, not chat (diegosouzapw#3571) (diegosouzapw#3596) * fix: z.ai/GLM coding plan no longer shows Monthly 0% when no monthly cap (diegosouzapw#3580) (diegosouzapw#3597) * docs: mark DISCOVERY_TOOL_DESIGN endpoints as Phase-2 not-yet-implemented (diegosouzapw#3498) (diegosouzapw#3599) * fix(agent-bridge): add validate-only upstream-ca/test route (diegosouzapw#3488) (diegosouzapw#3600) * fix(gamification): add level/badges/badges-earned profile routes (diegosouzapw#3484) * security(oauth): migrate 5 public client_ids to resolvePublicCred (diegosouzapw#3493) * fix(mcp): ship MCP server source closure in npm files + coverage gate (diegosouzapw#3578) * fix: add reasoning token buffer for combo routing (fixes diegosouzapw#3587) (diegosouzapw#3588) Integrated into release/v3.8.21 * Refactor: Extract chatCore phases into modular files (diegosouzapw#3598) Integrated into release/v3.8.21 — chatCore phase modularization. Adjusted: re-derive idempotencyKey for the save path after the check moved into the module (co-authored). Thanks @oyi77! * docs(changelog): credit diegosouzapw#3598 (chatCore modularization) + diegosouzapw#3588 (combo reasoning buffer) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(api): implement GET /api/guardrails + POST /api/guardrails/test, drop shadow/guardrails doc-fiction (diegosouzapw#3496) (diegosouzapw#3602) Integrated into release/v3.8.21 — implements GET /api/guardrails + POST /api/guardrails/test, removes shadow/guardrails doc-fiction. TDD-validated (5/5) + check-docs-symbols/typecheck/eslint green. * fix(gemini): isolate textual reasoning wrappers (diegosouzapw#3605) Split-out PR C from diegosouzapw#3584. Isolates textual reasoning wrappers (<think>/<thinking>/<thought>/<internal_thought>, including malformed/open tags) into reasoning_content across both the non-streaming sanitizer and the Gemini streaming translator, with split-chunk buffering. Additive to the existing textual tool-call pipeline; does not touch the diegosouzapw#3569 native functionResponse path. Integrated into release/v3.8.21. Thanks @dhaern! * fix(antigravity): normalize Gemini 3.5 Flash tier IDs (diegosouzapw#3603) Split-out PR A from diegosouzapw#3584. Normalizes the Antigravity/agy Gemini 3.5 Flash tier IDs to clean public names (gemini-3.5-flash-low/medium/high), maps them to the live upstream IDs at the executor boundary, and removes Antigravity from the global model resolver so the executor owns wire normalization. Maintainer follow-up: kept gemini-3.5-flash-preview as a hidden backward-compat alias routing to the High tier (so saved combos/configs keep working). Live-validated the tier set via the agy CLI catalog. Integrated into release/v3.8.21. Thanks @dhaern! * fix(agent-bridge): surface real MITM startup-failure cause, not always port 443 (diegosouzapw#3606) (diegosouzapw#3608) Integrated into release/v3.8.21 (diegosouzapw#3606) * fix(oauth): surface real Kiro import-token failure cause, not a bare 500 (diegosouzapw#3589) (diegosouzapw#3609) Integrated into release/v3.8.21 (diegosouzapw#3589) * docs(opencode-provider): soft-deprecate in favor of @omniroute/opencode-plugin (diegosouzapw#3419) (diegosouzapw#3613) Integrated into release/v3.8.21 (diegosouzapw#3419) * fix(usage): normalize Antigravity and agy provider quotas (diegosouzapw#3604) Split-out PR B from diegosouzapw#3584. Normalizes Antigravity/agy provider quotas: prefers retrieveUserQuota for live consumption, falls back to fetchAvailableModels and local usage_history, sanitizes cached Provider Limits so retired upstream IDs are not re-exposed, and schedules a deduplicated post-usage refresh. Maintainer follow-up: decoupled the post-usage refresh via a lightweight usageEvents bus (usageHistory no longer dynamic-imports providerLimits) so it does not pull the executors/translator graph into the typecheck-core surface — typecheck:core stays at 0. Integrated into release/v3.8.21. Thanks @dhaern! * feat(cli): add autostart on/off/toggle shorthand for headless serve mode (diegosouzapw#3331) (diegosouzapw#3614) Integrated into release/v3.8.21 (diegosouzapw#3331) * docs(changelog): credit diegosouzapw#3603 (Flash tier IDs) + diegosouzapw#3604 (provider quotas) + diegosouzapw#3605 (reasoning wrappers) Co-authored-by: diegosouzapw <diegosouza.pw@gmail.com> * fix(review): resolve findings from /review-reviews battery (v3.8.21 hardening) (diegosouzapw#3618) Pre-release hardening from the /review-reviews battery — 15 findings resolved (L1-L13,L15) + L14 live-verified WONTFIX, convergence re-review clean. lint/typecheck:core/test:vitest(146)/build green; zero new test:unit failures vs baseline 408d91a2c. * chore(release): v3.8.21 CHANGELOG + i18n + env-doc sync --------- Co-authored-by: Hernan Javier Ardila Sanchez <hjasgr@gmail.com> Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Raxxoor <manker_lol@hotmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #3331
Problem
Autostart could only be toggled from the tray (
omniroute serve --tray) or the Electron Appearance tab (guarded behindisElectron && window.electronAPI). A plainomniroute serve/ headless user had no path to enable autostart short of hand-writing a launchd plist / systemd unit. The reporter asked foromniroute autostart true.Fix
The cross-platform autostart logic already exists and is shipped (
bin/cli/tray/autostart.mjs— launchd / systemd-user / XDG-desktop / Windows registry), and theautostart enable|disable|statussubcommands already wrap it. This PR adds the ergonomic shorthand the reporter asked for, without touching the platform logic:omniroute autostart on/... true→ aliases ofenableomniroute autostart off/... false→ aliases ofdisableomniroute autostart toggle→ new subcommand (flips current state)omniroute autostart(bare) → defaultstatus(safe read-only)autostart.togglei18n key added to en + pt-BRValidation (Hard Rule #18 — TDD)
tests/unit/autostart-cli-shorthand-3331.test.ts(4 cases, RED→GREEN) introspects the registered command tree: enable/disable/toggle/status present;enablecarrieson/truealiases;disablecarriesoff/false;statusis the default. No platform side-effects in the test.Verified live on this box:
autostart --helplistsenable|on/disable|off/toggle/status;autostart statusprints the status table;autostart on --helpresolves to the enable subcommand.check:cli-i18nPASS,eslintclean (bin/ ignored),prettier --checkclean.Co-authored-by: uniQta uniQta@users.noreply.github.com