Repository navigation
[pull] main from danny-avila:main - #272
Merged
Merged
Conversation
* fix: Preserve Draft Identity Across Navigation * fix: Await Conversation Records With Loaded Assistant Catalogs * fix: Reconcile Retained Conversation State on Route Remount
Co-authored-by: Lia <lia@librechat.ai>
Co-authored-by: Lia <lia@librechat.ai>
…ate (#16165) * docs: tighten PR template type-of-change and screenshot guidance Type of change asked authors to select what applies but left the whole list in the description, so every PR shipped six unchecked boxes a reviewer had to scan past. Tell authors to delete the lines that do not apply. The screenshot section said only "include before/after screenshots", which left both when it applies and how to attach a file to guesswork. Spell out the user-visible surfaces that require one, and give the upload path directly: relative image links in the body plus `gh pr create|edit|comment --attach`, which rewrites each link to the uploaded asset. Name the workarounds that must not be used, since a committed image, a local path or a hand-written user-attachments link all cost a review round. * docs: tell PR authors not to hand-wrap paragraphs GitHub renders a single newline inside a paragraph as a line break, so a description wrapped at 80 columns in an editor arrives as ragged short lines that never reflow to the reader's window. Say so in the Summary guidance, and note that it covers every section, list items and table cells. * docs: stop claiming gh --attach is the only upload route The web editor's drag and paste is also a real upload and also returns an asset URL. The point of the sentence is that an asset URL comes back from an upload and cannot be written by hand, so say that instead. * docs: say the before screenshot comes from the base revision "Capture from the app running this branch" applied to both halves of the pair, so a before image captured that way shows the changed UI too and the pair demonstrates nothing.
Co-authored-by: Lia <lia@librechat.ai>
Co-authored-by: Lia <lia@librechat.ai>
* 🏦 fix: Require Named Helm Credential Secrets * docs: Clarify Helm Credential Injection and Meilisearch Secrets --------- Co-authored-by: Lia <lia@librechat.ai>
Co-authored-by: Lia <lia@librechat.ai>
* fix: preserve Insights with guarded ACL role updates * test: settle ACL index builds before opening the transaction * fix: replace ACL mask partitions with single-operator bit writes * style: drop the now-unused RoleBits import * fix: make ACL role replacement one atomic guarded write * fix: export the permission write retry ceiling * fix: retry ACL mutations per document and preserve atomic permissions --------- Co-authored-by: Lia <lia@librechat.ai>
* fix: preserve Insights with guarded ACL role updates * fix: reject combined $bit operators in ACL permission writes * test: type the permission-bit spies without never casts * test: settle ACL index builds before opening the transaction * fix: replace ACL mask partitions with single-operator bit writes * style: drop the now-unused RoleBits import * fix: split two-sided permission bit writes into single operators * fix: make ACL role replacement one atomic guarded write * fix: export the permission write retry ceiling * fix: retry ACL mutations per document and preserve atomic permissions --------- Co-authored-by: Lia <lia@librechat.ai>
The quote specs resolved a needle inside a single text node, which the smooth-streaming fade makes untrue for the whole window between a reply being fully readable and its turn settling: `animate.tsx` wraps every word of the animated message in its own span, so `E2E opening paragraph` lives in three sibling text nodes and the lookup threw `No text node contains: E2E opening paragraph`. The lookup now matches each message's flattened text and maps the match back onto the nodes it came from, and the cross-message test checks the selection is still crossing two messages when it asserts the popup stays away, so a collapsed selection can no longer pass it by default. Co-authored-by: Lia <lia@librechat.ai>
* ⚡ perf: Discover MCP tools only when needed * 🎨 style: Format startup regression coverage * 🫥 fix: Keep hidden agent panels from discovering tools * 🧹 fix: Remove unused startup import --------- Co-authored-by: Lia <lia@librechat.ai>
#16193) * feat: report dispatch, settlement and elapsed timings from check_background_task The poll tool described a background task only as running or settled, with no notion of when: a caller could not tell a task dispatched seconds ago from one stuck for an hour, and a collected result carried no settlement time. Ordinary and subagent tasks both already stamp dispatch and last update in the registry, so the poll payload now serializes them the way the rest of the app serializes time (ISO-8601), plus the elapsed span because a polling model has no clock of its own. The durable receipt a poll falls back to after a restart already stored its settlement time; it is carried through the claim projection so a recovered poll reports settlement too. * test: drive the timing assertions from the assigned dispatch stamp The registry dispatch stamp is strictly increasing and process-global, so it is not the mocked clock: the poll test now reads the stamp the registry assigned and drives the clock from it. Four durable-claim assertions admit the settlement stamp the projection now carries, and the new block is Prettier-formatted. --------- Co-authored-by: Lia <lia@librechat.ai>
Co-authored-by: Lia <lia@librechat.ai>
Co-authored-by: Lia <lia@librechat.ai>
Co-authored-by: Lia <lia@librechat.ai>
* 🌊 fix: Prevent Agent Model Stream Idle Timeouts * fix: Preserve Default Proxy Dispatcher Construction * test: Assert Agent Transport Timeout Policy * test: Cover Direct Model Dispatcher Reuse * fix: Scope Agent Model Transport Timeouts * fix: Enforce Agent Timeouts Across Direct and Summary Clients * fix: Align Model Transport Adapter Types --------- Co-authored-by: Lia <lia@librechat.ai>
* docs: set expectations for AI-assisted contributions * docs: note that we may finish a contributor's branch --------- Co-authored-by: Lia <lia@librechat.ai>
* 🧮 fix: Show Live Tool Combo Multipliers * 🧮 fix: Preserve Live Outcome Separator * 🧮 fix: Narrow Combo Scan Parts * 🧮 test: Expect Live Combo Labels * 🎰 fix: Synchronize Live Combo Transitions * 🎰 test: Await Live Combo Reset * 🎰 perf: Accumulate Tool Combos During Span Summaries --------- Co-authored-by: Lia <lia@librechat.ai>
* fix: give each streamed tool call a stable outward index * fix: scope tool-call fragments and preserve completed answers * fix: finalize agent tool-call snapshots without duplicating deltas * fix: assemble complete tool identities before response publication --------- Co-authored-by: Lia <lia@librechat.ai>
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )