specmem-hardwicksoftware 3.7.31 → 3.7.32

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.
@@ -1,122 +1,128 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 480" width="800" height="480">
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500" width="800" height="500">
2
2
  <defs>
3
3
  <linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
4
- <stop offset="0%" style="stop-color:#0d1117"/>
5
- <stop offset="100%" style="stop-color:#161b22"/>
4
+ <stop offset="0%" style="stop-color:#0d1117;stop-opacity:1"/>
5
+ <stop offset="100%" style="stop-color:#161b22;stop-opacity:1"/>
6
6
  </linearGradient>
7
- <linearGradient id="cardGrad" x1="0%" y1="0%" x2="100%" y2="100%">
8
- <stop offset="0%" style="stop-color:#1c2128;stop-opacity:0.9"/>
9
- <stop offset="100%" style="stop-color:#21262d;stop-opacity:0.85"/>
7
+ <linearGradient id="headerGrad" x1="0%" y1="0%" x2="100%" y2="0%">
8
+ <stop offset="0%" style="stop-color:#238636;stop-opacity:1"/>
9
+ <stop offset="50%" style="stop-color:#2ea043;stop-opacity:1"/>
10
+ <stop offset="100%" style="stop-color:#238636;stop-opacity:1"/>
10
11
  </linearGradient>
11
- <linearGradient id="titleGrad" x1="0%" y1="0%" x2="100%" y2="0%">
12
- <stop offset="0%" style="stop-color:#22c55e"/>
13
- <stop offset="100%" style="stop-color:#00bfff"/>
12
+ <linearGradient id="card1" x1="0%" y1="0%" x2="100%" y2="100%">
13
+ <stop offset="0%" style="stop-color:#1c2a1c;stop-opacity:1"/>
14
+ <stop offset="100%" style="stop-color:#162216;stop-opacity:1"/>
14
15
  </linearGradient>
15
- <linearGradient id="cyanPurple" x1="0%" y1="0%" x2="100%" y2="0%">
16
- <stop offset="0%" style="stop-color:#00bfff"/>
17
- <stop offset="100%" style="stop-color:#a855f7"/>
16
+ <linearGradient id="card2" x1="0%" y1="0%" x2="100%" y2="100%">
17
+ <stop offset="0%" style="stop-color:#1a1f2e;stop-opacity:1"/>
18
+ <stop offset="100%" style="stop-color:#131827;stop-opacity:1"/>
18
19
  </linearGradient>
20
+ <linearGradient id="card3" x1="0%" y1="0%" x2="100%" y2="100%">
21
+ <stop offset="0%" style="stop-color:#2a1c1a;stop-opacity:1"/>
22
+ <stop offset="100%" style="stop-color:#221410;stop-opacity:1"/>
23
+ </linearGradient>
24
+ <filter id="glow">
25
+ <feGaussianBlur stdDeviation="2" result="coloredBlur"/>
26
+ <feMerge><feMergeNode in="coloredBlur"/><feMergeNode in="SourceGraphic"/></feMerge>
27
+ </filter>
19
28
  </defs>
20
29
 
