claude-code-hub 0.7.6 → 0.7.8

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.
Files changed (2) hide show
  1. package/package.json +3 -3
  2. package/server.js +13 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-hub",
3
- "version": "0.7.6",
3
+ "version": "0.7.8",
4
4
  "description": "Unified hub for Claude Code tools — Marketplace + Kanban in one PWA",
5
5
  "main": "server.js",
6
6
  "bin": {
@@ -36,8 +36,8 @@
36
36
  "homepage": "https://github.com/NikiforovAll/claude-code-hub#readme",
37
37
  "dependencies": {
38
38
  "claude-code-cost": "^0.6.1",
39
- "claude-code-memory-explorer": "^0.2.3",
40
- "claude-code-kanban": "^3.2.2",
39
+ "claude-code-memory-explorer": "^0.2.5",
40
+ "claude-code-kanban": "^3.2.3",
41
41
  "claude-code-marketplace": "^0.5.11",
42
42
  "express": "^4.21.0",
43
43
  "open": "^10.1.0"
package/server.js CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  const { spawn } = require('child_process');
4
4
  const express = require('express');
5
+ const http = require('http');
5
6
  const path = require('path');
6
7
 
7
8
  function getArg(name) {
@@ -101,10 +102,14 @@ const kanbanPath = resolveApp('cck', 'claude-code-kanban');
101
102
  const costPath = resolveApp('cost', 'claude-code-cost');
102
103
  const memoryPath = resolveApp('memory', 'claude-code-memory-explorer');
103
104
 
104
- spawnApp('marketplace', process.execPath, [marketplacePath, `--port=${MARKETPLACE_PORT}`], MARKETPLACE_PORT);
105
- spawnApp('kanban', process.execPath, [kanbanPath], KANBAN_PORT);
106
- spawnApp('cost', process.execPath, [costPath, `--port=${COST_PORT}`], COST_PORT);
107
- spawnApp('memory', process.execPath, [memoryPath, `--port=${MEMORY_PORT}`], MEMORY_PORT);
105
+ // Raise header size limit to 64KB — localhost cookies from sibling apps can pile up and
106
+ // trip Node's default 16KB limit, breaking iframes with HTTP 431.
107
+ const NODE_HDR = '--max-http-header-size=65536';
108
+
109
+ spawnApp('marketplace', process.execPath, [NODE_HDR, marketplacePath, `--port=${MARKETPLACE_PORT}`], MARKETPLACE_PORT);
110
+ spawnApp('kanban', process.execPath, [NODE_HDR, kanbanPath], KANBAN_PORT);
111
+ spawnApp('cost', process.execPath, [NODE_HDR, costPath, `--port=${COST_PORT}`], COST_PORT);
112
+ spawnApp('memory', process.execPath, [NODE_HDR, memoryPath, `--port=${MEMORY_PORT}`], MEMORY_PORT);
108
113
 
109
114
  const app = express();
110
115
 
@@ -121,7 +126,8 @@ app.get('/api/config', (_req, res) => {
121
126
 
122
127
  app.use(express.static(path.join(__dirname, 'public')));
123
128
 
124
- const server = app.listen(HUB_PORT, () => {
129
+ const server = http.createServer({ maxHeaderSize: 65536 }, app);
130
+ server.listen(HUB_PORT, () => {
125
131
  const actual = server.address().port;
126
132
  printBanner(actual);
127
133
  if (process.argv.includes('--open')) {
@@ -137,7 +143,8 @@ function printBanner(port) {
137
143
  server.on('error', (err) => {
138
144
  if (err.code === 'EADDRINUSE' || err.code === 'EACCES') {
139
145
  console.log(`Port ${HUB_PORT} in use, trying random port...`);
140
- const fallback = app.listen(0, () => {
146
+ const fallback = http.createServer({ maxHeaderSize: 65536 }, app);
147
+ fallback.listen(0, () => {
141
148
  const actual = fallback.address().port;
142
149
  printBanner(actual);
143
150
  if (process.argv.includes('--open')) {