synthesisui 0.16.370 → 0.16.372
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/commands/add.js +19 -1
- package/dist/commands/align.js +21 -3
- package/dist/commands/upgrade.js +29 -4
- package/package.json +1 -1
package/dist/commands/add.js
CHANGED
|
@@ -552,7 +552,25 @@ export async function add(slug, opts) {
|
|
|
552
552
|
* saíram por serem nossos, com os primeiros nomes. Quem lê pode discordar de qualquer um.
|
|
553
553
|
*/
|
|
554
554
|
if (aligned.dropped.length > 0) {
|
|
555
|
-
console.log(line(
|
|
555
|
+
console.log(line(
|
|
556
|
+
/**
|
|
557
|
+
* A LINHA DIZ QUE FICARAM DE FORA - e nao AFIRMA por que, porque ela nao sabe.
|
|
558
|
+
*
|
|
559
|
+
* O DEFEITO, lido pelo dono na propria tela em 04/09: ela dizia *"left alone because THE
|
|
560
|
+
* VALUE WOULD BE OURS"* e listava `--background-image-gradient-grad-aurora`,
|
|
561
|
+
* `grad-cool`, `grad-fire` - os cinco gradientes DELE, que estao em `ownedNames.gradients`.
|
|
562
|
+
* A frase afirmava a origem do valor e errava.
|
|
563
|
+
*
|
|
564
|
+
* Sao TRES razoes diferentes e `onlyWhatMatched` so' distingue uma: o valor e' nosso · a
|
|
565
|
+
* familia nao tem como casar (gradiente nao esta' em `FAMILY_KIND`) · apontar criaria ciclo
|
|
566
|
+
* (a linha propria abaixo). Afirmar a primeira para as tres e' a mesma classe do aviso de
|
|
567
|
+
* aprovacao do MCP, que dizia "pendente" lendo duas listas vazias: uma frase que declara um
|
|
568
|
+
* estado que o codigo nao observou.
|
|
569
|
+
*
|
|
570
|
+
* Entao a linha diz o FATO que ela tem - a classe dele continua significando o que
|
|
571
|
+
* significa - e nomeia os primeiros, para quem quiser discordar de qualquer um.
|
|
572
|
+
*/
|
|
573
|
+
` ${aligned.kept} Tailwind utilit${aligned.kept === 1 ? "y" : "ies"} now point at your own decisions; ${aligned.dropped.length} were left as ${aligned.dropped.length === 1 ? "it is" : "they are"} (${aligned.dropped.slice(0, 3).join(", ")}${aligned.dropped.length > 3 ? ", …" : ""}) - your classes keep meaning what they mean today.`));
|
|
556
574
|
}
|
|
557
575
|
/**
|
|
558
576
|
* O CICLO RECUSADO É DITO, e não engolido - senão o cliente lê um número menor sem saber por quê.
|
package/dist/commands/align.js
CHANGED
|
@@ -94,7 +94,7 @@ export async function localMisalignments(root,
|
|
|
94
94
|
* máquina que roda o teste não é verificável: ela passa ou falha conforme quem está logado ali.
|
|
95
95
|
*/
|
|
96
96
|
opts = {}) {
|
|
97
|
-
const { cli, home = homedir() } = opts;
|
|
97
|
+
const { cli, home = homedir(), justMeasured = 0 } = opts;
|
|
98
98
|
const out = [];
|
|
99
99
|
const locks = (await locksIn(root)).filter((l) => l.slug && !l.adopted);
|
|
100
100
|
/** Sem sistema instalado não há alinho a cobrar - não é desalinho, é um repo sem DS. */
|
|
@@ -214,11 +214,27 @@ opts = {}) {
|
|
|
214
214
|
* número só crescia.
|
|
215
215
|
*/
|
|
216
216
|
const events = await unsentEvents(root).catch(() => []);
|
|
217
|
-
if (events.length > 0)
|
|
217
|
+
if (events.length > 0) {
|
|
218
|
+
/**
|
|
219
|
+
* O QUE ESTA RODADA MEDIU NÃO É EVIDÊNCIA VELHA - ver `justMeasured`.
|
|
220
|
+
*
|
|
221
|
+
* "the platform is scoring this repo on older evidence" é verdade quando o registro esperava
|
|
222
|
+
* desde ontem, e é enganoso quando a leitura tem três segundos e foi este comando que a fez. As
|
|
223
|
+
* duas frases pedem o MESMO `sync`, de propósito: o registro só sai da máquina quando a pessoa
|
|
224
|
+
* manda, e nada aqui desconta um evento que realmente não subiu. O que muda é o que a linha
|
|
225
|
+
* ensina - consequência do que ela acabou de fazer, em vez de dívida que ela deixou acumular.
|
|
226
|
+
*
|
|
227
|
+
* SÓ QUANDO TODOS OS PENDENTES VIERAM DAQUI. Com cinco esperando de antes e um novo, há
|
|
228
|
+
* evidência velha de verdade, e a frase de sempre é a honesta.
|
|
229
|
+
*/
|
|
230
|
+
const allFromThisRun = justMeasured > 0 && justMeasured >= events.length;
|
|
218
231
|
out.push({
|
|
219
|
-
says:
|
|
232
|
+
says: allFromThisRun
|
|
233
|
+
? "This run measured the app, and that reading is still on this machine - the platform keeps scoring the previous one until you send it."
|
|
234
|
+
: `${events.length} checked write${events.length === 1 ? "" : "s"} recorded here and not sent - the platform is scoring this repo on older evidence.`,
|
|
220
235
|
run: "npx synthesisui sync",
|
|
221
236
|
});
|
|
237
|
+
}
|
|
222
238
|
/**
|
|
223
239
|
* O DÉCIMO ESTADO: os ARQUIVOS deste install foram escritos por um CLI anterior.
|
|
224
240
|
*
|
|
@@ -597,6 +613,8 @@ opts = {}) {
|
|
|
597
613
|
const items = await localMisalignments(root, {
|
|
598
614
|
...(opts.cli ? { cli: opts.cli } : {}),
|
|
599
615
|
...(opts.home ? { home: opts.home } : {}),
|
|
616
|
+
/** ATRAVESSA - ver `home` acima: uma porta que não repassa é a regressão da 0.16.365 de novo. */
|
|
617
|
+
...(opts.justMeasured ? { justMeasured: opts.justMeasured } : {}),
|
|
600
618
|
}).catch(() => []);
|
|
601
619
|
/** A única linha que custa rede, e ela some inteira quando não há rede. */
|
|
602
620
|
const remote = await versionBehind(root, {
|
package/dist/commands/upgrade.js
CHANGED
|
@@ -4,6 +4,7 @@ import { pinnedHookVersion, wireAgent } from "../agent-wiring.js";
|
|
|
4
4
|
import { isOlderCli } from "../cli-version.js";
|
|
5
5
|
import { generateComponentFiles } from "../component-codegen.js";
|
|
6
6
|
import { readProjectConfig, readToken, resolveRegistry } from "../config.js";
|
|
7
|
+
import { unsentEvents } from "../doctor/ledger.js";
|
|
7
8
|
import { diffLocalDocuments, localChangelogMarkdown, } from "../document-diff.js";
|
|
8
9
|
import { installedBehind, MATERIALISER_SINCE } from "../install-marks.js";
|
|
9
10
|
import { body, section, snippet } from "../output.js";
|
|
@@ -174,12 +175,30 @@ async function rewireIfBehind(root, cli) {
|
|
|
174
175
|
* NUNCA `strict`. Um achado é informação, não falha do upgrade, e sair com erro por causa do drift da
|
|
175
176
|
* própria pessoa transformaria uma instalação bem-sucedida num terminal vermelho.
|
|
176
177
|
*/
|
|
178
|
+
/**
|
|
179
|
+
* DEVOLVE QUANTAS MEDIÇÕES ESTA CHAMADA DEIXOU PARA TRÁS, e é isso que impede o comando de cobrar
|
|
180
|
+
* de si mesmo.
|
|
181
|
+
*
|
|
182
|
+
* O `upgrade` termina imprimindo o que ainda falta, e o que faltava incluía o registro que ELE
|
|
183
|
+
* acabou de gravar aqui: quem rodava `sync` e em seguida `upgrade` via a tela pedir `sync` de novo e
|
|
184
|
+
* concluía que o primeiro não tinha adiantado. A lista continua pedindo o envio - o registro só sai
|
|
185
|
+
* da máquina quando a pessoa manda, e isso não se contorna -, mas passa a dizer que a leitura é
|
|
186
|
+
* desta rodada em vez de chamá-la de evidência velha. Ver `justMeasured` em `align.ts`.
|
|
187
|
+
*
|
|
188
|
+
* LIDO DO DISCO, antes e depois. O doctor grava em três pontos diferentes e nenhum deles reporta
|
|
189
|
+
* quantos; contar os não enviados nos dois instantes responde a pergunta sem que nenhuma das três
|
|
190
|
+
* chamadas precise concordar com esta. É o mesmo instrumento que o spec da re-materialização usa,
|
|
191
|
+
* e pela mesma razão: o ledger não tem como concordar por engano.
|
|
192
|
+
*/
|
|
177
193
|
async function checkAfterWriting(root, version) {
|
|
194
|
+
const before = await unsentEvents(root).catch(() => []);
|
|
178
195
|
console.log(section(`Checking the app against ${version}`));
|
|
179
196
|
await doctor({ dir: root }).catch((err) => {
|
|
180
197
|
/** Um doctor que não roda não é um upgrade que falhou: os artefatos já estão em disco e certos. */
|
|
181
198
|
console.log(body(`The check could not run (${err instanceof Error ? err.message : "unknown"}). Run \`npx synthesisui doctor\` when you can.`));
|
|
182
199
|
});
|
|
200
|
+
const after = await unsentEvents(root).catch(() => []);
|
|
201
|
+
return Math.max(0, after.length - before.length);
|
|
183
202
|
}
|
|
184
203
|
async function theOnlyInstalled(root) {
|
|
185
204
|
const dsDir = join(root, "_synthesisui", "ds");
|
|
@@ -242,8 +261,11 @@ export async function upgrade(asked, opts) {
|
|
|
242
261
|
* `sync` seguinte respondeu `6 checks sent, 0 new` - o comando disse que atualizou e nada foi
|
|
243
262
|
* medido.
|
|
244
263
|
*/
|
|
245
|
-
await checkAfterWriting(root, `v${installed}`);
|
|
246
|
-
await reportWhatIsLeft(root,
|
|
264
|
+
const measured = await checkAfterWriting(root, `v${installed}`);
|
|
265
|
+
await reportWhatIsLeft(root, {
|
|
266
|
+
...(opts.cli ? { cli: opts.cli } : {}),
|
|
267
|
+
...(measured > 0 ? { justMeasured: measured } : {}),
|
|
268
|
+
});
|
|
247
269
|
return;
|
|
248
270
|
}
|
|
249
271
|
if (!opts.force) {
|
|
@@ -430,7 +452,7 @@ export async function upgrade(asked, opts) {
|
|
|
430
452
|
for (const k of kept)
|
|
431
453
|
console.log(body(keptLine(slug, k.entry, k.edited)));
|
|
432
454
|
}
|
|
433
|
-
await checkAfterWriting(root, `v${latest.version}`);
|
|
455
|
+
const measured = await checkAfterWriting(root, `v${latest.version}`);
|
|
434
456
|
console.log(section("Migrate the app"));
|
|
435
457
|
console.log(body(`The migration brief is at _synthesisui/ds/${slug}/UPGRADE.md`));
|
|
436
458
|
console.log("");
|
|
@@ -441,6 +463,9 @@ export async function upgrade(asked, opts) {
|
|
|
441
463
|
]));
|
|
442
464
|
console.log("");
|
|
443
465
|
console.log(body(`(rollback: synthesisui add ${slug} --version ${installed})`));
|
|
444
|
-
await reportWhatIsLeft(root,
|
|
466
|
+
await reportWhatIsLeft(root, {
|
|
467
|
+
...(opts.cli ? { cli: opts.cli } : {}),
|
|
468
|
+
...(measured > 0 ? { justMeasured: measured } : {}),
|
|
469
|
+
});
|
|
445
470
|
console.log("");
|
|
446
471
|
}
|
package/package.json
CHANGED