21
- <rect width="800" height="480" rx="16" ry="16" fill="url(#bgGrad)"/>
22
- <rect width="800" height="480" rx="16" ry="16" fill="none" stroke="url(#cyanPurple)" stroke-width="1" stroke-opacity="0.2"/>
23
-
24
- <text x="400" y="36" text-anchor="middle" font-family="system-ui, sans-serif" font-size="20" font-weight="700" fill="url(#titleGrad)">What's New in v3.7.25</text>
25
-
26
- <!-- Card 1: New Languages -->
27
- <g transform="translate(17, 55)">
28
- <rect width="375" height="120" rx="10" fill="url(#cardGrad)" stroke="#22c55e" stroke-width="1"/>
29
- <rect width="375" height="3" rx="1.5" fill="#22c55e"/>
30
- <text x="16" y="30" font-family="system-ui, sans-serif" font-size="14" font-weight="600" fill="#4ade80">New Language Extractors</text>
31
-
32
- <!-- Language pills -->
33
- <rect x="16" y="42" width="45" height="18" rx="4" fill="#3776AB" fill-opacity="0.2" stroke="#3776AB" stroke-width="0.5"/>
34
- <text x="38" y="55" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" font-weight="600" fill="#3776AB">Java</text>
35
-
36
- <rect x="68" y="42" width="50" height="18" rx="4" fill="#B07219" fill-opacity="0.2" stroke="#B07219" stroke-width="0.5"/>
37
- <text x="93" y="55" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" font-weight="600" fill="#B07219">Kotlin</text>
38
-
39
- <rect x="125" y="42" width="30" height="18" rx="4" fill="#00599C" fill-opacity="0.2" stroke="#00599C" stroke-width="0.5"/>
40
- <text x="140" y="55" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" font-weight="600" fill="#00599C">C</text>
41
-
42
- <rect x="162" y="42" width="38" height="18" rx="4" fill="#00599C" fill-opacity="0.2" stroke="#f34b7d" stroke-width="0.5"/>
43
- <text x="181" y="55" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" font-weight="600" fill="#f34b7d">C++</text>
44
-
45
- <rect x="207" y="42" width="45" height="18" rx="4" fill="#E34C26" fill-opacity="0.2" stroke="#E34C26" stroke-width="0.5"/>
46
- <text x="229" y="55" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" font-weight="600" fill="#E34C26">HTML</text>
47
-
48
- <text font-family="system-ui, sans-serif" font-size="10.5" fill="#8b949e">
49
- <tspan x="16" y="80">Full extractors, not generic matchers. Constructors,</tspan>
50
- <tspan x="16" dy="14">destructors, operator overloads, macros, annotations,</tspan>
51
- <tspan x="16" dy="14">records, data classes, web components. The works.</tspan>
52
- </text>
53
- </g>
54
-
55
- <!-- Card 2: Dual Scoring + Token Compression -->
56
- <g transform="translate(408, 55)">
57
- <rect width="375" height="120" rx="10" fill="url(#cardGrad)" stroke="#00bfff" stroke-width="1"/>
58
- <rect width="375" height="3" rx="1.5" fill="#00bfff"/>
59
- <text x="16" y="30" font-family="system-ui, sans-serif" font-size="14" font-weight="600" fill="#00bfff">Dual Scoring + Self-Healing Compression</text>
60
-
61
- <rect x="16" y="42" width="80" height="18" rx="4" fill="#00bfff" fill-opacity="0.15"/>
62
- <text x="56" y="55" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" font-weight="600" fill="#00bfff">ALGO+COT</text>
63
-
64
- <rect x="104" y="42" width="80" height="18" rx="4" fill="#22c55e" fill-opacity="0.15"/>
65
- <text x="144" y="55" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" font-weight="600" fill="#22c55e">CODEBOOK</text>
66
-
67
- <text font-family="system-ui, sans-serif" font-size="10.5" fill="#8b949e">
68
- <tspan x="16" y="80">Dual ALGO+COT relevance scoring shows both scores.</tspan>
69
- <tspan x="16" dy="14">Token compression with self-healing codebook learning</tspan>
70
- <tspan x="16" dy="14">and neural translation via Argos Translate.</tspan>
71
- </text>
72
- </g>
73
-
74
- <!-- Card 3: Native Swarm Support -->
75
- <g transform="translate(17, 190)">
76
- <rect width="766" height="120" rx="10" fill="url(#cardGrad)" stroke="#a855f7" stroke-width="1"/>
77
- <rect width="766" height="3" rx="1.5" fill="#a855f7"/>
78
- <text x="16" y="30" font-family="system-ui, sans-serif" font-size="14" font-weight="600" fill="#c084fc">Native Swarm Support</text>
79
-
80
- <rect x="16" y="42" width="90" height="18" rx="4" fill="#a855f7" fill-opacity="0.15"/>
81
- <text x="61" y="55" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" font-weight="600" fill="#c084fc">AGENT TEAMS</text>
82
-
83
- <rect x="114" y="42" width="110" height="18" rx="4" fill="#22c55e" fill-opacity="0.15"/>
84
- <text x="169" y="55" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" font-weight="600" fill="#22c55e">UNLIMITED SWARMS</text>
85
-
86
- <rect x="232" y="42" width="100" height="18" rx="4" fill="#00bfff" fill-opacity="0.15"/>
87
- <text x="282" y="55" text-anchor="middle" font-family="system-ui, sans-serif" font-size="9" font-weight="600" fill="#00bfff">AUTO-DEPLOY</text>
88
-
89
- <text font-family="system-ui, sans-serif" font-size="10.5" fill="#8b949e">
90
- <tspan x="16" y="80">Claude Code agent teams integration. Dynamic swarm channels,</tspan>
91
- <tspan x="16" dy="14">auto-created on first message. Agents coordinate via MCP team comms</tspan>
92
- <tspan x="16" dy="14">with token-compressed Chinese inter-agent messaging. specmem init auto-enables.</tspan>
93
- </text>
94
- </g>
95
-
96
- <!-- Coming Soon -->
97
- <g transform="translate(17, 330)">
98
- <rect width="766" height="130" rx="10" fill="url(#cardGrad)" stroke="#f59e0b" stroke-width="1"/>
99
- <rect width="766" height="3" rx="1.5" fill="#f59e0b"/>
100
- <text x="383" y="28" text-anchor="middle" font-family="system-ui, sans-serif" font-size="14" font-weight="600" fill="#fbbf24">Coming Soon</text>
101
-
102
- <!-- OCR -->
103
- <rect x="16" y="42" width="360" height="70" rx="8" fill="#1a1f26" stroke="#30363d" stroke-width="1"/>
104
- <!-- PDF icon -->
105
- <text x="30" y="64" font-family="system-ui, sans-serif" font-size="16">📄</text>
106
- <text x="52" y="62" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="#f59e0b">OCR for PDFs</text>
107
- <text font-family="system-ui, sans-serif" font-size="10.5" fill="#8b949e">
108
- <tspan x="30" y="80">Index PDF docs in your project. Tech specs, API docs,</tspan>
109
- <tspan x="30" dy="13">architecture diagrams. All searchable by meaning.</tspan>
110
- </text>
111
-
112
- <!-- YOLO -->
113
- <rect x="390" y="42" width="360" height="70" rx="8" fill="#1a1f26" stroke="#30363d" stroke-width="1"/>
114
- <!-- Camera icon -->
115
- <text x="404" y="64" font-family="system-ui, sans-serif" font-size="16">📷</text>
116
- <text x="426" y="62" font-family="system-ui, sans-serif" font-size="12" font-weight="600" fill="#f59e0b">YOLO Image Analysis</text>
117
- <text font-family="system-ui, sans-serif" font-size="10.5" fill="#8b949e">
118
- <tspan x="404" y="80">Understand PNGs, screenshots, diagrams upon reading.</tspan>
119
- <tspan x="404" dy="13">UI mockups and flowcharts indexed and searchable.</tspan>
120
- </text>
121
- </g>
122
- </svg>
30
+ <!-- Background -->
31
+ <rect width="800" height="500" fill="url(#bgGrad)" rx="12"/>
32
+ <rect width="800" height="500" fill="none" stroke="#30363d" stroke-width="1" rx="12"/>
33
+
34
+ <!-- Header bar -->
35
+ <rect x="0" y="0" width="800" height="54" fill="url(#headerGrad)" rx="12"/>
36
+ <rect x="0" y="42" width="800" height="12" fill="url(#headerGrad)"/>
37
+
38
+ <!-- Header text -->
39
+ <text x="400" y="22" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="13" fill="#ffffff" text-anchor="middle" font-weight="700" filter="url(#glow)">WHAT'S NEW IN SPECMEM</text>
40
+ <text x="400" y="40" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="10" fill="#c3e6cb" text-anchor="middle" letter-spacing="3">v 3 . 7 . 3 2</text>
41
+
42
+ <!-- ── ROW 1: 3 cards ── -->
43
+
44
+ <!-- Card 1: Auto Model Download -->
45
+ <rect x="20" y="68" width="236" height="120" fill="url(#card1)" rx="8" stroke="#2ea04340" stroke-width="1"/>
46
+ <text x="36" y="90" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="11" fill="#2ea043" font-weight="700">⬇ AUTO MODEL DOWNLOAD</text>
47
+ <line x1="36" y1="96" x2="240" y2="96" stroke="#2ea04330" stroke-width="1"/>
48
+ <text x="36" y="113" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">Embedding + translation models</text>
49
+ <text x="36" y="128" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">auto-download on first init.</text>
50
+ <text x="36" y="143" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">Fully offline after setup.</text>
51
+ <text x="36" y="162" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#3fb950">git-lfs tracked in repo</text>
52
+ <text x="36" y="176" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#3fb950">excluded from npm tarball</text>
53
+
54
+ <!-- Card 2: No Root Required -->
55
+ <rect x="282" y="68" width="236" height="120" fill="url(#card2)" rx="8" stroke="#58a6ff40" stroke-width="1"/>
56
+ <text x="298" y="90" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="11" fill="#58a6ff" font-weight="700">🔓 NO ROOT REQUIRED</text>
57
+ <line x1="298" y1="96" x2="502" y2="96" stroke="#58a6ff30" stroke-width="1"/>
58
+ <text x="298" y="113" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">npm install -g just works on</text>
59
+ <text x="298" y="128" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">Debian, Ubuntu, Mint, Kali.</text>
60
+ <text x="298" y="143" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">No sudo. No workarounds.</text>
61
+ <text x="298" y="162" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#79c0ff">zero-dep auto-install</text>
62
+ <text x="298" y="176" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#79c0ff">streamlined init flow</text>
63
+
64
+ <!-- Card 3: Compaction Proxy -->
65
+ <rect x="544" y="68" width="236" height="120" fill="url(#card3)" rx="8" stroke="#f7853440" stroke-width="1"/>
66
+ <text x="560" y="90" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="11" fill="#f78534" font-weight="700">⚡ COMPACTION PROXY</text>
67
+ <line x1="560" y1="96" x2="764" y2="96" stroke="#f7853430" stroke-width="1"/>
68
+ <text x="560" y="113" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">Daemon intercepts compaction</text>
69
+ <text x="560" y="128" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">events, injects SpecMem</text>
70
+ <text x="560" y="143" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">context before each squeeze.</text>
71
+ <text x="560" y="162" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#ffa657">memory survives context resets</text>
72
+ <text x="560" y="176" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#ffa657">persistent across sessions</text>
73
+
74
+ <!-- ── ROW 2: 3 cards ── -->
75
+
76
+ <!-- Card 4: Concurrent Tool Calls Fixed -->
77
+ <rect x="20" y="204" width="236" height="120" fill="url(#card2)" rx="8" stroke="#58a6ff40" stroke-width="1"/>
78
+ <text x="36" y="226" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="11" fill="#58a6ff" font-weight="700">🔧 CONCURRENT TOOLS FIX</text>
79
+ <line x1="36" y1="232" x2="240" y2="232" stroke="#58a6ff30" stroke-width="1"/>
80
+ <text x="36" y="249" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">Removed artificial limitation</text>
81
+ <text x="36" y="264" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">on concurrent MCP tool calls.</text>
82
+ <text x="36" y="279" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">Full parallel execution now.</text>
83
+ <text x="36" y="298" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#79c0ff">advanced load balancing</text>
84
+ <text x="36" y="312" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#79c0ff">connection pool optimized</text>
85
+
86
+ <!-- Card 5: Token Compression -->
87
+ <rect x="282" y="204" width="236" height="120" fill="url(#card1)" rx="8" stroke="#2ea04340" stroke-width="1"/>
88
+ <text x="298" y="226" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="11" fill="#2ea043" font-weight="700">📦 TOKEN COMPRESSION</text>
89
+ <line x1="298" y1="232" x2="502" y2="232" stroke="#2ea04330" stroke-width="1"/>
90
+ <text x="298" y="249" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">Improved compression system</text>
91
+ <text x="298" y="264" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">with self-healing and better</text>
92
+ <text x="298" y="279" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">accuracy across languages.</text>
93
+ <text x="298" y="298" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#3fb950">zh/en round-trip verified</text>
94
+ <text x="298" y="312" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#3fb950">fixed token usage tracking</text>
95
+
96
+ <!-- Card 6: Sync Rate -->
97
+ <rect x="544" y="204" width="236" height="120" fill="url(#card3)" rx="8" stroke="#f7853440" stroke-width="1"/>
98
+ <text x="560" y="226" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="11" fill="#f78534" font-weight="700">🔄 SYNC INTELLIGENCE</text>
99
+ <line x1="560" y1="232" x2="764" y2="232" stroke="#f7853430" stroke-width="1"/>
100
+ <text x="560" y="249" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">Fixed -100% sync display bug.</text>
101
+ <text x="560" y="264" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">Auto-resync triggers when</text>
102
+ <text x="560" y="279" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">score drops below 85%.</text>
103
+ <text x="560" y="298" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#ffa657">debounced resync (15m default)</text>
104
+ <text x="560" y="312" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#ffa657">configurable via env vars</text>
105
+
106
+ <!-- ── ROW 3: 2 cards centered ── -->
107
+
108
+ <!-- Card 7: TUI Fixes -->
109
+ <rect x="151" y="340" width="236" height="108" fill="url(#card1)" rx="8" stroke="#2ea04340" stroke-width="1"/>
110
+ <text x="167" y="362" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="11" fill="#2ea043" font-weight="700">🖥 TUI FIXES</text>
111
+ <line x1="167" y1="368" x2="371" y2="368" stroke="#2ea04330" stroke-width="1"/>
112
+ <text x="167" y="385" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">Blessed TUI now stable across</text>
113
+ <text x="167" y="400" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">init flows. Pino/SonicBoom fd</text>
114
+ <text x="167" y="415" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">interception fixed.</text>
115
+ <text x="167" y="434" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#3fb950">no more blank screen on boot</text>
116
+
117
+ <!-- Card 8: Performance -->
118
+ <rect x="413" y="340" width="236" height="108" fill="url(#card2)" rx="8" stroke="#58a6ff40" stroke-width="1"/>
119
+ <text x="429" y="362" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="11" fill="#58a6ff" font-weight="700">🚀 PERFORMANCE</text>
120
+ <line x1="429" y1="368" x2="633" y2="368" stroke="#58a6ff30" stroke-width="1"/>
121
+ <text x="429" y="385" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">Connection pool go brrr.</text>
122
+ <text x="429" y="400" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">Reduced permission surface,</text>
123
+ <text x="429" y="415" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="9.5" fill="#8b949e">faster cold-start init.</text>
124
+ <text x="429" y="434" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8.5" fill="#79c0ff">embed.sock lazy load, no kills</text>
125
+
126
+ <!-- Footer -->
127
+ <text x="400" y="482" font-family="'SF Mono', Monaco, Consolas, monospace" font-size="8" fill="#484f58" text-anchor="middle">specmem-hardwicksoftware • github.com/jonhardwick-spec/specmem</text>
128
+ </svg>