Skip to content

Merge mia-dev into claude/hopeful-heisenberg-gbq809 - #13

Merged
npeham merged 100 commits into
fix/MIA-229-MIA-230-microphone-render-mcp-allowlistfrom
claude/hopeful-heisenberg-gbq809
Jun 23, 2026
Merged

Merge mia-dev into claude/hopeful-heisenberg-gbq809#13
npeham merged 100 commits into
fix/MIA-229-MIA-230-microphone-render-mcp-allowlistfrom
claude/hopeful-heisenberg-gbq809

Conversation

@npeham

@npeham npeham commented Jun 23, 2026

Copy link
Copy Markdown

Summary

Merged origin/mia-dev into claude/hopeful-heisenberg-gbq809 and resolved all merge conflicts. No important code was dropped — conflicting changes from both sides were preserved.

The repository was a shallow clone with no common ancestor across the branches; unshallowing restored the real merge base (d680763d), turning an apparent unrelated-history merge into a normal 3-way merge.

Conflicts resolved (5 files)

Image tool import lists — both branches added different named imports from @librechat/api; unioned the imports that are actually used in the merged bodies:

  • api/app/clients/tools/structured/DALLE3.js — kept getProxyDispatcher, getEnvProxyDispatcher (ours) + enforceImageSizeLimit (mia-dev)
  • api/app/clients/tools/structured/GeminiImageGen.js — kept getEnvProxyDispatcher (ours) + enforceImageSizeLimit (mia-dev)
  • api/app/clients/tools/structured/OpenAIImageTools.js — kept getProxyDispatcher, applyAxiosProxyConfig (ours) + enforceImageSizeLimit, resolveImageGenOaiDefaults (mia-dev)
  • api/app/clients/tools/structured/FluxAPI.js — added enforceImageSizeLimit (mia-dev). Dropped mia-dev's raw HttpsProxyAgent import because our branch's centralized proxy handling (getHttpsProxyAgent/applyAxiosProxyConfig) replaced the raw new HttpsProxyAgent(...) usage in the merged body — keeping it would be an unused import.

packages/api/src/agents/added.ts — mia-dev re-declared const ephemeralAgent, but our branch already declares it earlier. Removed the duplicate declaration and added mia-dev's image_generation?: boolean field to the single surviving declaration's type so the merged ephemeralAgent?.image_generation usage still compiles. Both features preserved.

Verification

  • No conflict markers remain in the tree.
  • All unioned imports are used in their file bodies and exported through @librechat/api (files/images, utils/image, utils/proxy).
  • node --check passes on all four edited JS files.

🤖 Generated with Claude Code


Generated by Claude Code

pp-npeham and others added 30 commits September 10, 2025 09:08
…peline-gh-action

feat/MIA-85-librechat-build-pipeline-gh-action
… in ChatForm

- Added functionality to adjust form position when the virtual keyboard appears on Android Edge, ensuring the input field remains visible.
- Implemented event handlers to manage margin adjustments on focus and blur of the textarea.
- Relates to LibreChat issue danny-avila#10074

MIA-113
- Updated the keyboard overlay fix to specifically target Android Edge versions 141 and greater.
- Relates to danny-avila#10074

MIA-113
…ut-field-android-edge

Fix/mia 113 keyboard hides input field android edge
… in ChatForm component based on v0.8.0

MIA-113
…ut-field-android-edge-v0.8.0

fix/MIA-113-keyboard-hides-input-field-android-edge-v0.8.0
…-to-release-branch

build: add GitHub Actions workflow for building and pushing LibreChat
…nd push to ACR

- Simplified branch specification for push events.
- Added environment variables for image name and tag.
- Enhanced Azure login step to use OIDC.
- Added sanity check for ACR before login.
- Updated Docker image tags to use environment variables for better maintainability.
…-to-release-branch

chore: update GitHub Actions workflow for LibreChat container build a…
- Eliminated the hotfix for the Android Edge browser keyboard overlay issue because Edge fixed it in their latest release
- Relates to danny-avila#10074

MIA-113
…roid-edge-keyboard-hotfix

chore: remove Android Edge keyboard overlay hotfix code
- Eliminated the hotfix for the Android Edge browser keyboard overlay issue as it is no longer necessary.
- This change simplifies the ChatForm component by removing unused code related to keyboard focus handling.

MIA-113
Chore/main rv0.8.1 rc1 with release into main
pp-npeham and others added 27 commits May 11, 2026 09:54
Merge pull request #2 from pcode-at/feat/MIA-204-add-image-generation…
…iB cap

