Repository navigation
Releases: mjason/longx
Release list
v0.2.143
Refresh the command shell environment
- Add Refresh shell environment in Settings → Computer & command environment. Re-read the saved shell's startup configuration for subsequent commands and new jobs, without restarting Longx.
- Show the captured shell path and refresh time. A failed refresh keeps the previous snapshot and reports a safe error without exposing environment variables or startup output through the settings API.
- Serialize snapshot capture while keeping cached environment reads available during a refresh.
- Require settings changes to be saved first. Disable editing, reset, save and repeated refresh actions while saving or refreshing, so pending requests cannot hide an unsaved draft.
- Add backend, settings UI and real Chromium desktop/mobile regressions, including delayed saves, concurrent captures, failure preservation and retry.
Refreshing the environment does not change running jobs, OS user groups or permissions. This release does not change conversation prompts or system instructions.
v0.2.142
Preserve reading position when copying
- Prevent focus changes during plain-HTTP text copying from scrolling the page or its nested containers, including when a code-block copy click retains focus in the composer.
- Keep the existing selection fallback, modal-menu focus handling, clipboard contents, and focus restoration behavior intact.
- Add real Chromium regressions using the chat and code-block renderer at desktop and mobile widths, with transformed ancestors and retained-input-focus scenarios. Verify actual clipboard contents and all scroll positions together.
- Keep the existing menu-copy and chat follow/reading-position regressions, and run the new copy-scroll regression in CI.
This release does not change conversation prompts or system instructions.
v0.2.141
Model discovery and health checks
- Import models from another provider even when their upstream model IDs already exist locally. Automatically allocated names use the upstream ID when available, then a provider prefix, then a numeric suffix. Existing model names, upstream IDs, and settings remain unchanged.
- Make discovery imports idempotent for each provider and upstream model. After a partially successful batch, retry only the unfinished models without duplicating or overwriting existing configurations.
- Run health checks through the same request adapter used by conversations, including ChatGPT/Codex list inputs, streaming, and provider-specific headers.
- Report failures carried inside HTTP 200 response streams instead of treating every successful HTTP status as a healthy model. Reject incomplete or prematurely closed checks.
- Bound health checks by a total deadline and response-size budget, and release cancelled connections.
- Add a real Chromium → Phoenix/GraphQL → Ash/SQLite regression to CI, covering cross-provider names, preserved model configurations, rediscovery, and successful and failed checks at desktop and mobile widths.
This release does not change conversation prompts or system instructions.
v0.2.140
ChatGPT sign-in recovery
- Recover a missing ChatGPT credential from the provider's sign-in action without resetting existing provider or model settings.
- Allow explicit reauthentication even when a previous token still appears signed in locally.
- Offer a new device code after sign-in fails, and poll sequentially so slow requests do not overlap.
- Handle consumed or expired device-login state without crashing the request.
- Coordinate token refresh with new sign-ins and reuse an already refreshed token for concurrent automatic requests.
- Enforce background refresh job deduplication and coordinate credential creation across template application and sign-in recovery.
- Add frontend, API, expiry, concurrency, and recovery regression coverage.
This release does not change model prompts or system instructions. Reauthentication does not grant access to models unavailable to the ChatGPT account.
Longx v0.2.139
Citation rendering
- Render verified message citations as clickable inline references and assistant-ui source links.
- Preserve citation annotations on completed messages and recover them when replaying historical transcripts, without rewriting stored conversations.
- Replace unresolved provider-private citation markers with an explicit “Source unavailable” notice. Sources are never guessed from search-result order.
- Handle partial streaming markers, preserve literal code examples, and reject unsafe or credential-bearing source URLs.
- Add message-adapter, Markdown, component, backend, and real Chromium regression coverage.
This release does not change model prompts or system instructions.
Longx v0.2.138
Mobile composer layout
- Keep running and required-job status on a separate row on narrow screens, avoiding vertically wrapped status text and collisions with context usage, model selection, and send/stop controls.
- Truncate long status text while keeping the full text available in its tooltip and job details accessible.
- Preserve the compact idle composer and the single-row desktop layout.
- Add real Chromium layout regressions across 320, 375, 390, 640, and 1280px, covering ordinary and long model names, context usage, running/waiting states, and keyboard access to job details.
Validation: 632 frontend tests, TypeScript checks, production build, and all 10 browser layout combinations passed before release validation.
Longx v0.2.137
Goal restart fixes
- Start a fresh goal in the same conversation after completing the previous one, with token usage and elapsed time reset.
- Open
/goalwith an empty objective and budget after completion; unfinished goals retain their counters when edited or resumed. - Preserve the objective when restarting a completed goal with a status-only update.
- Keep incoming usage updates from overwriting the goal draft.
- Close the goal dialog when switching conversations so a draft cannot be saved to the wrong conversation.
Verified with regression tests and a real-browser flow completing two goals in the same conversation without clearing the first.
Publishing this release does not automatically upgrade or restart a running instance.
Longx v0.2.136
Reliability and callback fixes
- Fix scheduled callbacks returning to their creating sub-agent, while preserving project and session access boundaries.
- Retry transient upstream HTTP/2 stream failures using the existing bounded retry policy.
- Make turn interruption target the intended turn atomically.
- Prevent watchdog/completion races, duplicate completion notifications, and late events overwriting a newer turn.
- Keep Tracker responsive during agent creation by moving kernel probes off its callback path.
- Bound transcript write batches and flush deadlines while preserving FIFO order and stable item IDs.
- Defer SQLite-busy Oban job fetches without restarting the queue or terminating running workers.
- Fix mobile overflow in model fallback chips and the HTTPS DNS provider picker, including long English labels.
These fixes do not establish the original writer responsible for historical SQLite lock incidents or guarantee recovery from persistent upstream failures.
Publishing this release does not automatically upgrade or restart a running instance.
v0.2.135
Improvements
- Finished, unresolved result-required jobs can now be explicitly abandoned from their task details, with confirmation. Their exit status, review and logs are preserved, and abandonment is recorded separately from successful verification.
- Abandoning a job removes it from outstanding work and skips an end callback that has not yet been taken up. It does not interrupt an agent turn already in progress.
- Newly reviewed incomplete job results receive one follow-up step: continue safe in-scope diagnosis or repair, or clearly explain the blocker and the decision needed. Historical failures do not repeatedly restart on unrelated messages, and person-stopped work is not restarted automatically.
Fixes
- Opening a sub-agent or switching away from its parent conversation closes the agent menu, preventing a floating menu from remaining after its anchor is hidden.
- Very short jobs that finish before their startup status is read return their saved exact-run result instead of failing the start call.
- Exact-run checks prevent stale task controls from affecting a replacement job. Concurrent reconciliation cannot overwrite a person's abandonment decision.
Includes desktop/mobile UI, API, callback, stopped-work, replacement and concurrency regressions. Abandonment is not a claim that failed verification succeeded.
v0.2.134
Fixes
- Inserted messages now seal earlier display segments: only the newest reply owns the activity indicator and no-output timer, without ending the actual running turn.
- Agent menus and counts use current team membership, so closed agents no longer linger. Archived conversations restore their read-only history after a restart, without reviving an agent or its tasks.
- Archived history no longer appears to be running because of an old live snapshot. Loading failures, empty history, and stale stop actions have explicit feedback.
- File opening and the editor's read/save operations accept any file accessible to the Longx process, including absolute paths, parent-relative paths,
.gitfiles, and symlinks.
File access
The editor is not a project-root sandbox. Use Docker/container isolation or operating-system permissions to limit access. Existing binary-file handling and large-file safeguards remain in place. File-tree operations, Git diffs, and download addressing retain their existing project-relative behavior.
Includes regressions for repeated insertions and reconnects, agent closure and archived-history recovery, and outside-project file opening on desktop and mobile.