crewly 1.4.11 → 1.4.12
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/config/constants.ts +1 -1
- package/dist/backend/backend/src/services/core/env.config.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/env.config.js +9 -11
- package/dist/backend/backend/src/services/core/env.config.js.map +1 -1
- package/dist/backend/config/constants.d.ts +1 -1
- package/dist/backend/config/constants.js +1 -1
- package/dist/cli/config/constants.d.ts +1 -1
- package/dist/cli/config/constants.js +1 -1
- package/package.json +1 -1
package/config/constants.ts
CHANGED
|
@@ -883,7 +883,7 @@ export const SERVER_CONSTANTS = {
|
|
|
883
883
|
/** Maximum heap size in MB (cap for high-RAM machines) */
|
|
884
884
|
MAX_HEAP_SIZE_MB: 2048,
|
|
885
885
|
/** Fraction of total system RAM to allocate to Node.js heap */
|
|
886
|
-
HEAP_MEMORY_RATIO: 0.
|
|
886
|
+
HEAP_MEMORY_RATIO: 0.4,
|
|
887
887
|
} as const;
|
|
888
888
|
|
|
889
889
|
// ========================= AUDITOR SYSTEM =========================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.config.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/core/env.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;
|
|
1
|
+
{"version":3,"file":"env.config.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/core/env.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAUH,4BAA4B;AAC5B,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,kCAAkC;AAClC,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,4BAA4B;AAC5B,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,yBAAyB;AACzB,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAoED;;;;;;;GAOG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAwDxC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAMD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,mBAAmB,CA+DvD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAalE"}
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
*/
|
|
25
25
|
import * as os from 'os';
|
|
26
26
|
import * as path from 'path';
|
|
27
|
+
import * as crypto from 'crypto';
|
|
27
28
|
// ---------------------------------------------------------------------------
|
|
28
29
|
// Default values
|
|
29
30
|
// ---------------------------------------------------------------------------
|
|
@@ -103,7 +104,7 @@ export function getEnvConfig() {
|
|
|
103
104
|
},
|
|
104
105
|
auth: {
|
|
105
106
|
jwtSecret: envStr('CREWLY_JWT_SECRET', DEFAULT_JWT_SECRET),
|
|
106
|
-
tokenEncryptionKey: envStr('CREWLY_TOKEN_ENCRYPTION_KEY', envStr('CREWLY_SECRET', '')),
|
|
107
|
+
tokenEncryptionKey: envStr('CREWLY_TOKEN_ENCRYPTION_KEY', envStr('CREWLY_SECRET', '')) || crypto.randomBytes(32).toString('hex'),
|
|
107
108
|
},
|
|
108
109
|
slack: {
|
|
109
110
|
botToken: envStr('SLACK_BOT_TOKEN', ''),
|
|
@@ -163,17 +164,14 @@ export function validateEnvConfig() {
|
|
|
163
164
|
errors.push('PORT must be between 1 and 65535');
|
|
164
165
|
}
|
|
165
166
|
// --- Auth / Secrets ---
|
|
166
|
-
|
|
167
|
-
|
|
167
|
+
// Warn but do not error — random defaults are generated at startup when unset
|
|
168
|
+
if (config.auth.jwtSecret === DEFAULT_JWT_SECRET) {
|
|
169
|
+
warnings.push(isProduction
|
|
170
|
+
? 'CREWLY_JWT_SECRET is using the default dev secret in production — set a strong secret for security'
|
|
171
|
+
: 'CREWLY_JWT_SECRET is using the default dev secret — set a strong secret for production');
|
|
168
172
|
}
|
|
169
|
-
|
|
170
|
-
warnings.push('
|
|
171
|
-
}
|
|
172
|
-
if (isProduction && !config.auth.tokenEncryptionKey) {
|
|
173
|
-
errors.push('CREWLY_TOKEN_ENCRYPTION_KEY (or CREWLY_SECRET) must be set in production');
|
|
174
|
-
}
|
|
175
|
-
else if (!config.auth.tokenEncryptionKey) {
|
|
176
|
-
warnings.push('No CREWLY_TOKEN_ENCRYPTION_KEY set — using insecure fallback for token encryption');
|
|
173
|
+
if (!process.env['CREWLY_TOKEN_ENCRYPTION_KEY'] && !process.env['CREWLY_SECRET']) {
|
|
174
|
+
warnings.push('No CREWLY_TOKEN_ENCRYPTION_KEY set — using auto-generated random key (tokens will not survive restarts)');
|
|
177
175
|
}
|
|
178
176
|
// --- Supabase ---
|
|
179
177
|
if (isProduction && config.supabase.url === DEFAULT_SUPABASE_URL) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.config.js","sourceRoot":"","sources":["../../../../../../backend/src/services/core/env.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"env.config.js","sourceRoot":"","sources":["../../../../../../backend/src/services/core/env.config.ts"],"names":[],"mappings":"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"}
|
|
@@ -778,7 +778,7 @@ export declare const SERVER_CONSTANTS: {
|
|
|
778
778
|
/** Maximum heap size in MB (cap for high-RAM machines) */
|
|
779
779
|
readonly MAX_HEAP_SIZE_MB: 2048;
|
|
780
780
|
/** Fraction of total system RAM to allocate to Node.js heap */
|
|
781
|
-
readonly HEAP_MEMORY_RATIO: 0.
|
|
781
|
+
readonly HEAP_MEMORY_RATIO: 0.4;
|
|
782
782
|
};
|
|
783
783
|
/**
|
|
784
784
|
* Auditor feature-flag configuration.
|
|
@@ -820,7 +820,7 @@ export const SERVER_CONSTANTS = {
|
|
|
820
820
|
/** Maximum heap size in MB (cap for high-RAM machines) */
|
|
821
821
|
MAX_HEAP_SIZE_MB: 2048,
|
|
822
822
|
/** Fraction of total system RAM to allocate to Node.js heap */
|
|
823
|
-
HEAP_MEMORY_RATIO: 0.
|
|
823
|
+
HEAP_MEMORY_RATIO: 0.4,
|
|
824
824
|
};
|
|
825
825
|
// ========================= AUDITOR SYSTEM =========================
|
|
826
826
|
/**
|
|
@@ -778,7 +778,7 @@ export declare const SERVER_CONSTANTS: {
|
|
|
778
778
|
/** Maximum heap size in MB (cap for high-RAM machines) */
|
|
779
779
|
readonly MAX_HEAP_SIZE_MB: 2048;
|
|
780
780
|
/** Fraction of total system RAM to allocate to Node.js heap */
|
|
781
|
-
readonly HEAP_MEMORY_RATIO: 0.
|
|
781
|
+
readonly HEAP_MEMORY_RATIO: 0.4;
|
|
782
782
|
};
|
|
783
783
|
/**
|
|
784
784
|
* Auditor feature-flag configuration.
|
|
@@ -820,7 +820,7 @@ export const SERVER_CONSTANTS = {
|
|
|
820
820
|
/** Maximum heap size in MB (cap for high-RAM machines) */
|
|
821
821
|
MAX_HEAP_SIZE_MB: 2048,
|
|
822
822
|
/** Fraction of total system RAM to allocate to Node.js heap */
|
|
823
|
-
HEAP_MEMORY_RATIO: 0.
|
|
823
|
+
HEAP_MEMORY_RATIO: 0.4,
|
|
824
824
|
};
|
|
825
825
|
// ========================= AUDITOR SYSTEM =========================
|
|
826
826
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "crewly",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Multi-agent orchestration platform for AI coding teams — coordinates Claude Code, Gemini CLI, and Codex agents with a real-time web dashboard",
|
|
6
6
|
"main": "dist/cli/cli/src/index.js",
|