total-recall-brain 3.46.1 → 3.46.2
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": "total-recall-brain",
|
|
3
|
-
"version": "3.46.
|
|
3
|
+
"version": "3.46.2",
|
|
4
4
|
"description": "The Vibe Coding Brain & Autonomous Software Factory: memory, rules, secrets, and 33 visual plugins automatically managed across all your devices.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -14,8 +14,10 @@
|
|
|
14
14
|
* background with the frontend's own build script, and keeps serving the
|
|
15
15
|
* current bundle until the new one is complete. It never installs
|
|
16
16
|
* dependencies: missing build tools are reported, not repaired behind the
|
|
17
|
-
* operator's back. An
|
|
18
|
-
*
|
|
17
|
+
* operator's back. An installed package (a root inside node_modules) serves
|
|
18
|
+
* the bundle its release built, which the publish gate checked, and is never
|
|
19
|
+
* stale and never builds: npm does not keep the tarball's file times on every
|
|
20
|
+
* install, so comparing times there reports a stale bundle that is not.
|
|
19
21
|
*/
|
|
20
22
|
import { spawn } from 'node:child_process';
|
|
21
23
|
import fs from 'node:fs';
|
|
@@ -60,9 +62,10 @@ export async function newestUnder(target) {
|
|
|
60
62
|
* Returns { ok, reason, bundle, source }; never throws, never prints, so the
|
|
61
63
|
* decision can be tested apart from how it is reported.
|
|
62
64
|
*/
|
|
63
|
-
export async function checkDistFreshness({ distDir, sourcePaths }) {
|
|
65
|
+
export async function checkDistFreshness({ distDir, sourcePaths, packaged = false }) {
|
|
64
66
|
const bundle = await newestUnder(distDir);
|
|
65
67
|
if (!bundle) return { ok: false, reason: 'missing-bundle', bundle: null, source: null };
|
|
68
|
+
if (packaged) return { ok: true, reason: 'packaged', bundle, source: null };
|
|
66
69
|
|
|
67
70
|
let source = null;
|
|
68
71
|
for (const candidate of sourcePaths) {
|
|
@@ -76,6 +79,11 @@ export async function checkDistFreshness({ distDir, sourcePaths }) {
|
|
|
76
79
|
return { ok: true, reason: 'current', bundle, source };
|
|
77
80
|
}
|
|
78
81
|
|
|
82
|
+
/** An npm-installed package: its root sits inside a node_modules directory. */
|
|
83
|
+
export function isInstalledPackage(root) {
|
|
84
|
+
return path.resolve(root).split(path.sep).includes('node_modules');
|
|
85
|
+
}
|
|
86
|
+
|
|
79
87
|
/** Every input whose change changes the built dashboard. */
|
|
80
88
|
export function dashboardTargets(root) {
|
|
81
89
|
const frontend = path.join(root, 'frontend');
|
|
@@ -85,6 +93,7 @@ export function dashboardTargets(root) {
|
|
|
85
93
|
} catch { /* no frontend directory: nothing to compare */ }
|
|
86
94
|
return {
|
|
87
95
|
distDir: path.join(frontend, 'dist'),
|
|
96
|
+
packaged: isInstalledPackage(root),
|
|
88
97
|
sourcePaths: [
|
|
89
98
|
path.join(frontend, 'src'),
|
|
90
99
|
path.join(frontend, 'public'),
|