Commit Graph

  • 3570ccd5c3 feat(core): implement plugin fiber state machine and reactive dependency reconciler ryan 2026-08-28 13:35:43 +08:00
  • 33294b3fae feat(core): implement scoped revertible effects for context extpoints ryan 2026-08-28 13:34:07 +08:00
  • 0b4e928d1a docs(core): add cordis architecture alignment implementation plan ryan 2026-08-28 13:32:55 +08:00
  • 0bc19e34cb docs(core): add cordis architecture alignment design spec ryan 2026-08-28 13:32:05 +08:00
  • b92ba54707 docs(core): update developer guide and white paper with cordis composability standards ryan 2026-08-28 13:30:47 +08:00
  • e19bf36580 refactor(core): align architecture with cordis spatiotemporal composability ryan 2026-08-28 13:28:58 +08:00
  • 9f8890d159 refactor(module): simplify module name to Wavelet and standardize import paths ryan 2026-08-28 13:10:30 +08:00
  • f2ab94501c refactor(layout): relocate go.mod to backend/ and clean import paths to module root ryan 2026-08-28 13:01:51 +08:00
  • 43dc97e48c refactor(layout): consolidate backend codebase into backend/ package and clean root directory ryan 2026-08-28 12:56:02 +08:00
  • 33b38f8687 docs(migration): update docs and skills for new migration architecture ryan 2026-08-28 12:45:58 +08:00
  • 9bd012a271 fix(migration): use single w_schema_versions table with plugin_id discriminator ryan 2026-08-28 12:39:28 +08:00
  • 65c7c282f5 refactor(migration): merge per-plugin SQL into single initial migration ryan 2026-08-28 12:28:37 +08:00
  • 530a9dd3ee refactor(migration): delete pkg/migrator, move SQL to per-plugin embed ryan 2026-08-28 12:19:25 +08:00
  • c9b702d234 refactor(core): fix cross-domain auth imports, unify migration, add downstream scaffold ryan 2026-08-28 11:51:48 +08:00
  • 416603b616 fix(persistence): migrate all pkg/persistence imports to plugins/infra/database and plugins/infra/cache ryan 2026-08-28 10:59:24 +08:00
  • fb6a3edb89 refactor(architecture): eliminate internal package and complete cordis single-owner model and repository migration ryan 2026-08-28 08:40:43 +08:00
  • 1f348fd425 docs(whitepaper): update white paper to reflect 100% pure Cordis single-track architecture ryan 2026-08-28 07:28:55 +08:00
  • dc49b72c29 refactor(core): completely decommission legacy internal/apps, internal/platform/bootstrap, and internal/router/v1 ryan 2026-08-28 07:28:45 +08:00
  • df3c5ae756 docs(whitepaper): update white paper with deep physical migration status and zero-lint test report ryan 2026-08-28 07:16:40 +08:00
  • 56ef70d81f feat(cmd): register all 5 domain plugins in newWaveletApp and fix all lint issues ryan 2026-08-28 07:16:30 +08:00
  • b259f35bb4 refactor(plugins): complete physical encapsulation of auth, admin, message_gateway, and risk_control domain plugins ryan 2026-08-28 07:15:17 +08:00
  • e750fadacd chore: docs ryan 2026-08-28 00:11:54 +08:00
  • 5a00879b63 docs(whitepaper): update white paper with comprehensive QA and E2E test report ryan 2026-08-28 00:07:07 +08:00
  • b6bfa120fc feat(core): implement app profile lifecycle dispatcher and wire cli commands ryan 2026-08-28 00:02:30 +08:00
  • a4c3f70f0b feat(plugins): migrate auth, user, message_gateway, risk_control, admin to domain plugins ryan 2026-08-27 23:59:38 +08:00
  • 75f226cfbf docs(agents): update AGENTS.md and development skills for cordis architecture ryan 2026-08-27 23:56:16 +08:00
  • 94c5aa4cd3 docs: publish WAVELET architecture white paper and official developer guide ryan 2026-08-27 23:51:37 +08:00
  • a25bf7a4f9 feat(plugins): package database, cache, logger, and storage as infra plugins ryan 2026-08-27 23:51:10 +08:00
  • 4efc2c92b7 feat(plugins): implement runtime drivers for http, asynq worker, and cron ryan 2026-08-27 23:48:18 +08:00
  • ef6296bd22 feat(core): add typed eventbus and domain extension points ryan 2026-08-27 23:47:58 +08:00
  • c53a5461ab feat(core): add typed eventbus and domain extension points ryan 2026-08-27 23:47:57 +08:00
  • d853a41eae docs: initialize WAVELET white paper and developer guide ryan 2026-08-27 23:43:06 +08:00
  • a6ab158855 feat(core): implement context service hub and generic ioc container ryan 2026-08-27 23:41:12 +08:00
  • 3792313797 docs: add cordis plugin architecture implementation plan ryan 2026-08-27 23:38:02 +08:00
  • 40de54fe5b docs: add cordis downstream developer guide and cookbook ryan 2026-08-27 23:33:12 +08:00
  • 360f4f432c docs: add cordis microkernel and plugin architecture design spec ryan 2026-08-27 23:24:34 +08:00
  • ae3b792e16 feat(core): sync framework security hardening and accessibility improvements ryan 2026-08-27 23:01:28 +08:00
  • 81739f9cb4 chore: format ryan 2026-08-26 15:13:23 +08:00
  • 2b69f4d8d7 #60 GeoIP 共享单例化:消除访问日志 region 解析每批次的 mmdb 重建开销与无界缓存,ctx 贯穿下载路径 ryan 2026-08-26 13:48:44 +08:00
  • b56f27632a #59 -shuffle=on 扫描抓到测试顺序依赖:config_version RAM 配置缓存跨测试污染,setup/cleanup 接入 ram.ResetForTest() 修复 ryan 2026-08-26 13:35:20 +08:00
  • fc733d0295 #57 enqueue 修复的同型残留收口:SendFlaredPong/SendRelayPong 合并 select 随机选择 bug,委托 client.enqueue 去重修复 ryan 2026-08-26 13:20:35 +08:00
  • 453f7e5d90 周期性 -race 重跑抓到真实 bug:wsClientCore.enqueue close 后 select 随机选择致契约违反;确定性先查 done 修复+测试循环加固+gofmt 存量漂移清理 ryan 2026-08-26 13:14:59 +08:00
  • 63e3b85294 富交互页 a11y 抽查收尾:8+3 页扫描,修复 cloudflare 筛选器无名/access-token amber 对比度/notifications 缺 h1 共 3 处,全部复扫归零;基准 total_issues 保持 8 ryan 2026-08-26 13:05:16 +08:00
  • e66dea9090 a11y 收尾:主题级对比度根因修复(indigo-500→600)+12 处控件 accessible name+4 处 heading-order,7 页复扫全 0 违规;基准 total_issues 保持 8 ryan 2026-08-26 12:51:48 +08:00
  • 451ce52592 认证页 axe a11y 审计+修复:7 处布局级真实违规全修,复扫验证 dashboard/admin/system 归零;基准 total_issues 保持 8 不变(纯质量收益) ryan 2026-08-26 12:26:37 +08:00
  • bbf79199aa docs(autoresearch): record run #50 dead-end linter sweep ryan 2026-08-26 11:26:48 +08:00
  • 40232d86ba 修复 frpc restartProcess 发布未初始化 exec.Cmd 的数据竞争:proc.Cmd/Status 改为 Start 成功后加锁发布 ryan 2026-08-26 11:19:18 +08:00
  • 55db1c01ec 后台 goroutine panic 防护:新增 pkg/util.Go 共享助手(recover+调用点日志),全仓 22 个裸 go func() 站点统一收口 ryan 2026-08-26 11:06:23 +08:00
  • 3528323b50 GORM 实体搜索 LIKE 转义收尾:6 站点复用 EscapeLike + 显式 ESCAPE 子句,含 OAuth 用户名冲突误报修复 ryan 2026-08-26 10:49:15 +08:00
  • 2cb339258c LIKE 过滤器转义修复:日志搜索含 %/_ 的输入不再被当通配符;pkg/util 新增 EscapeLike 共享助手 + 单测 ryan 2026-08-26 10:41:56 +08:00
  • 63007fc8c7 全仓 race 扫描发现 upload/cache 监听器 DATA RACE:捕获 redis 客户端消除全局读竞争 + Stop 等待 done + 同型监听器(oauth×2/repository×2)加固 ryan 2026-08-26 10:24:52 +08:00
  • 4f8e7e66e3 修复 frps/frpc TOML 配置注入:新增 protocol.TOMLQuote 并在两处配置渲染全部使用 ryan 2026-08-26 10:01:33 +08:00
  • ed1efd3d54 补 wsClientCore 并发测试 + close() 防 nil conn 守卫 ryan 2026-08-26 09:53:42 +08:00
  • efd8268a5d websocket 三 client 结构体去重:嵌入共享 wsClientCore(close/enqueue 单份实现) ryan 2026-08-26 09:49:35 +08:00
  • 0dd2cf9e80 websocket 三 hub 去重:抽 runWritePump 共享写泵 + 合并 agent 广播函数为 broadcastAgent ryan 2026-08-26 09:39:30 +08:00
  • be5d067af9 auth_cache negative 缓存加上限防 DoS + relay/flared 删除重复 authenticateAccessToken 改用 agent 共享缓存版 ryan 2026-08-26 09:34:12 +08:00
  • 3e5f3cc562 autoresearch: 记录 #29-#38 实验日志(unconvert 修复、a11y 审计、未授权面安全修复) ryan 2026-08-26 09:11:03 +08:00
  • d73aa5f9f0 公开密码登录口按 IP 限制 10 分钟内最多 20 次失败,堵住未授权爆破。metric 持平 8。 ryan 2026-08-25 23:11:05 +08:00
  • c9fc9c0eea 公开 OAuth 登录/授权入口按会话限制 10 分钟内最多 20 个 state,堵住未授权 Redis 洪水。metric 持平 8。 ryan 2026-08-25 23:05:27 +08:00
  • cdc7474d7e 注册开关读取失败时改为关闭,堵住配置缺失时未授权开注册;OAuth 自动注册同样 fail-closed。metric 持平 8。 ryan 2026-08-25 22:59:20 +08:00
  • 983cce3e80 去掉公开 CAP 口硬编码默认密钥;SessionSecret 为空时拒绝签发/核销,防止未授权伪造 PoW。metric 持平 8。 ryan 2026-08-25 22:52:22 +08:00
  • 76e9d5b0e7 登录/注册/OAuth 回调统一走 SetLoginSession,保存前清空 Redis 会话 ID,堵住未授权会话固定。metric 持平 8。 ryan 2026-08-25 22:44:19 +08:00
  • 6b75706b8e 未授权登录口补哑 bcrypt 比较,用户不存在与密码错误耗时对齐;禁用账号不再返回不同文案,堵住用户枚举。metric 持平 8。 ryan 2026-08-25 22:30:37 +08:00
  • 59fd8cda7b 公开登录/注册邮箱验证码比较改为 SHA-256 后恒定时间 Compare,堵住未授权口的计时侧信道。metric 持平 8。 ryan 2026-08-25 22:21:01 +08:00
  • cb94081ebd 未授权 Agent 注册口的 discovery token 改为 SHA-256 后恒定时间比较,堵住计时侧信道;空 token / 末字节翻转用例同步补上。metric 持平 8。 ryan 2026-08-25 22:16:41 +08:00
  • 3de0a54d47 feat(a11y): 设置页无障碍审计并修复开关可访问名称 ryan 2026-08-17 00:02:51 +08:00
  • e7b8fb2f99 docs(i18n): 同步 24 篇旧英文文档与中文最新内容 ryan 2026-08-16 23:27:18 +08:00
  • 454542c1d0 docs(i18n): 恢复并补齐英文版 vitepress,README 默认改为英文 ryan 2026-08-16 23:18:29 +08:00
  • 580c51a73a refactor(i18n): ci ryan 2026-08-16 22:55:08 +08:00
  • 6b7df5a6b5 refactor(i18n): ci ryan 2026-08-16 22:51:06 +08:00
  • 497edfd564 refactor(i18n): fragments 为唯一源,主包改为生成物 ryan 2026-08-16 22:38:50 +08:00
  • d7d510ec97 chore(i18n): simplify cleanup and previewPublish labels in ops files ryan 2026-08-16 21:53:50 +08:00
  • f4ec58c0e6 Revert "chore(i18n): simplify cleanup and previewPublish labels in ops files" ryan 2026-08-16 21:53:23 +08:00
  • 2ba28417b3 chore(i18n): simplify cleanup and previewPublish labels in ops files ryan 2026-08-16 21:52:50 +08:00
  • 3f97193280 chore(docs): purge ryan 2026-08-16 21:44:28 +08:00
  • 2aa0a70762 chore(i18n): simplify cleanup and previewPublish labels in ops files ryan 2026-08-16 21:42:04 +08:00
  • 55c1fcd5f9 chore: format ryan 2026-08-16 21:39:25 +08:00
  • e5d2e4b6d5 fix(linux): cast stat.Bsize to int64 for accurate calculations ryan 2026-08-16 21:38:59 +08:00
  • 4f360cc7a9 Merge finalize branch: 03-frontend-any-cleanup ryan 2026-08-16 21:29:29 +08:00
  • da43de56ac Merge finalize branch: 02-axe-a11y-audit ryan 2026-08-16 21:29:29 +08:00
  • f538670e1f Merge finalize branch: 01-quality-sweep ryan 2026-08-16 21:29:29 +08:00
  • 2f60329886 后端与全仓代码质量清理(golangci 扩展集 · 测试质量 · 并发安全 · 文档同步) ryan 2026-08-16 21:23:37 +08:00
  • c76c5a697b 前端显式 any 类型清理 ryan 2026-08-16 21:23:38 +08:00
  • 9609bec8b0 前端 axe 可访问性审计 ryan 2026-08-16 21:23:37 +08:00
  • 9b89d3c630 Merge branch 'autoresearch/code-quality-2026-08-16' ryan 2026-08-16 21:15:13 +08:00
  • e87f445218 chore(quality): 记录 run #28 实验结果 ryan 2026-08-16 21:15:10 +08:00
  • 40eee778ac 前端显式 any 类型清理 2→0:Slot children?: any → ReactNode | MotionValue 联合(motion 真实类型),顺带修复潜在崩溃(原代码在 isValidElement 前访问 children.type,缺失时 TypeError,现无效 children 返回 null,hooks 无条件合规);useControlledState Rest extends any[] → unknown[]。两处 eslint-disable 注释删除。tsc/eslint/vitest 121 全绿。 ryan 2026-08-16 21:14:46 +08:00
  • 6c128e0be5 axe a11y 审计扩展到最复杂认证路径:注册页开启人机验证(CapWidget 自动求解→已通过状态 + 完整表单),mock getCapToken 避免 jsdom 无 Worker 环境限制。零违规。vitest 120→121 全绿。 ryan 2026-08-16 21:05:36 +08:00
  • 7d03154a8a axe a11y 审计扩展到登录 OTP 验证表单(input-otp 分段输入,FieldLabel htmlFor 正确关联,零违规)与人机验证小部件手动模式(零违规)。环境修复:tests/setup.ts 加 ResizeObserver mock(input-otp 依赖,jsdom 未内置)。vitest 118→120 全绿。 ryan 2026-08-16 20:58:24 +08:00
  • 7f8e257d33 前端真实 a11y 审计:新增 axe-core(devDep)+ tests/a11y.test.tsx,对登录页与注册页渲染完整表单后运行 axe 结构性规则(label/button-name/heading-order/landmark/aria),两页均零违规。摸清并处理了渲染依赖(UserProvider 会话检查、publicConfigQuery 门控、configBool 字符串语义)。vitest 116→118 全绿。 ryan 2026-08-16 20:49:55 +08:00
  • 4d78bc1c38 chore(quality): 会话收敛收尾 — 更新 prompt/ideas 记录最终状态 ryan 2026-08-16 20:15:08 +08:00
  • 1813bbdba3 chore(quality): checks.sh 增加 license-check 门禁(防 SPDX 头再缺失) ryan 2026-08-16 20:11:15 +08:00
  • aa4faddade 补齐 131 个 .go 文件的 SPDX license 头(repo 自带 make license 约定,早于约定新增的文件含 2 个生产文件;纯注释插入零行为影响),make license-check 转绿。go mod tidy -diff 确认干净。 ryan 2026-08-16 20:09:24 +08:00
  • ab70633e9f checks.sh 新增并发密集包 -race 门禁(8 个快速包,全仓 -race 清零后纳入防回归;frpc/frps 慢套件留作周期全量验证)。核查 7 处 t.Skip 均为合法环境门控。 ryan 2026-08-16 20:01:40 +08:00
  • e1b439d6a5 全仓 go test -race 扫描(93 包)→ 全绿。修复 6 类数据竞争:frpc/frps 测试的锁外读与并发 Wait;oauth/repository 4 个 Pub/Sub 监听器 goroutine 读可变包变量(局部捕获 + done 通道等待);oauth 测试换 db.Redis 前停监听器;【真实生产 bug】tls 响应快照与异步续签 goroutine 并发写 cert 竞争(先快照再起 goroutine);upload/cache 监听器 goroutine 内读 db.Redis(调用方捕获)。 ryan 2026-08-16 19:56:19 +08:00
  • 4962bf90d1 两处真实质量修复:(1) 过期 swagger 文档重新生成(status_2xx/4xx/5xx_count 字段随 a4dd5ca9 加入后未同步 docs,违反 repo 约定,swag init 后差异仅真实新增字段);(2) generate-themes.js 输出补尾换行,themes.json 构建可复现(此前每次 build 弄脏工作树)。验证 next build 成功、musttag/tagalign 调查无真实问题。 ryan 2026-08-16 19:19:04 +08:00
  • c455be3002 基准扩展第 5 维度(文档化):前端 vitest 失败数纳入 total_issues(vitest_failed=0, total=116)。5 维全部处于下限,total=8 不变。 ryan 2026-08-16 19:11:59 +08:00
  • ab0e5fecf2 chore(quality): 基准扩展第 5 维度 — 前端 vitest(全绿后纳入防回归) ryan 2026-08-16 19:09:58 +08:00
  • f5c9da03f4 前端测试套件 44 失败→全绿:10 个测试文件补 NextIntlClientProvider 包装(含 React19 createElement 类型修复、.ts→.tsx 重命名);修复真实 i18n ICU bug(githubUrlInvalid 的 {owner}/{repo} 未转义导致生产渲染成 key,zh/en + fragment 4 文件同步转义);更新 2 处过期测试期望。vitest 116/116 + tsc + eslint 全绿,checks.sh 增加前端测试门禁。 ryan 2026-08-16 19:08:21 +08:00
  • a16be014d4 修复 frpc 进程生命周期真 bug(agent 生产代码):exec.CommandContext 默认只杀直接子进程,被杀 shell 的孤儿 sleep 继续持有 stderr 管道,cmd.Wait() 阻塞到其自然退出(Stop/重启可挂起秒级)。改 Setpgid 进程组 + Kill(-pid) 整组击杀。连带修复两个测试 bug(Manager 拥有 Cmd 的并发 Wait 竞态 → Signal(0) 探测;ssl_renew 用 miniredis 替代 init() 创建的真实 redis 客户端)。go test ./internal/... ./pkg/... 全绿,checks.sh 升级为真实测试门禁。 ryan 2026-08-16 18:47:46 +08:00