@jhizzard/termdeck 0.3.6 → 0.3.7
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/README.md +1 -1
- package/package.json +1 -1
- package/packages/cli/src/index.js +13 -1
- package/packages/client/public/app.js +7 -3
package/README.md
CHANGED
|
@@ -161,7 +161,7 @@ Honest limits, stated upfront so the skeptic has nothing to chase:
|
|
|
161
161
|
- **Not a replacement for reading docs.** It's the shortest path to a memory you already wrote. If the memory isn't there, the feature does nothing.
|
|
162
162
|
- **Not fully local by default.** Tier 2+ reaches out to Supabase for storage and OpenAI for embeddings. Tier 1 is fully local. A fully-local Tier 2 (local Postgres + local embeddings) is on the roadmap.
|
|
163
163
|
- **Not free forever.** Tier 2+ pays OpenAI fractions of a cent per memory for embeddings. Self-hosted embeddings via Ollama are on the roadmap.
|
|
164
|
-
- **Not proven at scale.** v0.3.
|
|
164
|
+
- **Not proven at scale.** v0.3.7, validated against 3,527 memories in one developer's production store. First full Rumen kickstart on 2026-04-15 processed 111 sessions into 111 insights in one pass. No multi-user data yet. Bug reports and issues welcome.
|
|
165
165
|
|
|
166
166
|
---
|
|
167
167
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jhizzard/termdeck",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7",
|
|
4
4
|
"description": "Browser-based terminal multiplexer with metadata overlays, panel flashback memory recall, and AI-aware session management",
|
|
5
5
|
"bin": {
|
|
6
6
|
"termdeck": "./packages/cli/src/index.js"
|
|
@@ -106,10 +106,22 @@ const port = config.port || 3000;
|
|
|
106
106
|
const host = config.host || '127.0.0.1';
|
|
107
107
|
const url = `http://${host}:${port}`;
|
|
108
108
|
|
|
109
|
+
// Bind guardrail: refuse non-loopback without auth token
|
|
110
|
+
const LOOPBACK = new Set(['127.0.0.1', 'localhost', '::1']);
|
|
111
|
+
if (!LOOPBACK.has(host)) {
|
|
112
|
+
const authToken = config.auth?.token || process.env.TERMDECK_AUTH_TOKEN;
|
|
113
|
+
if (!authToken) {
|
|
114
|
+
console.error('[security] Refusing to bind to ' + host + ' without auth.token set.');
|
|
115
|
+
console.error('[security] Set auth.token in ~/.termdeck/config.yaml or TERMDECK_AUTH_TOKEN env var.');
|
|
116
|
+
console.error('[security] To bind locally only, set host: 127.0.0.1 in config.yaml');
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
109
121
|
server.listen(port, host, async () => {
|
|
110
122
|
console.log(`
|
|
111
123
|
╔══════════════════════════════════════╗
|
|
112
|
-
║ TermDeck
|
|
124
|
+
║ TermDeck v${require(path.join(__dirname, '..', '..', '..', 'package.json')).version.padEnd(14)}║
|
|
113
125
|
╠══════════════════════════════════════╣
|
|
114
126
|
║ ${url.padEnd(34)} ║
|
|
115
127
|
║ ║
|
|
@@ -2565,9 +2565,13 @@
|
|
|
2565
2565
|
const TIER23_CHECKS = new Set(['mnestra_reachable', 'mnestra_has_memories', 'rumen_recent', 'database_url']);
|
|
2566
2566
|
|
|
2567
2567
|
function filterChecksByTier(checks) {
|
|
2568
|
-
|
|
2569
|
-
|
|
2570
|
-
//
|
|
2568
|
+
// Show Tier 2/3 checks if DATABASE_URL was ATTEMPTED (exists in results),
|
|
2569
|
+
// regardless of pass/fail. Only hide higher-tier checks when the user
|
|
2570
|
+
// has no DATABASE_URL at all (detail says "not set").
|
|
2571
|
+
const dbCheck = checks.find(c => c.name === 'database_url');
|
|
2572
|
+
const dbConfigured = dbCheck && !/not set/i.test(dbCheck.detail || '');
|
|
2573
|
+
if (dbConfigured) return checks; // full stack configured — show everything
|
|
2574
|
+
// No DATABASE_URL configured: only show Tier 1 checks
|
|
2571
2575
|
return checks.filter(c => TIER1_CHECKS.has(c.name));
|
|
2572
2576
|
}
|
|
2573
2577
|
|