@nac3/forge-cli 1.0.89 → 1.0.91

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.
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzC,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;iEAC6D;IAC7D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;mBAIe;IACf,QAAQ,CAAC,EAAE,eAAe,GAAG,iBAAiB,CAAC;IAC/C;;2BAEuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;gEAI4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAsJD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqQ1D"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzC,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;iEAC6D;IAC7D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;mBAIe;IACf,QAAQ,CAAC,EAAE,eAAe,GAAG,iBAAiB,CAAC;IAC/C;;2BAEuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;gEAI4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAsJD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgR1D"}
@@ -414,10 +414,25 @@ export function registerChatCommand(program) {
414
414
  * mas tarde de lo esperado, el loop estuvo bloqueado. unref'd
415
415
  * para no impedir el shutdown. */
416
416
  let lastBeat = Date.now();
417
+ /* Drift above SLEEP_MS is almost certainly the machine SUSPENDING, not a
418
+ * blocked loop: a wall-clock watchdog cannot tell the two apart, and the
419
+ * diag showed TWO separate yf processes reporting identical multi-minute
420
+ * "stalls" at the same instant (Pablo 2026-07-27) -- that only happens on
421
+ * suspend. Report those quietly as a resume; keep the loud STALL for the
422
+ * real short blocks (graph regen / snapshot serialization). */
423
+ const SLEEP_MS = 120000;
417
424
  const stallWatch = setInterval(() => {
418
425
  const now = Date.now();
419
426
  const drift = now - lastBeat - 2000;
420
- if (drift > 3000) {
427
+ if (drift > SLEEP_MS) {
428
+ const secs = Math.round(drift / 1000);
429
+ try {
430
+ console.error(c.dim('[yf] reanudado tras suspension ~' + secs + 's (no fue un bloqueo del server)'));
431
+ }
432
+ catch { /* */ }
433
+ logDiagSync('resume_after_sleep', '~' + secs + 's');
434
+ }
435
+ else if (drift > 3000) {
421
436
  const msg = 'event loop bloqueado ~' + Math.round(drift / 1000) + 's (server vivo pero sin responder)';
422
437
  try {
423
438
  console.error(c.warn('[yf] STALL: ' + msg));
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
@@ -52,3 +52,14 @@ the stated concurrency.
52
52
 
53
53
  Record the target concurrency and the tier decisions in the spec so
54
54
  they are traceable and can be revisited when the number changes.
55
+
56
+ ## 4. Then harden each component (see `performance-hardening`)
57
+
58
+ This doctrine sizes the ARCHITECTURE. Sizing the tiers right does not
59
+ save a component that holds a transaction open across a network call,
60
+ runs a batch in one monolithic commit, hammers a non-idempotent third
61
+ party, or grids a table with `LIKE '%q%'`. The construction-time
62
+ pattern library -- commit-per-chunk, send-outside-transaction, deadlock
63
+ retry, backpressure caps, server-side pagination, idempotency at the
64
+ boundary, TTL cleanup, heartbeat/watchdog -- lives in
65
+ `performance-hardening`. Size here; harden there.
@@ -0,0 +1,213 @@
1
+ # Performance & scale hardening doctrine
2
+
3
+ Every load-bearing component MUST be built for its load in its FIRST
4
+ version -- not hardened after it falls over in production. The brain
5
+ defaults to the happy path: it writes the loop, calls the API, renders
6
+ the grid, and stops. That is exactly how a component ships that
7
+ saturates the DB, hammers a third party, or deadlocks under
8
+ concurrency. This doctrine is the pattern library that closes that gap.
9
+
10
+ Apply the patterns that the component's SHAPE triggers (below). This is
11
+ the RUNTIME / construction complement to `concurrency-scale` (which
12
+ sizes the ARCHITECTURE during relevamiento). Size the tiers there;
13
+ harden each component here. Every rule below is battle-tested in a
14
+ production HITL system, not theory.
15
+
16
+ ## How to use this: match the trigger, apply the pattern
17
+
18
+ ### Trigger 1 -- a component that WRITES to a DB in a loop or batch
19
+
20
+ - **Commit per chunk, never one monolithic transaction.** A single
21
+ final commit over the whole run holds row/gap locks on every touched
22
+ table until the end, grows the undo log unbounded, and lets ONE
23
+ deadlock roll back the ENTIRE run. Commit per item (or per small
24
+ chunk): locks release continuously, a failure isolates to one item,
25
+ and the run becomes resumable.
26
+ - **Never hold a transaction open across a slow side-effect (network /
27
+ external call).** Use the TWO-TRANSACTION pattern: TX1 = change state
28
+ + set an "in-flight" marker -> COMMIT (release locks) -> perform the
29
+ external call with NO transaction open -> TX2 = record the result +
30
+ clear the marker -> COMMIT. A crash between the COMMIT and the call
31
+ must be recoverable: build a sweeper that finds rows with the marker
32
+ set but no result, past a TTL, and re-queues them.
33
+ - **Deadlock retry with backoff + jitter.** Classify transient errors
34
+ (MariaDB 1213 deadlock / 1205 lock-wait-timeout; SQLite "database is
35
+ locked") and retry the transaction with exponential backoff + jitter
36
+ (~6 attempts is a good default). Two variants: retry on a FRESH
37
+ connection (top-level request) vs retry a pure-DB sub-transaction on
38
+ the ALREADY-OPEN connection. **INVARIANT: never put an external call
39
+ inside a retry body** -- a redo would double-send / double-charge.
40
+ - **Reserve -> confirm -> return for consumable resources.** Do not
41
+ decrement-then-hope-to-refund. Reserve at arming, confirm on success,
42
+ return on reject. The decrement MUST be a single atomic UPDATE guarded
43
+ so the balance never goes negative (multiple workers touch the same
44
+ row).
45
+ - **Atomic counter / compare-and-swap, not read-modify-write, across
46
+ threads or workers.** `UPDATE ... SET flag=1 WHERE id=? AND flag=0`;
47
+ if rowcount=0 you lost the race, back off. Guard in-process shared
48
+ state with a lock (a multi-thread WSGI server runs N handlers).
49
+
50
+ ### Trigger 2 -- a component that CALLS a third party (API / provider / webhook)
51
+
52
+ - **Assume NOT idempotent until proven.** Never auto-retry a
53
+ non-idempotent write. A firm reject goes to a dead-end + manual path,
54
+ NOT a burst of retries at a real person or resource. Gate any
55
+ auto-refire behind provider-confirmed idempotency OR a read-back that
56
+ proves the prior call did not land.
57
+ - **Idempotency at the boundary = a UNIQUE constraint.** Dedupe by the
58
+ provider's real message/transaction id ON WRITE, not just on read.
59
+ Webhooks arrive "at least once" and may re-deliver even after your
60
+ ACK; an unconditional insert turns one event into six rows.
61
+ - **ACK first, work after.** Answer the webhook immediately (202) and do
62
+ the slow work (notices, downstream calls) in a background thread /
63
+ queue. A slow response makes the provider time out and re-send ->
64
+ amplification (one real incident: 62 inbound images -> 36 real).
65
+ - **Pace outbound explicitly.** Per-recipient minimum interval; a
66
+ time-window gate (do not contact outside allowed hours; exempt urgent
67
+ paths); a per-run quota + an inter-item sleep placed OUTSIDE any open
68
+ transaction. Respect the provider's rate limits as first-class config.
69
+ - **Timeout-then-escalate; never wait forever.** After a bounded wait,
70
+ escalate or advance so nothing stays stuck. Advance on the FIRST of
71
+ several signals (read / reply / timeout), idempotently.
72
+ - **The external latency and the human ARE the dominant time cost** --
73
+ far above the DB. Do not block the main thread on them; optimizing a
74
+ query that was never the bottleneck buys nothing.
75
+
76
+ ### Trigger 3 -- a background loop / scheduler / sweeper
77
+
78
+ - **Backpressure: cap dispatches per pass.** A mass dump ("run it all
79
+ now") without a cap is a stampede that collides into deadlocks. A
80
+ configurable cap per pass drains the backlog in controlled batches and
81
+ keeps each pass under the watchdog threshold.
82
+ - **One unit per key per pass** when exclusivity/order matters (e.g. one
83
+ message per recipient per sweep) so the loop never fires two at the
84
+ same target.
85
+ - **Isolate each sweep in its own transaction + its own retry.** Do not
86
+ bundle several sweeps under one commit -- one deadlock then starves all
87
+ of them for the whole interval.
88
+ - **Locks with a configurable TTL, keyed CORRECTLY.** An eternal lock is
89
+ a bug (a silent responder blocks the target forever). Key the lock by
90
+ the thing that must serialize (per type / per recipient / per delivery
91
+ target). Stamp each run with the SERVER-INSTANCE token so a recycled
92
+ PID after a restart does not leave the lock hung.
93
+ - **Singletons start EXACTLY once**, guarded against double-start (a dev
94
+ reloader or two threads can otherwise launch two schedulers -> doubled
95
+ cron and doubled sends).
96
+
97
+ ### Trigger 4 -- a list / grid / export endpoint
98
+
99
+ - **Server-side pagination**: LIMIT/OFFSET with an envelope
100
+ `{items, total, page, pages}` and a page_size cap. Filter the WHOLE set
101
+ server-side, THEN paginate -- never filter only the visible page.
102
+ - **Export fetches the complete filtered/ordered set** via an explicit
103
+ flag (e.g. `?todo=1`), never by scraping the visible DOM page. The
104
+ page_size cap still protects the screen.
105
+ - Never load the whole world into the client to render a view.
106
+
107
+ ### Trigger 5 -- a query on a table that GROWS
108
+
109
+ - **Index every column that grows and is filtered / joined / sorted.** A
110
+ UNIQUE constraint IS an index -- do not double-index its leading
111
+ column, and do not "fix" a scan that already rides a UNIQUE.
112
+ - **Never wrap an indexed column in a function inside WHERE / GROUP BY /
113
+ ORDER BY** (`substr(ts,1,10)=today`, `TRIM(col)=''`, `ORDER BY CASE`).
114
+ It disables the index. Rewrite to a RANGE (`ts >= day AND ts < next`),
115
+ normalize on write, or persist the sort key in its own indexed column.
116
+ - **`LIKE '%q%'` (leading wildcard) is unindexable by a B-tree.** Use an
117
+ anchored prefix `q%` (indexable, "starts with") or a real full-text
118
+ index (MariaDB FULLTEXT / SQLite FTS). Free-text search at scale wants
119
+ an inverted index, not SQL LIKE.
120
+ - **Engine portability: short indexed columns are VARCHAR(191), not
121
+ TEXT.** SQLite indexes TEXT happily and hides the bug; MariaDB errors
122
+ 1071 "key too long" (and FK-on-TEXT errno 150). Test against the REAL
123
+ engine before prod (a pre-push barrier catches "key too long" before
124
+ the VM does).
125
+
126
+ ### Trigger 6 -- memory / large payloads / long work
127
+
128
+ - **Do not load a whole file / dataset into memory** when you can stream
129
+ in chunks. Know the memory peak of each heavy operation and do not let
130
+ two heavy runs (import + browser bot + batch) overlap on one machine.
131
+ - **Compress large payloads (gzip)** and raise size caps ONLY on the
132
+ specific admin endpoint, not globally.
133
+ - **Long-running work -> background job + poll**, never inside the HTTP
134
+ request (that is a structural 504). Return `202 + id`; the client polls
135
+ a status endpoint. Guard it idempotently: a second start while one is
136
+ alive returns the SAME run.
137
+
138
+ ### Trigger 7 -- anything that accumulates (tables, files, logs)
139
+
140
+ - **Every fast-growing table and disk accumulation needs a TTL cleanup**,
141
+ configurable, default OFF (never silent data loss). Bounded size keeps
142
+ queries fast and disk healthy. Beware: cleanup that deletes DB rows
143
+ often forgets the files they point to -- purge both.
144
+
145
+ ### Trigger 8 -- observability of the hardening itself
146
+
147
+ - **Instrument retries.** Leave a trace when a retry saved a transaction,
148
+ so residual deadlocks are countable ("the retry doing its job, not an
149
+ error"), not invisible.
150
+ - **Heartbeat per service + heartbeat MID-PASS.** A long pass over a big
151
+ backlog exceeds the liveness threshold and trips a FALSE "hung" alarm;
152
+ refresh the heartbeat every N items inside the loop (zero DB, safe
153
+ mid-transaction).
154
+ - **A watchdog that RELAUNCHES the hung thread, not just logs** -- and
155
+ reports honestly whether it revived a dead thread or the thread is
156
+ alive-but-stuck (which needs a restart it cannot do from inside).
157
+ - **Dedupe repeated alerts within a window** (one incident emitted 891
158
+ identical alerts, one per pass). Exclude genuinely unique events from
159
+ dedupe.
160
+ - **Load-test as an acceptance gate.** Re-run the realistic peak and
161
+ compare deadlocks / orphaned handoffs / false-watchdogs / throughput
162
+ p50/p95 against a baseline; a hardening change does not "close" until
163
+ the numbers hold. You cannot tune what you do not measure -- and the
164
+ volumetry you assume is not the volumetry you have until measured.
165
+
166
+ ## The cross-cutting laws (apply to EVERY threshold you add)
167
+
168
+ 1. **Cero hardcode.** Every threshold -- cap, retry count, backoff, TTL,
169
+ timeout, poll interval, quota, sleep -- lives in config with a sane
170
+ clamp/floor. The DEFAULT preserves current behavior; a dangerous
171
+ feature is born INERT (0 / off) and hot-applied. A garbage value
172
+ collapses to the safe behavior, never to the risky one.
173
+ 2. **Producer/consumer symmetry.** When you change a producer, audit ALL
174
+ its consumers BEFORE the commit. Clamp the same value identically on
175
+ save (producer) and on read (consumer). Preview (dry-run) must walk
176
+ the EXACT same set and same locks as real execution -- the count shown
177
+ equals the count processed.
178
+ 3. **Never an external / network call inside an open transaction or a
179
+ retry.** This single rule prevents most lock storms AND all
180
+ double-sends / double-charges.
181
+ 4. **Fail-closed (cero dano silencioso).** On ambiguous or corrupt input,
182
+ collapse to the safe branch (manual review, no-op), never the
183
+ irreversible one. Lists are born empty, switches born off.
184
+ 5. **Measure first.** Before flipping a switch that fans out to real
185
+ users / resources, COUNT the burst it will release (how many are
186
+ queued right now). Benchmark before and after.
187
+ 6. **Proportionality.** Apply the pattern the component's real load
188
+ needs. A 20-user internal tool does not get a broker and sharding --
189
+ that is a defect too. Neither a bottleneck nor gold-plating. Size to
190
+ the number in the spec (see `concurrency-scale`).
191
+
192
+ ## When the numbers actually grow (the escalation ladder)
193
+
194
+ Cheapest-first; each step only when volume demands it (details +
195
+ sizing in `concurrency-scale`):
196
+
197
+ 1. Production WSGI server with a thread pool (removes the single-thread
198
+ web bottleneck -- highest return for lowest effort).
199
+ 2. Connection pool (stop opening/closing a connection per operation).
200
+ 3. **Queue-in-the-DB**: a "pending jobs" table on the DB you already run
201
+ -- gives enqueue, retry-with-wait, restart-survival, and models the
202
+ per-key lock as a ROW you lock, with zero new services (~80% of a
203
+ broker's benefit at ~20% of the operational cost).
204
+ 4. Split API vs Worker; move the in-process lock to a distributed lock
205
+ (DB `GET_LOCK()` / Redis) with a single active consumer per key.
206
+ 5. A real broker (RabbitMQ / Pub-Sub) with a dead-letter queue and
207
+ partitioning by the lock key; a circuit breaker so one failing
208
+ dependency does not take the rest down.
209
+
210
+ The expensive part of distributing is NOT the broker -- it is preserving
211
+ the per-key serialization/order invariant once the lock leaves the
212
+ process. Do not reach for a broker to solve a problem a per-run cap and a
213
+ queue-in-the-DB already solve.
@@ -28,7 +28,8 @@ export declare class RelayPublisher {
28
28
  constructor(opts: RelayPublisherOpts);
29
29
  /** One Coding-feed item (the echo of what the brain is doing). */
30
30
  activity(summary: string, detail?: unknown): void;
31
- /** Desktop status: working / round_done / idle. */
31
+ /** Desktop status: working / round_done / idle. Caps big string extras
32
+ * (the user text rides here) so the event never exceeds the 32KB cap. */
32
33
  status(state: string, extra?: Record<string, unknown>): void;
33
34
  /** A reply to a mobile command (may stream as partials then done). */
34
35
  chatReply(commandId: string, text: string, done: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"file":"relay_publisher.d.ts","sourceRoot":"","sources":["../../src/relay/relay_publisher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGhE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;6BACyB;IACzB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;CACzB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAE5B,IAAI,EAAE,kBAAkB;IAMpC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAGjD,mDAAmD;IACnD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAG5D,sEAAsE;IACtE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAG/D;wBACoB;IACpB,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAG9C;;+BAE2B;IAC3B,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAG3C;;kDAE8C;IAC9C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAGzD;;;kBAGc;IACd,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrD,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,QAAQ;IAMhB;qBACiB;IACX,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B5B,yCAAyC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
1
+ {"version":3,"file":"relay_publisher.d.ts","sourceRoot":"","sources":["../../src/relay/relay_publisher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAuChE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;6BACyB;IACzB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;CACzB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAE5B,IAAI,EAAE,kBAAkB;IAMpC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAIjD;8EAC0E;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAG5D,sEAAsE;IACtE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAG/D;wBACoB;IACpB,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAG9C;;+BAE2B;IAC3B,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAG3C;;kDAE8C;IAC9C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzD;;;kBAGc;IACd,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrD,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,QAAQ;IAMhB;qBACiB;IACX,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B5B,yCAAyC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
@@ -11,6 +11,42 @@
11
11
  */
12
12
  import { relayAppend } from './relay_client.js';
13
13
  import { RELAY_LIMITS } from './types.js';
14
+ /* The worker rejects any relay event whose payload exceeds 32KB. A long
15
+ * reply (or a big pasted request) used to blow past that, so the desktop
16
+ * DROPPED the event and the phone got NOTHING -- the turn "finished on the
17
+ * laptop but never synced" (Pablo, 2026-07-27). Fix: TRUNCATE the text
18
+ * fields to a byte budget so the phone gets the (marked) reply instead of a
19
+ * silent drop. Mirrors the board/graph budgets. ASCII-only marker. */
20
+ const TRUNC_MARK = ' [...] (respuesta recortada -- completa en el escritorio)';
21
+ /* Per-field budgets, chosen so the whole event stays well under 32KB even
22
+ * with two big fields (remote_turn = reply + user) plus the JSON envelope. */
23
+ const REPLY_BUDGET = 24 * 1024;
24
+ const USER_BUDGET = 4 * 1024;
25
+ const CHAT_TEXT_BUDGET = 28 * 1024;
26
+ const EXTRA_STR_BUDGET = 4 * 1024;
27
+ const DETAIL_BUDGET = 20 * 1024;
28
+ /** Cap a UTF-8 string to `maxBytes`, appending TRUNC_MARK when it had to
29
+ * cut. Never splits a multibyte char (decodes the safe prefix). */
30
+ function capUtf8(s, maxBytes) {
31
+ if (typeof s !== 'string')
32
+ s = String(s ?? '');
33
+ if (Buffer.byteLength(s, 'utf8') <= maxBytes)
34
+ return s;
35
+ const room = Math.max(0, maxBytes - Buffer.byteLength(TRUNC_MARK, 'utf8'));
36
+ let t = Buffer.from(s, 'utf8').subarray(0, room).toString('utf8');
37
+ if (t.charCodeAt(t.length - 1) === 0xFFFD)
38
+ t = t.slice(0, -1); // drop a half-cut partial
39
+ return t + TRUNC_MARK;
40
+ }
41
+ /** Cap every top-level STRING value of an extra bag (status carries the
42
+ * user text there, which can be big). */
43
+ function capExtra(extra) {
44
+ const out = {};
45
+ for (const [k, v] of Object.entries(extra)) {
46
+ out[k] = typeof v === 'string' ? capUtf8(v, EXTRA_STR_BUDGET) : v;
47
+ }
48
+ return out;
49
+ }
14
50
  export class RelayPublisher {
15
51
  queue = [];
16
52
  timer = null;
@@ -25,15 +61,17 @@ export class RelayPublisher {
25
61
  }
26
62
  /** One Coding-feed item (the echo of what the brain is doing). */
27
63
  activity(summary, detail) {
28
- this.enqueue({ kind: 'activity', payload: { summary: String(summary), ...(detail ? { detail } : {}) } });
64
+ const d = typeof detail === 'string' ? capUtf8(detail, DETAIL_BUDGET) : detail;
65
+ this.enqueue({ kind: 'activity', payload: { summary: capUtf8(String(summary), DETAIL_BUDGET), ...(d ? { detail: d } : {}) } });
29
66
  }
30
- /** Desktop status: working / round_done / idle. */
67
+ /** Desktop status: working / round_done / idle. Caps big string extras
68
+ * (the user text rides here) so the event never exceeds the 32KB cap. */
31
69
  status(state, extra) {
32
- this.enqueue({ kind: 'status', payload: { state, ...(extra ?? {}) } });
70
+ this.enqueue({ kind: 'status', payload: { state, ...(extra ? capExtra(extra) : {}) } });
33
71
  }
34
72
  /** A reply to a mobile command (may stream as partials then done). */
35
73
  chatReply(commandId, text, done) {
36
- this.enqueue({ kind: 'chat_reply', payload: { command_id: commandId, text, done } });
74
+ this.enqueue({ kind: 'chat_reply', payload: { command_id: commandId, text: capUtf8(text, CHAT_TEXT_BUDGET), done } });
37
75
  }
38
76
  /** A compact board snapshot (workflow + pendings) for the phone's
39
77
  * Pizarron tab. */
@@ -50,7 +88,9 @@ export class RelayPublisher {
50
88
  * unified 'notebook' thread, so the phone's chat reflects it too. The
51
89
  * id lets the phone apply each turn once. */
52
90
  remoteTurn(id, user, reply) {
53
- this.enqueue({ kind: 'remote_turn', payload: { id, user, reply } });
91
+ this.enqueue({ kind: 'remote_turn', payload: {
92
+ id, user: capUtf8(user, USER_BUDGET), reply: capUtf8(reply, REPLY_BUDGET),
93
+ } });
54
94
  }
55
95
  /** Per-session project (Pablo 2026-06-15) -- a "Sesion Propia" switched
56
96
  * its OWN project (via chat verb or chip); tell the phone so its
@@ -1 +1 @@
1
- {"version":3,"file":"relay_publisher.js","sourceRoot":"","sources":["../../src/relay/relay_publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay_publisher.js","sourceRoot":"","sources":["../../src/relay/relay_publisher.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,10 @@ export declare function readReports(): Promise<SupportReport[]>;
29
29
  * el log del telefono". Returns null without a stage. recordReport scrubs
30
30
  * PII afterwards. (Pablo 2026-06-23.) */
31
31
  export declare function buildVoiceDiagReport(payload: Record<string, unknown>): SupportReport | null;
32
+ /** Mobile relay/fetch diagnostic (Pablo 2026-07-27) -- the phone reports when a
33
+ * relay poll/append fails or a command's reply never arrives (previously those
34
+ * errors were swallowed best-effort, so the sync failures were invisible). */
35
+ export declare function buildRelayDiagReport(payload: Record<string, unknown>): SupportReport | null;
32
36
  /** Validate + normalize an inbound payload from the panel.
33
37
  * Returns null when the payload shape is unacceptable. */
34
38
  export declare function validateInbound(body: unknown, defaults?: {
@@ -1 +1 @@
1
- {"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/support/reports.ts"],"names":[],"mappings":"AA4BA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAU,MAAM,CAAC;IACnB,KAAK,EAAO,WAAW,CAAC;IACxB,MAAM,EAAM,MAAM,CAAC;IACnB,OAAO,EAAK,MAAM,CAAC;IACnB,KAAK,CAAC,EAAM,MAAM,CAAC;IACnB,GAAG,CAAC,EAAQ,MAAM,CAAC;IACnB,IAAI,CAAC,EAAO,MAAM,CAAC;IACnB,GAAG,CAAC,EAAQ,MAAM,CAAC;IACnB,UAAU,CAAC,EAAC,MAAM,CAAC;IACnB,IAAI,CAAC,EAAO,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,8DAA8D;AAC9D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAuB7D;AAuBD,4CAA4C;AAC5C,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CASvE;AAED,uEAAuE;AACvE,wBAAsB,WAAW,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAY5D;AAED;;;;0CAI0C;AAC1C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,GAAG,IAAI,CAiB3F;AAED;2DAC2D;AAC3D,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,aAAa,GAAG,IAAI,CAiC3G"}
1
+ {"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/support/reports.ts"],"names":[],"mappings":"AA4BA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAU,MAAM,CAAC;IACnB,KAAK,EAAO,WAAW,CAAC;IACxB,MAAM,EAAM,MAAM,CAAC;IACnB,OAAO,EAAK,MAAM,CAAC;IACnB,KAAK,CAAC,EAAM,MAAM,CAAC;IACnB,GAAG,CAAC,EAAQ,MAAM,CAAC;IACnB,IAAI,CAAC,EAAO,MAAM,CAAC;IACnB,GAAG,CAAC,EAAQ,MAAM,CAAC;IACnB,UAAU,CAAC,EAAC,MAAM,CAAC;IACnB,IAAI,CAAC,EAAO,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,8DAA8D;AAC9D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAuB7D;AAuBD,4CAA4C;AAC5C,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CASvE;AAED,uEAAuE;AACvE,wBAAsB,WAAW,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAY5D;AAED;;;;0CAI0C;AAC1C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,GAAG,IAAI,CAiB3F;AAED;;+EAE+E;AAC/E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,GAAG,IAAI,CAgB3F;AAED;2DAC2D;AAC3D,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,aAAa,GAAG,IAAI,CAiC3G"}
@@ -139,6 +139,29 @@ export function buildVoiceDiagReport(payload) {
139
139
  report.client_ts = payload.client_ts.slice(0, 64);
140
140
  return report;
141
141
  }
142
+ /** Mobile relay/fetch diagnostic (Pablo 2026-07-27) -- the phone reports when a
143
+ * relay poll/append fails or a command's reply never arrives (previously those
144
+ * errors were swallowed best-effort, so the sync failures were invisible). */
145
+ export function buildRelayDiagReport(payload) {
146
+ const stage = typeof payload.stage === 'string' ? payload.stage : '';
147
+ if (!stage)
148
+ return null;
149
+ const error = typeof payload.error === 'string' ? payload.error : '';
150
+ const detail = typeof payload.detail === 'string' ? payload.detail : '';
151
+ const platform = typeof payload.platform === 'string' ? payload.platform : 'mobile';
152
+ const report = {
153
+ ts: new Date().toISOString(),
154
+ level: 'warn',
155
+ source: 'mobile-relay',
156
+ message: ('[mobile-relay ' + stage + (error ? '/' + error : '') + '] ' + detail).slice(0, 2000),
157
+ view: ('mobile:' + platform).slice(0, 100),
158
+ };
159
+ if (typeof payload.ua === 'string')
160
+ report.user_agent = payload.ua.slice(0, 200);
161
+ if (typeof payload.client_ts === 'string')
162
+ report.client_ts = payload.client_ts.slice(0, 64);
163
+ return report;
164
+ }
142
165
  /** Validate + normalize an inbound payload from the panel.
143
166
  * Returns null when the payload shape is unacceptable. */
144
167
  export function validateInbound(body, defaults = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/support/reports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/support/reports.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -2,5 +2,5 @@
2
2
  * Yujin Forge CLI version. Kept in sync with package.json by the npm
3
3
  * "version" lifecycle (scripts/sync_version.mjs) so the two never drift.
4
4
  */
5
- export declare const VERSION = "1.0.89";
5
+ export declare const VERSION = "1.0.91";
6
6
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  * Yujin Forge CLI version. Kept in sync with package.json by the npm
3
3
  * "version" lifecycle (scripts/sync_version.mjs) so the two never drift.
4
4
  */
5
- export const VERSION = '1.0.89';
5
+ export const VERSION = '1.0.91';
6
6
  //# sourceMappingURL=version.js.map
@@ -52,3 +52,14 @@ the stated concurrency.
52
52
 
53
53
  Record the target concurrency and the tier decisions in the spec so
54
54
  they are traceable and can be revisited when the number changes.
55
+
56
+ ## 4. Then harden each component (see `performance-hardening`)
57
+
58
+ This doctrine sizes the ARCHITECTURE. Sizing the tiers right does not
59
+ save a component that holds a transaction open across a network call,
60
+ runs a batch in one monolithic commit, hammers a non-idempotent third
61
+ party, or grids a table with `LIKE '%q%'`. The construction-time
62
+ pattern library -- commit-per-chunk, send-outside-transaction, deadlock
63
+ retry, backpressure caps, server-side pagination, idempotency at the
64
+ boundary, TTL cleanup, heartbeat/watchdog -- lives in
65
+ `performance-hardening`. Size here; harden there.