@vibecompass/vibecompass 0.17.2 → 0.17.3
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/CHANGELOG.md +13 -0
- package/README.md +5 -0
- package/package.json +1 -1
- package/src/cli.js +4 -0
- package/src/sync.js +22 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.17.3 - 2026-10-12
|
|
4
|
+
|
|
5
|
+
A small sync release: `push` tells you what the hosted dashboard could not
|
|
6
|
+
show. The lane brief stays opt-in (D-368).
|
|
7
|
+
|
|
8
|
+
- `push` prints the server's projection warnings. The server builds the
|
|
9
|
+
dashboard in the same step as the push and reports anything it could not
|
|
10
|
+
build, such as a file whose decision links could not be read
|
|
11
|
+
(`lineage_extraction_failed`, D-371). `push` now prints each one as a
|
|
12
|
+
`Note: <code> (<path>): <message>` line after the run, so you learn about it
|
|
13
|
+
in the terminal instead of only from a dashboard notice. The push itself
|
|
14
|
+
still succeeded. A push with nothing to report prints no extra lines.
|
|
15
|
+
|
|
3
16
|
## 0.17.2 - 2026-10-12
|
|
4
17
|
|
|
5
18
|
Lockstep release with the app's lineage port: section headings open a fence
|
package/README.md
CHANGED
|
@@ -339,6 +339,11 @@ changed canonical project-memory files and the hosted dashboard should catch
|
|
|
339
339
|
up. Hosted-only projects do not use a local authoritative push; update or
|
|
340
340
|
refresh them through the hosted dashboard/proposal flow.
|
|
341
341
|
|
|
342
|
+
`push` prints a `Note: <code> (<path>): <message>` line for anything the
|
|
343
|
+
hosted dashboard could not build from your files, such as a file whose decision
|
|
344
|
+
links could not be read. The push itself succeeded; the note names the file so
|
|
345
|
+
you can check it.
|
|
346
|
+
|
|
342
347
|
### Where the token lives (D-355)
|
|
343
348
|
|
|
344
349
|
Hosted commands look for the token in this order:
|
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -619,6 +619,10 @@ export async function runCli(argv, io = createDefaultIo(), runtime = {}) {
|
|
|
619
619
|
if (result.staleProposalIds.length > 0) {
|
|
620
620
|
io.stdout.write(`Stale proposals: ${result.staleProposalIds.join(', ')}\n`);
|
|
621
621
|
}
|
|
622
|
+
for (const warning of result.warnings) {
|
|
623
|
+
const where = warning.path ? ` (${warning.path})` : '';
|
|
624
|
+
io.stdout.write(`Note: ${warning.code}${where}: ${warning.message}\n`);
|
|
625
|
+
}
|
|
622
626
|
io.stdout.write(`Recorded ${result.manifestPath}\n`);
|
|
623
627
|
io.stdout.write(`${result.message}\n`);
|
|
624
628
|
return 0;
|
package/src/sync.js
CHANGED
|
@@ -56,10 +56,32 @@ export async function pushProjectMemory(options = {}, environment = {}) {
|
|
|
56
56
|
remoteRevisionId: response.remote_revision_id,
|
|
57
57
|
appliedProposalIds: response.applied_proposal_ids ?? [],
|
|
58
58
|
staleProposalIds: response.stale_proposal_ids ?? [],
|
|
59
|
+
warnings: readProjectionWarnings(response),
|
|
59
60
|
message: `Pushed ${documents.length} canonical document${documents.length === 1 ? '' : 's'} to hosted project memory.`,
|
|
60
61
|
};
|
|
61
62
|
}
|
|
62
63
|
|
|
64
|
+
/**
|
|
65
|
+
* The hosted push projects the dashboard read model in the same transaction
|
|
66
|
+
* (D-239) and reports what it could not project as `projection.warnings`
|
|
67
|
+
* (`{ code, message, path? }`), such as `lineage_extraction_failed` (D-371).
|
|
68
|
+
* The push itself succeeded, so these are notes, not errors. A server that
|
|
69
|
+
* sends no projection block, or an entry without a message, yields nothing.
|
|
70
|
+
*/
|
|
71
|
+
function readProjectionWarnings(response) {
|
|
72
|
+
const warnings = response?.projection?.warnings;
|
|
73
|
+
if (!Array.isArray(warnings)) {
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
return warnings
|
|
77
|
+
.filter((warning) => warning && typeof warning === 'object' && typeof warning.message === 'string')
|
|
78
|
+
.map((warning) => ({
|
|
79
|
+
code: typeof warning.code === 'string' && warning.code ? warning.code : 'projection_warning',
|
|
80
|
+
message: warning.message,
|
|
81
|
+
...(typeof warning.path === 'string' && warning.path ? { path: warning.path } : {}),
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
|
|
63
85
|
export async function pullPreviewProjectMemory(options = {}, environment = {}) {
|
|
64
86
|
const context = await loadSyncContext(options, environment);
|
|
65
87
|
const existingManifest = await readJsonIfPresent(context.manifestPath);
|