Image generation tools (DALL-E, Flux, Stable Diffusion, OpenAI image_gen/edit)
returned raw base64 images as tool_results, which Anthropic rejects when the
decoded image exceeds 5 MiB. Adds a shared sharp-based downscaler in
packages/api and routes all four tools through it. Per-image budget is
configurable via IMAGE_TOOL_RESULT_MAX_FILE_SIZE_BYTES (default 2.5 MiB).
Switches the in-chat Image Generation toggle from gemini_image_gen to
image_gen_oai (gpt-image-1), and uses IMAGE_TOOL_RESULT_MAX_FILE_SIZE_BYTES
to derive sensible OpenAI API defaults (output_format=WebP,
output_compression, default size and quality). This way OpenAI returns a
smaller image directly instead of us shrinking it after the fact, which
also keeps downstream LLM image-input tokens lower.

The post-generation downscaler now re-encodes at full resolution first
(WebP/JPEG q85) before falling back to actual resizing, so resolution —
and therefore image-token cost — is preserved whenever format conversion
alone is enough to meet the budget. Also wires the downscaler into
GeminiImageGen.js, which was missed in the first pass.
Azure OpenAI's gpt-image-1 deployment rejects webp ("Supported values are:
'png' and 'jpeg'."). JPEG works on both Azure and the direct OpenAI API, so
the budget-derived defaults now use JPEG. Transparent backgrounds still fall
back to PNG since JPEG can't represent transparency.
…e-generation-menu

Feat/mia 204 add image generation menu
The chat tools menu image-generation toggle wired the
`image_generation` ephemeral-agent flag to OpenAI's `image_gen_oai`
tool. Map it to `gemini_image_gen` so generating an image directly
from chat uses Google's Gemini image model, matching the tool
available in the agent builder.

https://claude.ai/code/session_01FXXDoDUkqrSVzzAhh9fpCH
Gemini Image Tools emitted lossless PNGs at full resolution, which
could exceed 10 MB. When such an image is returned in a tool result to
an Anthropic model, the request is rejected (5 MiB per-image limit).

Default the output format to WebP and add a size-enforcement step that
re-compresses and progressively downscales any image whose base64
payload would exceed a safe threshold, so the result is accepted by
every provider.

https://claude.ai/code/session_01FXXDoDUkqrSVzzAhh9fpCH
The 5 MiB per-image cap for tool-result images lived only in the Gemini
image tool, so DALL-E, Flux, Stable Diffusion and the OpenAI image tools
could still emit oversized base64 payloads that Anthropic rejects.

Extract `enforceImageSizeLimit` into `@librechat/api` (packages/api) as a
shared, mimeType-based helper and apply it in every image-generation tool
before the base64 data URL is built, so any generated image is accepted
by every provider.

https://claude.ai/code/session_01GgQN1WiYYeZx2RdPttST9i
…fig-ZCJht

Extract image size limiting to shared utility module
…ration-chat-SMSfE

feat/MIA-204 - image generation from chat
…i-image-gen-from-chat-menu

Feat/mia 204 gemini image gen from chat menu
…e is provided

replaceSpecialVars previously short-circuited the timezone branch whenever
an explicit `now` value was passed, so backend callers that supply both
`conversationCreatedAt` and `clientTimezone` (e.g. agent initialization)
rendered `{{current_datetime}}` in the server's local zone instead of the
user's browser timezone.

Also fixes a pre-existing bug in the dayjs test mock that referenced an
out-of-scope `input` variable, and adds regression coverage for the
combined anchor-time + timezone case.
…arthy-ZB6v5

# Conflicts:
#	api/app/clients/tools/structured/DALLE3.js
Release v0.8.6: Add RUM, file retention, build info, and test coverage
Fix timezone handling in replaceSpecialVars with anchor time
Merge Main into Mia-Dev
…senberg-gbq809

# Conflicts:
#	api/app/clients/tools/structured/DALLE3.js
#	api/app/clients/tools/structured/FluxAPI.js
#	api/app/clients/tools/structured/GeminiImageGen.js
#	api/app/clients/tools/structured/OpenAIImageTools.js
#	packages/api/src/agents/added.ts
@npeham
npeham changed the base branch from mia-dev to fix/MIA-229-MIA-230-microphone-render-mcp-allowlist June 23, 2026 18:57
@npeham
npeham marked this pull request as ready for review June 23, 2026 18:57
@npeham
npeham merged commit de5d64a into fix/MIA-229-MIA-230-microphone-render-mcp-allowlist Jun 23, 2026
21 of 25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants