Commit Graph
566 Commits
Author SHA1 Message Date
Sycun cb8bc6b824 feat: update this installation's own source in one action
An operator running a fork has no honest way to upgrade: upgrade.sh downloads the
Release tarball of one hard-coded third-party repository and rsyncs it over the
tree, so "upgrade" means "overwrite yourself with somebody else's code", and the
safe alternative is to pull by hand and remember the build command.

internal/update drives the remote the directory already tracks: fetch, fast-forward,
go build into .update-staging, atomic rename of the binary (the previous one kept as
cyberstrike-ai.prev), and a .update-state.json so a rollback has a target that is
not guessed at. Refusals are the point - local source edits and a diverged branch
stop with the file names and commit counts in the error rather than being reset to
match, and operator-owned content (roles/skills/tools/agents/data/config.yaml) is put
aside before the merge and restored over it, with what was kept listed in keptContent
instead of quietly dropped.

Consumers: GET/POST /api/system/update* behind update:read / update:apply (mutations
are process-global, so they need a global-scope session); a console page at
#system-update with an apply button that names why it is blocked, a job polled from
the server and a rollback control; the same three actions as -check-update / -update
/ -update-rollback on the binary; OpenAPI entries for all five endpoints. Permission
gating no longer re-enables a control a page disabled for a reason of its own
(data-state-disabled), which every state-disabled, permission-gated button in the
console was subject to. upgrade.sh becomes a thin shell over the same implementation
and only falls back to the tarball path for installs that are not git work trees.

Docs and the zh/EN/RU dictionaries are updated. The package runs 13 tests against
real temporary git repositories; the HTTP layer, RBAC and the console page each
carry their own contract tests.
2026-10-07 12:07:26 +08:00
Ed1s0nZ 062fd30cd7 fix: respect limited scan goals and retain asset completion instructions 2026-10-06 03:26:31 +08:00
Ed1s0nZ abbf7a19a8 fix: align conversation headings and truncate project badges 2026-10-06 03:19:55 +08:00
Ed1s0nZ 41365d4a4c fix: keep workflow labels inside node boundaries 2026-10-06 03:18:28 +08:00
Ed1s0nZ 38508e79a8 fix: keep list badges within table columns 2026-10-06 03:16:34 +08:00
Ed1s0nZ 9090e75a67 fix: retain cancellation labels after approval interruptions 2026-10-06 03:11:11 +08:00
Ed1s0nZ 054a77cdab fix: preserve task cancellation through final events 2026-10-06 03:09:04 +08:00
Ed1s0nZ 07066f9219 fix: show failed outcomes in finished batch queues 2026-10-06 03:05:25 +08:00
Ed1s0nZ 5dc9cb1541 fix: retain knowledge indexing errors and explain failure causes 2026-10-06 03:02:14 +08:00
Ed1s0nZ bb96a084e0 fix: keep related fact views in place and clarify import outcomes 2026-10-06 02:58:56 +08:00
Ed1s0nZ 7d6d3e77dc fix: restore listener edit actions and validate required fields 2026-10-06 02:54:27 +08:00
Ed1s0nZ ae395f5bf7 fix: localize asset exports and preserve import compatibility 2026-10-06 02:51:15 +08:00
Ed1s0nZ 05d7d9ec65 fix: explain password validation errors and support login preview 2026-10-06 02:49:17 +08:00
Ed1s0nZ 8550325dfe fix: validate workflows and preserve execution outcomes 2026-10-06 02:32:32 +08:00
Ed1s0nZ bdefa535b0 fix: validate form edits and enforce task result ownership 2026-10-06 02:20:28 +08:00
Ed1s0nZ ab17ffda87 fix: preserve shell output and clarify fact relationships 2026-10-06 02:12:28 +08:00
Ed1s0nZ 76da98944c fix: mask stored credentials and validate agent saves 2026-10-06 02:04:14 +08:00
Ed1s0nZ 4a5b177947 fix: preserve task terminal state and file navigation paths 2026-10-06 01:48:12 +08:00
Ed1s0nZ 079ba0d2b3 fix: validate login and role inputs and protect task access 2026-10-06 01:36:31 +08:00
Diznev 78973e844e feat: add Russian UI locale (#341)
Add a ru-RU language pack and a Русский entry in the language switcher so the console can be used in Russian. Dates follow the selected locale. Strings that are not translated yet fall back to English.
2026-10-05 15:07:54 +08:00
SycunandParallels 470eb5ead1 feat: add runtime storage cleanup with per-category retention (#310) (#313)
Runtime artifacts (agent workspaces, tool-output spill, C2 payloads, chat
uploads, workflow checkpoints, diagnostic logs) previously accumulated
without bound: most were only removed when a conversation or project was
deleted, and tmp/c2 plus workflow checkpoints were never removed at all.

Add a storage cleaner with named per-category tasks (Gitea-style), a
settings page tab, and a background sweep that is off by default so
upgrading never deletes existing data.

Safety properties, since mis-deleting live task data costs far more than
the disk saved:
- dry-run is the default; a real cleanup requires dry_run=false together
  with confirm=true at the API layer, not just a frontend dialog
- sessions active within active_grace_hours are always skipped, and a
  failed activity lookup skips conservatively (fail closed)
- directories whose conversation/project no longer exists are reclaimed
  as orphans after orphan_grace_days
- scanners never follow symlinks and every candidate path is confined to
  its category root; deletion renames to a .tmp-for-deletion marker first
  so a crash leaves recoverable residue instead of a half-deleted dir
- storage:* permissions are admin-only; without the grantSystemRolePermissions
  skip the default branch would have given operators an irreversible
  file-deletion right

Also fix two confirmed leaks: DeleteConversation left chat_uploads files
on disk (their rows already vanished via ON DELETE CASCADE), and workflow
checkpoints had no deletion path at all.

Co-authored-by: Parallels <parallels@kali-linux-2025-2.localdomain>
2026-09-25 14:46:23 +08:00
Ed1s0nZandCursor 38b96ec67a feat: add TypeSafe Jev as HITL audit backend
Let audit_agent approve or reject with one System One call instead of chat JSON, while keeping the OpenAI-compatible backend as an option.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 21:15:53 +08:00
Ed1s0nZandCursor 8da3c8c51b fix: use a closed ring for project preview task stats
Replace the small refresh-arrow icon so it no longer renders as a spike at compact sizes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-18 17:21:01 +08:00
Ed1s0nZ f7882be546 feat: manage task process lifetimes and preserve turn history 2026-09-16 17:52:58 +08:00
Ed1s0nZ ac101d8476 feat: add batch task approval settings and fix modal dropdown scrolling 2026-09-13 18:02:43 +08:00
Ed1s0nZ 377be6492a fix: refresh navigation permissions before login and on scoped renders 2026-09-08 15:15:18 +08:00
Ed1s0nZ 6ad9ea2d13 feat: add configurable tool call blocking and monitoring 2026-09-08 09:44:32 +08:00
temp c70da22de7 Remove conversation grouping feature 2026-08-26 15:00:09 +08:00
temp fbbe984005 fix: refresh ai channel reasoning selects 2026-08-25 18:51:19 +08:00
temp abc00c1fef fix: auto-detect deepseek profile in settings 2026-08-25 18:40:49 +08:00
temp 21c6ad9bdf feat: persist hitl default config 2026-08-24 19:45:07 +08:00
temp e218316c55 Add token usage tracking and UI refinements 2026-08-24 00:05:05 +08:00
Codex a34cab431a Improve conversation preview layout 2026-08-23 20:09:56 +08:00
temp 3bcf4458c5 Fix finalization cleanup for pending tool executions 2026-08-23 19:57:17 +08:00
RuoJi6 bec2d2faf1 修复多会话任务栏抖动、会话跳回与停止失效 (#264)
* fix(web): stabilize active task ordering

* fix(chat): preserve navigation during conversation startup

* fix(tasks): guarantee hard cancellation

* fix(chat): bind navigation and hard stop targets

* fix(chat): prevent replay from reclaiming navigation
2026-08-19 13:54:30 +08:00
RuoJi6 c7cc0bc9da 修复人工审批长内容遮挡及刷新审批人状态异常 (#263)
* docs(hitl): remove stale asm_list_resources references

* fix(hitl): constrain approval layout and preserve reviewer
2026-08-19 13:31:37 +08:00
公明andCursor 24d06c5220 Fix missing results for parallel Eino tool calls.
Merge streaming tool outputs by CallID with ConcatMessages, pair same-name historical results, and FIFO-match duplicate IDs so concurrent nmap 1/2 and 2/2 stay distinct.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-19 00:29:12 +08:00
公明 286511d0a8 Add files via upload 2026-08-18 20:48:50 +08:00
公明 7823fb6b0c Add files via upload 2026-08-15 11:03:13 +08:00
公明 9c0621819f Add files via upload 2026-08-15 10:13:12 +08:00
公明 e691c5d9c6 Add files via upload 2026-08-15 01:33:33 +08:00
RuoJi6 a1615143be feat(ui): 显示 Agent 任务进度列表 (#251) 2026-08-14 10:44:03 +08:00
公明 7c45011074 Add files via upload 2026-08-13 22:15:08 +08:00
RuoJi6 eb6bab574f 优化项目对话、刷新续流、实时滚动与工具状态恢复 (#245)
* feat(chat): add project-based conversation sidebar

* feat(chat): refine Codex-style conversation UI

* feat(chat): add Codex-style conversation workflow

* feat(ui): 优化对话框与项目侧边栏交互

* fix(chat): 修复暗色输入框圆角填色

* fix(chat): 恢复输入区分层错位布局

* fix(hitl): isolate reviewer state per conversation

* feat(hitl): 增加双入口审批与倒计时进度

* fix(hitl): 汇总项目审批并隔离对话状态

* fix(ui): 修复审批状态与无项目新任务

* fix(ui): 优化审批状态与对话切换性能

* fix(ui): 修复中断任务审批仍计时

* fix(ui): 修复多对话并发切换卡顿

* fix(hitl): 主动同步审批并关闭中断状态

* fix(ui): 固定项目审批汇总为绿色

* feat(ui): 同步系统模型与推理强度

* feat(ui): 完善项目侧栏预览与新建入口

* fix(ui): 防止无项目文件夹误展开

* fix(ui): 防止长历史对话滚动误触审批

* fix(ui): 修复对话操作并补充项目置顶

* fix(ui): 移除对话分组并调整项目置顶排序

* feat(ui): 优化迭代导航与审批交互

* fix(hitl): 将 write_file 加入内置免审批工具

* fix(chat): 支持回车发送与 Shift 回车换行

* fix(chat): 优化对话刷新与 Codex 风格交互

* fix(ui): 显示对话具体更新时间

* fix(ui): 优化对话刷新与项目加载

* fix(ui): 修复 Agent 审查文字裁切

* fix(chat): 修复刷新续流与多标签页同步

* fix(chat): 修复滚动跟随与中断任务终态

* fix(ui): 修复流式滚动跳动与工具状态恢复

* fix(ui): 修复刷新后流式输出停止粘底
2026-08-13 21:28:37 +08:00
公明 d3714c9913 Add files via upload 2026-08-06 17:12:21 +08:00
公明 30513dbbfd Add files via upload 2026-08-06 10:50:34 +08:00
公明 b9854192c6 Add files via upload 2026-07-31 21:04:11 +08:00
公明 5747ebc612 Add files via upload 2026-07-29 11:42:23 +08:00
公明 52595e07e5 Add files via upload 2026-07-28 18:15:54 +08:00
公明 98ca395edd Add files via upload 2026-07-28 11:01:17 +08:00