#8473: fix(gateway): prevent spurious restarts on meta.lastTouchedAt changes
gateway
stale
Cluster:
Gateway Hot-Reload Improvements
## Problem
Config reload watcher triggers gateway restart when `meta.lastTouchedAt` updates, even though the `meta` block contains no actionable config changes.
This causes:
- Unnecessary gateway restarts on every config write
- AbortError noise in logs
- Potential disruption during high-activity periods
## Solution
Add `meta` prefix to `BASE_RELOAD_RULES_TAIL` with `kind: 'none'`:
```typescript
{ prefix: 'meta', kind: 'none' },
```
This follows the existing pattern for `identity`, `wizard`, and other non-actionable config sections.
## Verification
Local testing confirmed stable — gateway PID unchanged after config writes that only update `meta.lastTouchedAt`.
Fixes #8442
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
This change updates the gateway config reload rules to treat the top-level `meta` config section as non-actionable by adding `{ prefix: "meta", kind: "none" }` to `BASE_RELOAD_RULES_TAIL` in `src/gateway/config-reload.ts`. This prevents the reload planner from scheduling hot reloads or full gateway restarts when only `meta.lastTouchedAt` (or other `meta.*` fields) changes, aligning `meta` with other explicitly ignored sections like `identity` and `wizard`.
<h3>Confidence Score: 5/5</h3>
- This PR is safe to merge with minimal risk.
- The change is a one-line addition to an existing no-op prefix list; it only suppresses reload actions for `meta.*` changes and does not affect matching logic for other prefixes.
- No files require special attention
<!-- greptile_other_comments_section -->
<sub>(4/5) You can add custom instructions or style guidelines for the agent [here](https://app.greptile.com/review/github)!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#11280: fix(gateway): add meta prefix to reload rules to prevent double SIG...
by cheenu1092-oss · 2026-02-07
93.2%
#11746: fix: treat meta config paths as no-op to prevent unnecessary gatewa...
by QDenka · 2026-02-08
91.0%
#13408: fix(gateway): skip SIGUSR1 restart in config.patch for noop reload ...
by rwmjhb · 2026-02-10
79.4%
#4108: gateway: hot-reload heartbeat when agents.list changes
by jifanchn · 2026-01-29
76.2%
#22720: fix: notify sessions on invalid config during hot-reload
by jayleekr · 2026-02-21
75.7%
#7747: Gateway: add zero-latency hot-reload for agent bindings
by NikolasP98 · 2026-02-03
74.9%
#14564: fix(gateway): crashes on startup when tailscale meets non-loopback ...
by yinghaosang · 2026-02-12
74.7%
#20355: fix(gateway): enforce commands.restart guard for config.apply and c...
by Clawborn · 2026-02-18
73.6%
#9112: Fix: Prevent double SIGUSR1 restart on model switch
by vishaltandale00 · 2026-02-04
72.9%
#12953: fix: defer gateway restart until all replies are sent
by zoskebutler · 2026-02-10
72.8%