Skip to content

feat: expose usage limit response headers#3

Open
Yassinbrine wants to merge 187 commits into
mainfrom
codex/4758-limit-response-headers
Open

feat: expose usage limit response headers#3
Yassinbrine wants to merge 187 commits into
mainfrom
codex/4758-limit-response-headers

Conversation

@Yassinbrine
Copy link
Copy Markdown
Owner

/claim archestra-ai#4758

Summary

  • Add Archestra usage limit response headers for LLM proxy requests.
  • Select the applicable token-cost limit with the least remaining usage.
  • Return remaining usage, limit value, and reset timestamp through X-Archestra-Limit-* headers.
  • Include headers on regular responses, streaming responses, and 429 limit-exceeded responses.

Testing

  • git diff --check
  • Not run locally: pnpm is not installed in this environment.

Note: GitHub blocked opening this directly against archestra-ai/archestra because the upstream repository restricts new PRs to prior contributors. This fork PR is based on upstream main commit b62f8728197c455833a8cc3542acacc22c1d5ba8.

archestra-contributor-pr-bot Bot and others added 30 commits May 12, 2026 13:48
Automated: grant contributor access to @daiquydev

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: daiquydev <105071667+daiquydev@users.noreply.github.com>
Automated: grant contributor access to @BrodoB

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: BrodoB <264983715+BrodoB@users.noreply.github.com>
## Summary
- Defer noncritical GitHub star and latest-release lookups by 5s so
authenticated shell APIs win the cold-load network window.
- Skip latest-release checks when release links are hidden or custom
footer text is configured.
- Skip GitHub stars when community links are hidden or the user is not
authenticated.
- Give the default app logo stable dimensions to avoid the sidebar logo
being flagged as an unsized image.

## Audit notes
Chrome DevTools performance/network pass on `/mcp/registry` showed the
initial fetch/font window included two external GitHub API requests:
- `https://api.github.com/repos/archestra-ai/archestra`
- `https://api.github.com/repos/archestra-ai/archestra/releases/latest`

After this change, the same initial network window contains only local
app/auth data plus the active font. The GitHub calls are delayed and no
longer compete with shell startup requests.
Automated: grant contributor access to @sus689

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: sus689 <137593950+sus689@users.noreply.github.com>
Automated: grant contributor access to @didier-brown

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: didier-brown <209773413+didier-brown@users.noreply.github.com>
🤖 I have created a release *beep* *boop*
---


##
[1.2.43](archestra-ai/archestra@platform-v1.2.42...platform-v1.2.43)
(2026-05-12)


### Bug Fixes

