mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-13 06:15:03 +00:00
fix(hooks): improve error handling and edge cases for image analysis
- Add empty model string validation in config command - Add --enable/--disable conflict detection - Truncate long model names in display (>40 chars) - Add EACCES/EPERM file permission error handler - Add filesystem error classification (ENOSPC, EROFS) - Log config upgrade save failures instead of silent catch
This commit is contained in:
1 parent
2b0717ed53
commit
cb8de2c8e8
3 files changed
+164
-28
No files matched your search
@@ -517,6 +517,25 @@ function outputApiError(filePath, statusCode, responseBody) {
|
||||
process.exit(2);
|
||||
}
|
||||
|
||||
/**
|
||||
* File permission error
|
||||
*/
|
||||
function outputFileAccessError(filePath, error) {
|
||||
const output = formatErrorOutput(
|
||||
filePath,
|
||||
ERROR_CODES.UNKNOWN,
|
||||
`File access denied: ${error}`,
|
||||
[
|
||||
'Check file permissions: ls -l ' + filePath,
|
||||
isWindows ? 'Run terminal as Administrator if needed' : 'Use sudo or adjust file ownership',
|
||||
'Verify file is readable by current user',
|
||||
'Move file to accessible location',
|
||||
]
|
||||
);
|
||||
console.log(JSON.stringify(output));
|
||||
process.exit(2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Unknown/fallback error (replaces old outputError)
|
||||
*/
|
||||
@@ -685,7 +704,7 @@ async function processHook() {
|
||||
|
||||
debugLog('File encoded', {
|
||||
mediaType: mediaType,
|
||||
base64Length: `${(base64Data.length / 1024).toFixed(1)} KB`,
|
||||
base64Length: `${(base64Data.length / 1024).toFixed(1)}KB`,
|
||||
});
|
||||
|
||||
// Analyze via CLIProxy
|
||||
@@ -730,6 +749,8 @@ async function processHook() {
|
||||
outputTimeoutError(filePath, timeout);
|
||||
} else if (errMsg.includes('ECONNREFUSED') || errMsg.includes('ENOTFOUND')) {
|
||||
outputCliProxyUnavailableError(filePath, `http://${CLIPROXY_HOST}:${CLIPROXY_PORT}`);
|
||||
} else if (errMsg.includes('EACCES') || errMsg.includes('EPERM')) {
|
||||
outputFileAccessError(filePath, errMsg);
|
||||
} else {
|
||||
outputUnknownError(filePath, errMsg);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user