Address code review: fix duplicate README row, improve session ID entropy, accessibility, constants
Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
This commit is contained in:
parent
52113dd59b
commit
7189a7af88
|
|
@ -62,10 +62,9 @@
|
||||||
|
|
||||||
| 人格体 | 角色 | 职责 |
|
| 人格体 | 角色 | 职责 |
|
||||||
|--------|------|------|
|
|--------|------|------|
|
||||||
| **铸渊 Zhùyuān** | 代码守护者 | 代码审查、CI 巡检、模块协议执行、Issue 回复 |
|
| **铸渊 Zhùyuān** | 代码守护者 | 代码审查、CI 巡检、模块协议执行、Issue 回复、对话协助、代码生成、开发体验([Persona Studio](https://qinfendebingshuo.github.io/guanghulab/persona-studio/)) |
|
||||||
| **冰朔 Bīng Shuò** | 系统创建者 | 系统架构设计、核心决策、广播发布 |
|
| **冰朔 Bīng Shuò** | 系统创建者 | 系统架构设计、核心决策、广播发布 |
|
||||||
| **霜砚 Shuāng Yàn** | 人格导师 | 人格调校、风格管理、联觉语言系统 |
|
| **霜砚 Shuāng Yàn** | 人格导师 | 人格调校、风格管理、联觉语言系统 |
|
||||||
| **铸渊 Zhùyuān** | 代码守护者 | 代码审查、CI 巡检、模块协议执行、Issue 回复、对话协助、代码生成、开发体验([Persona Studio](https://qinfendebingshuo.github.io/guanghulab/persona-studio/)) |
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -82,11 +82,11 @@
|
||||||
<div class="input-toolbar">
|
<div class="input-toolbar">
|
||||||
<label class="toolbar-btn" title="上传图片" for="imageUpload">
|
<label class="toolbar-btn" title="上传图片" for="imageUpload">
|
||||||
🖼️
|
🖼️
|
||||||
<input type="file" id="imageUpload" accept="image/*" style="display:none" onchange="handleFileSelect(event, 'image')">
|
<input type="file" id="imageUpload" accept="image/*" style="display:none" onchange="handleFileSelect(event, 'image')" aria-label="上传图片">
|
||||||
</label>
|
</label>
|
||||||
<label class="toolbar-btn" title="上传文件" for="fileUpload">
|
<label class="toolbar-btn" title="上传文件" for="fileUpload">
|
||||||
📎
|
📎
|
||||||
<input type="file" id="fileUpload" style="display:none" onchange="handleFileSelect(event, 'file')">
|
<input type="file" id="fileUpload" style="display:none" onchange="handleFileSelect(event, 'file')" aria-label="上传文件">
|
||||||
</label>
|
</label>
|
||||||
<div id="uploadPreview" class="upload-preview" style="display:none;"></div>
|
<div id="uploadPreview" class="upload-preview" style="display:none;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ const API_BASE = (function () {
|
||||||
let conversationHistory = [];
|
let conversationHistory = [];
|
||||||
let buildReady = false;
|
let buildReady = false;
|
||||||
let pendingFile = null; // { name, type, dataUrl }
|
let pendingFile = null; // { name, type, dataUrl }
|
||||||
|
const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB
|
||||||
const isGuest = (DEV_ID === 'GUEST');
|
const isGuest = (DEV_ID === 'GUEST');
|
||||||
const isDeveloper = (DEV_ID && DEV_ID !== 'GUEST' && /^EXP-\d{3,}$/.test(DEV_ID));
|
const isDeveloper = (DEV_ID && DEV_ID !== 'GUEST' && /^EXP-\d{3,}$/.test(DEV_ID));
|
||||||
|
|
||||||
|
|
@ -48,7 +49,7 @@ function setActiveSessionId(id) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function createNewSession() {
|
function createNewSession() {
|
||||||
var id = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
|
var id = Date.now().toString(36) + Math.random().toString(36).slice(2, 10);
|
||||||
var session = {
|
var session = {
|
||||||
id: id,
|
id: id,
|
||||||
title: '新对话',
|
title: '新对话',
|
||||||
|
|
@ -299,8 +300,7 @@ function handleFileSelect(event, type) {
|
||||||
var file = event.target.files[0];
|
var file = event.target.files[0];
|
||||||
if (!file) return;
|
if (!file) return;
|
||||||
|
|
||||||
var maxSize = 5 * 1024 * 1024; // 5MB
|
if (file.size > MAX_FILE_SIZE) {
|
||||||
if (file.size > maxSize) {
|
|
||||||
appendMessage('system', '⚠️ 文件过大,最大支持 5MB');
|
appendMessage('system', '⚠️ 文件过大,最大支持 5MB');
|
||||||
event.target.value = '';
|
event.target.value = '';
|
||||||
return;
|
return;
|
||||||
|
|
@ -318,11 +318,7 @@ function handleFileSelect(event, type) {
|
||||||
showUploadPreview();
|
showUploadPreview();
|
||||||
};
|
};
|
||||||
|
|
||||||
if (type === 'image') {
|
reader.readAsDataURL(file);
|
||||||
reader.readAsDataURL(file);
|
|
||||||
} else {
|
|
||||||
reader.readAsDataURL(file);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.target.value = '';
|
event.target.value = '';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue