@mandujs/core 0.54.27 → 0.54.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mandujs/core",
3
- "version": "0.54.27",
3
+ "version": "0.54.28",
4
4
  "description": "Mandu Framework Core - Spec, Generator, Guard, Runtime",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -195,7 +195,20 @@ export function ErrorOverlay({
195
195
  const handleKeyDown = (e: KeyboardEvent) => {
196
196
  if (e.key === 'Escape') {
197
197
  onClose();
198
- } else if (e.key === 'i' || e.key === 'I') {
198
+ return;
199
+ }
200
+ // Don't hijack single-letter shortcuts while the user is typing in an
201
+ // editable element, or when a modifier is held (e.g. real Ctrl/Cmd+C).
202
+ const target = e.target as HTMLElement | null;
203
+ const isEditable = !!target && (
204
+ target.tagName === 'INPUT' ||
205
+ target.tagName === 'TEXTAREA' ||
206
+ target.isContentEditable
207
+ );
208
+ if (isEditable || e.ctrlKey || e.metaKey || e.altKey) {
209
+ return;
210
+ }
211
+ if (e.key === 'i' || e.key === 'I') {
199
212
  onIgnore();
200
213
  } else if (e.key === 'c' || e.key === 'C') {
201
214
  onCopy();
@@ -142,6 +142,12 @@ export class PersistenceManager {
142
142
  activeTab: 'unknown',
143
143
  },
144
144
  });
145
+ // A repeatedly-failing flush (e.g. a non-quota storage error) must not
146
+ // let pendingEvents grow unbounded. Keep only the most recent batch.
147
+ const cap = this.config.maxPersistEvents;
148
+ if (this.pendingEvents.length > cap) {
149
+ this.pendingEvents = this.pendingEvents.slice(-cap);
150
+ }
145
151
  }
146
152
  }
147
153