@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.
- package/dist/chat/doctrine_digest.d.ts.map +1 -1
- package/dist/chat/doctrine_digest.js +17 -0
- package/dist/chat/doctrine_digest.js.map +1 -1
- package/dist/chat/panel.d.ts.map +1 -1
- package/dist/chat/panel.js +31 -1
- package/dist/chat/panel.js.map +1 -1
- package/dist/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +51 -0
- package/dist/chat/server.js.map +1 -1
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +16 -1
- package/dist/commands/chat.js.map +1 -1
- package/dist/docs/doctrine/concurrency-scale.md +11 -0
- package/dist/docs/doctrine/performance-hardening.md +213 -0
- package/dist/relay/relay_publisher.d.ts +2 -1
- package/dist/relay/relay_publisher.d.ts.map +1 -1
- package/dist/relay/relay_publisher.js +45 -5
- package/dist/relay/relay_publisher.js.map +1 -1
- package/dist/support/reports.d.ts +4 -0
- package/dist/support/reports.d.ts.map +1 -1
- package/dist/support/reports.js +23 -0
- package/dist/support/reports.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/doctrine/concurrency-scale.md +11 -0
- package/docs/doctrine/performance-hardening.md +213 -0
- package/package.json +1 -1
|
@@ -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,
|
|
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"}
|
package/dist/commands/chat.js
CHANGED
|
@@ -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 >
|
|
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;
|
|
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
|
-
|
|
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: {
|
|
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":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAyB,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
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"}
|
package/dist/support/reports.js
CHANGED
|
@@ -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.
|
|
5
|
+
export declare const VERSION = "1.0.91";
|
|
6
6
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -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.
|