* **security:** clear Docker Scout HIGH CVEs
([archestra-ai#4578](archestra-ai#4578))
([5d6b758](archestra-ai@5d6b758))


### Miscellaneous Chores

* add separate --check mode for the vault migrate script
([archestra-ai#4588](archestra-ai#4588))
([04323e0](archestra-ai@04323e0))
* reduce shell noncritical startup requests
([archestra-ai#4585](archestra-ai#4585))
([fae7a67](archestra-ai@fae7a67))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: archestra-ci[bot] <222894074+archestra-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Automated: grant contributor access to @diegousdz

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: diegousdz <27159075+diegousdz@users.noreply.github.com>
Automated: grant contributor access to @Adysekus

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: Adysekus <263228245+Adysekus@users.noreply.github.com>
🤖 I have created a release *beep* *boop*
---


##
[1.2.44](archestra-ai/archestra@platform-v1.2.43...platform-v1.2.44)
(2026-05-12)


### Bug Fixes

* relax probe timeouts and make them configurable
([archestra-ai#4595](archestra-ai#4595))
([58568bc](archestra-ai@58568bc))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: archestra-ci[bot] <222894074+archestra-ci[bot]@users.noreply.github.com>
Automated: grant contributor access to @phquand2000

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: phquand2000 <129814932+phquand2000@users.noreply.github.com>
Automated: grant contributor access to @elfketchup

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: elfketchup <4986185+elfketchup@users.noreply.github.com>
Automated: grant contributor access to @basdilhan

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: basdilhan <174925119+basdilhan@users.noreply.github.com>
## Summary
- Tighten Bedrock chat message content detection to match
provider-visible UI message parts
- Pad messages made only of ignored data/control parts or streaming tool
input before sending to Bedrock
- Add regression coverage for ignored data parts, step markers, and
streaming tool input

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>
…ra-ai#4602)

## Summary

- Replace pino's default sync stdout with `pino.destination({ fd: 1,
sync: false, minLength: 4096 })` so log writes don't block the event
loop when the container log pipe is backpressured.
- Drop `pino-pretty` from the main logger path entirely. Backend logs
are now raw JSON in all environments. (`pino-pretty` stays in
`dependencies` because `entrypoints/_shared/log-capture.ts` still uses
it.)
- Demote per-tool-result payload logs in `convertToolResultsToToon`
(anthropic / gemini / ollama / openai / vllm / zhipuai adapters) from
`debug` to `trace`.
- OTEL log-forwarding stream is unchanged.

## What changes at runtime

| | Before | After |
| --- | --- | --- |
| stdout format | pino-pretty (colorized, single-line) | raw JSON (one
object per line) |
| stdout write mode | sync — blocks the event loop on full kernel log
pipe | async, buffered (4 KB) |
| Per-line CPU on hot path | JSON parse → colorize → format → stringify
→ sync write | append to buffer; flush async |
| Per-tool-result payload logs | `debug` (active when `LOG_LEVEL=debug`)
| `trace` (off by default) |
| OTEL log stream | enabled | enabled |

Trade-off: up to 4 KB of buffered logs may be lost on a hard crash
before flush — standard pino async-destination behaviour.
…a-ai#4603)

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

---------

Co-authored-by: Joey Orlando <joey@archestra.ai>
Co-authored-by: Joey Orlando <joseph.t.orlando@gmail.com>
## Summary

- Adds default 2 vCPU CPU requests to the Helm chart values for the main
platform and worker containers.
- Documents the updated Helm resource defaults.
- Adds Helm unit coverage for the rendered CPU request defaults.


## Why

Fastify recommends 2 vCPU per app instance for lowest latency because
the second vCPU helps garbage collection and libuv work avoid blocking
the main thread.

Reference:
https://fastify.dev/docs/latest/Guides/Recommendations/#capacity-planning-for-production
🤖 I have created a release *beep* *boop*
---


##
[1.2.45](archestra-ai/archestra@platform-v1.2.44...platform-v1.2.45)
(2026-05-12)


### Bug Fixes

* Bedrock empty chat content
([archestra-ai#4598](archestra-ai#4598))
([e39d9d4](archestra-ai@e39d9d4))
* stop computing toolCount on singular find/update paths
([archestra-ai#4603](archestra-ai#4603))
([f8a926e](archestra-ai@f8a926e))


### Performance Improvements

* **logging:** async stdout in prod, gate pino-pretty to dev
([archestra-ai#4602](archestra-ai#4602))
([46b1756](archestra-ai@46b1756))


### Miscellaneous Chores

* add default Helm CPU requests
([archestra-ai#4605](archestra-ai#4605))
([8b8851c](archestra-ai@8b8851c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: archestra-ci[bot] <222894074+archestra-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Automated: grant contributor access to @Darshan3690

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: Darshan3690 <177705772+Darshan3690@users.noreply.github.com>
Automated: grant contributor access to @nguyen-hung-dev

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: nguyen-hung-dev <203117713+nguyen-hung-dev@users.noreply.github.com>
Automated: grant contributor access to @phungkaizen

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: phungkaizen <223699997+phungkaizen@users.noreply.github.com>
## Summary
- skip cached MCP client ping checks for clients validated within the
last 30 seconds
- keep idle-client validation and existing failure recovery paths for
stale connections
- switch the role debugger user picker to the searchable user select
component
Automated: grant contributor access to @IssacDanny

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: IssacDanny <153848108+IssacDanny@users.noreply.github.com>
Automated: grant contributor access to @lyraforge

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: lyraforge <284144456+lyraforge@users.noreply.github.com>
Automated: grant contributor access to @ErnestHysa

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: ErnestHysa <59969602+ErnestHysa@users.noreply.github.com>
Automated: grant contributor access to @mgalavai

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: mgalavai <7943076+mgalavai@users.noreply.github.com>
Automated: grant contributor access to @Gammarays1980

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: Gammarays1980 <98857547+Gammarays1980@users.noreply.github.com>
Automated: grant contributor access to @AshuraXX2206

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: AshuraXX2206 <124451787+AshuraXX2206@users.noreply.github.com>
Automated: grant contributor access to @AshuraXX2206

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: AshuraXX2206 <124451787+AshuraXX2206@users.noreply.github.com>
Matvey-Kuk and others added 30 commits May 18, 2026 22:07
)

Oversized request bodies were returning 500 with a terse `"Request body
is too large"` log line and no useful details in the frontend chat UI.

- Detect `FST_ERR_CTP_BODY_TOO_LARGE` in the global Fastify error
handler and return 413 with a message naming the limit and observed
Content-Length.
- All error log branches now include `method`, `url`, `route`,
`routeId`, `reqId`, `contentLength`, `contentType`. 413 logs add
`bodyLimit` + Fastify code; generic Errors add `code` + `stack`.
- Frontend `mapClientError` maps backend `error.type` values
(`api_payload_too_large_error`, etc.) to normalized `ChatErrorCode`s so
the inline error card renders the right code/retryable badge with the
backend message verbatim.

close archestra-ai#4741

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>
Automated: grant contributor access to @schaelle

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: schaelle <42194+schaelle@users.noreply.github.com>
Automated: grant contributor access to @k-kozika

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: k-kozika <127573443+k-kozika@users.noreply.github.com>
Automated: grant contributor access to @Yeetusbleetus

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: Yeetusbleetus <49679841+Yeetusbleetus@users.noreply.github.com>
Automated: grant contributor access to @pedropaulovc

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: pedropaulovc <577970+pedropaulovc@users.noreply.github.com>
Automated: grant contributor access to @is3ka1

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: is3ka1 <25743179+is3ka1@users.noreply.github.com>
Automated: grant contributor access to @akhildevelops

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: akhildevelops <6951100+akhildevelops@users.noreply.github.com>
Automated: grant contributor access to @luwinter111

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: luwinter111 <285847764+luwinter111@users.noreply.github.com>
Automated: grant contributor access to @adamjacobmuller

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: adamjacobmuller <623767+adamjacobmuller@users.noreply.github.com>
Automated: grant contributor access to @falkirks

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: falkirks <5827558+falkirks@users.noreply.github.com>
Automated: grant contributor access to @fernando-aguilar-coro

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: fernando-aguilar-coro <196711081+fernando-aguilar-coro@users.noreply.github.com>
Automated: grant contributor access to @caffeinum

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: caffeinum <1909384+caffeinum@users.noreply.github.com>
Automated: grant contributor access to @RYB-404

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: RYB-404 <116948958+RYB-404@users.noreply.github.com>
Automated: grant contributor access to @crftr

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: crftr <547985+crftr@users.noreply.github.com>
Automated: grant contributor access to @StevenWanglolz

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: StevenWanglolz <113498839+StevenWanglolz@users.noreply.github.com>
Automated: grant contributor access to @SwathiMystery

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: SwathiMystery <1615134+SwathiMystery@users.noreply.github.com>
Automated: grant contributor access to @dennisoelkers

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: dennisoelkers <41929+dennisoelkers@users.noreply.github.com>
Automated: grant contributor access to @mkcash

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: mkcash <35645504+mkcash@users.noreply.github.com>
Automated: grant contributor access to @prakash-atul

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: prakash-atul <84735805+prakash-atul@users.noreply.github.com>
…-ai#4780)

## Summary

Editing a catalog row's description today shows the "Reinstall affected
servers?" cascade modal and runs `cascadeReinstallForCatalog`, which
restarts the K8s pod (local servers) or re-fetches tools from the remote
MCP server. Description has no runtime effect — the restart is wasted
work and an unnecessary user confirmation step.

This PR skips the cascade (and the modal) when the **only** changed
field is `description`. Everything else keeps its existing behavior.
Automated: grant contributor access to @elinamirnaya

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: elinamirnaya <20165953+elinamirnaya@users.noreply.github.com>
Automated: grant contributor access to @sypham98-prog

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: sypham98-prog <246709336+sypham98-prog@users.noreply.github.com>
Automated: grant contributor access to @pk-vyshak

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: pk-vyshak <91388638+pk-vyshak@users.noreply.github.com>
Automated: grant contributor access to @rohit-Jung

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: rohit-Jung <157964658+rohit-Jung@users.noreply.github.com>
Automated: grant contributor access to @rohit-Jung

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: rohit-Jung <157964658+rohit-Jung@users.noreply.github.com>
---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

---------

Co-authored-by: Claude <noreply@anthropic.com>
🤖 I have created a release *beep* *boop*
---


##
[1.2.50](archestra-ai/archestra@platform-v1.2.48...platform-v1.2.50)
(2026-05-19)


### Features

* add preset validation regex
([archestra-ai#4830](archestra-ai#4830))
([e92adcf](archestra-ai@e92adcf))
* **catalog-headers:** expose Sensitive toggle in Header dialog
([archestra-ai#4767](archestra-ai#4767))
([1b9ebe2](archestra-ai@1b9ebe2))
* configurable preset term + org-level preset entries
([archestra-ai#4750](archestra-ai#4750))
([3b32fb9](archestra-ai@3b32fb9))
* empty state for presets tab when no preset fields
([archestra-ai#4756](archestra-ai#4756))
([e5ee00d](archestra-ai@e5ee00d))
* mcp catalog presets
([archestra-ai#4402](archestra-ai#4402))
([95644e2](archestra-ai@95644e2))
* **org-structure:** allow renaming the Default preset label
([archestra-ai#4770](archestra-ai#4770))
([f8366e6](archestra-ai@f8366e6))
* preset filter on catalog Logs/Inspector/Shell/Credentials pages
([archestra-ai#4755](archestra-ai#4755))
([b78e39c](archestra-ai@b78e39c))
* sequential preset fill step before MCP install
([archestra-ai#4757](archestra-ai#4757))
([f0a383f](archestra-ai@f0a383f))
* support Azure inference URL overrides
([archestra-ai#4682](archestra-ai#4682))
([dba30ee](archestra-ai@dba30ee))
* support per-limit cleanup intervals and default user limits
([archestra-ai#4668](archestra-ai#4668))
([42ae7dd](archestra-ai@42ae7dd))
* **ui:** logos panel rework + sidebar toggler tweaks
([archestra-ai#4751](archestra-ai#4751))
([fadb47e](archestra-ai@fadb47e))


### Bug Fixes

* **catalog:** skip reinstall when only description changed
([archestra-ai#4780](archestra-ai#4780))
([5c86b98](archestra-ai@5c86b98))
* don't require env variable ARCHESTRA_VLLM_BASE_URL
([archestra-ai#4308](archestra-ai#4308))
([2581460](archestra-ai@2581460))
* **e2e:** scope addCustomSelfHostedCatalogItem to the new env-var
sub-dialog
([archestra-ai#4696](archestra-ai#4696)
follow-up)
([archestra-ai#4704](archestra-ai#4704))
([5514b42](archestra-ai@5514b42))
* honor keyless azure chat provider keys
([archestra-ai#4692](archestra-ai#4692))
([9ff1162](archestra-ai@9ff1162))
* make claude code work
([archestra-ai#4686](archestra-ai#4686))
([b646834](archestra-ai@b646834))
* **mcp-gateway:** stop caching negative auth results to break the 401
race ([archestra-ai#4708](archestra-ai#4708))
([8570c9e](archestra-ai@8570c9e))
* **orchestrator:** preserve plain preset env vars across auto redeploy
([archestra-ai#4703](archestra-ai#4703))
([5359004](archestra-ai@5359004))
* **orchestrator:** preserve plain prompted env values across auto
redeploy
([archestra-ai#4709](archestra-ai#4709))
([f9b5292](archestra-ai@f9b5292))
* preset entry secret cascade
([archestra-ai#4752](archestra-ai#4752))
([5c59b81](archestra-ai@5c59b81))
* **presets:** preset edit silently fails when row carries orphan keys
from past scope flips
([archestra-ai#4701](archestra-ai#4701))
([80b09ba](archestra-ai@80b09ba))
* **presets:** scope password manager autofill to the preset editor form
([archestra-ai#4697](archestra-ai#4697))
([7288fa0](archestra-ai@7288fa0))
* prevent backend crash when Socket Mode WebSocket rotates
([archestra-ai#4695](archestra-ai#4695))
([1fe5d17](archestra-ai@1fe5d17))
* proxy to catalog from backend too
([archestra-ai#4717](archestra-ai#4717))
([f89e53a](archestra-ai@f89e53a))
* return 413 for body-too-large, enrich error logs
([archestra-ai#4802](archestra-ai#4802))
([fbad846](archestra-ai@fbad846))
* stop double-prefixing path in Anthropic proxy fallback
([archestra-ai#4662](archestra-ai#4662))
([e23d2fd](archestra-ai@e23d2fd))


### Documentation

* **models:** add class-level overviews for catalog + mcp_server
([archestra-ai#4766](archestra-ai#4766))
([05d7100](archestra-ai@05d7100))


### Miscellaneous Chores

* backport xml hotfix
([archestra-ai#4677](archestra-ai#4677))
([be917b6](archestra-ai@be917b6))
* **e2e:** mark two known-broken specs as expected-fail
([archestra-ai#4775](archestra-ai#4775))
([69412aa](archestra-ai@69412aa))
* move env var and header add/edit into dialogs with read-only catalog
tables ([archestra-ai#4696](archestra-ai#4696))
([8abb77d](archestra-ai@8abb77d))
* move envFrom and Secret Files add/edit into dialogs
([archestra-ai#4698](archestra-ai#4698))
([caaa920](archestra-ai@caaa920))
* **release:** bump version
([archestra-ai#4678](archestra-ai#4678))
([4852e22](archestra-ai@4852e22))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: archestra-ci[bot] <222894074+archestra-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
… span (archestra-ai#4834)

## Summary

- The Install button on MCP catalog cards rendered as a small
content-width pill instead of filling the row when no required preset
value was set.
- Root cause: when `PermissionButton` renders a `<TooltipTrigger
asChild>` path (tooltip provided, or disabled-for-permission state), the
`<span>` wrapper becomes the actual flex child of the parent row.
`className` (e.g. `flex-1`) was forwarded only to the inner `<Button>`,
so the span shrank to content width.
- Fix: forward `className` to the wrapper span and add `w-full` to the
inner Button. Layout classes like `flex-1` now take effect at the
flex-child level; visual classes (text/border/hover) still apply to the
button.

</a>
Automated: grant contributor access to @tolik518

---
<!-- archestra-banner:v1 -->
<a href="https://archestra.ai/contributor-onboard" rel="nofollow
noreferrer noopener" target="_blank">

<img alt="Archestra Contributor"
src="https://raw.githubusercontent.com/archestra-ai/archestra/main/docs/assets/archestra-contributor-banner.webp"/>

</a>

Co-authored-by: tolik518 <3026792+tolik518@users.noreply.github.com>
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