mygui
5619cb150e
Merge branch 'main' into oa_approval_list_by_admin
2026-08-20 09:28:43 +08:00
前津
575303a5b0
docs(skill): remove stale group role flag guidance
2026-08-19 19:40:41 +08:00
mygui
a0495c169b
Merge branch 'main' into oa_approval_list_by_admin
2026-08-19 18:50:35 +08:00
Anonymity-0
3e481d296c
Merge branch 'main' into feat/chat-group-role-single-flag
2026-08-19 18:49:59 +08:00
xlb1130
84036678dd
Merge branch 'main' into fix/85564002-chat-group-role-single-flag
2026-08-19 17:26:10 +08:00
mygui
586ad0a5df
Merge branch 'main' into oa_approval_list_by_admin
2026-08-19 14:41:40 +08:00
恋川
109a2891de
Merge remote-tracking branch 'upstream/main' into feat/recruit-job
2026-08-19 13:48:45 +08:00
炳昱
2ffddbd5a0
feat(event): support OA approval CC events
2026-08-19 12:08:35 +08:00
mygui
ab0d1d2ad6
Merge branch 'main' into oa_approval_list_by_admin
2026-08-19 10:17:51 +08:00
恋川
510b120630
fix(recruit): require job creator identity
2026-08-19 09:31:26 +08:00
恋川
f253f865c7
Merge remote-tracking branch 'upstream/main' into feat/recruit-job
2026-08-19 09:29:22 +08:00
mingyue.gmy
2dd724f1e1
feat(oa): add approval list-by-admin with string time contract
...
- Add dws oa approval list-by-admin leaf with simple flags and
advanced --request modes backed by get_process_instances_by_admin
- Send startTime/endTime as yyyy-MM-dd HH:mm:ss strings per the
2026-08 MCP contract update; ISO-8601 flag inputs auto-convert
- Enforce pageSize cap (20) and string time format/order client-side;
PreRunE reports flag-group violations in Chinese before Cobra's
built-in English validation
- Extend coverage tests and document the command in mono/multi OA
skill references
2026-08-18 21:10:23 +08:00
wxianfeng
4f4ea43549
fix: reconcile primary migration with current main #85349380
2026-08-18 19:25:17 +08:00
wxianfeng
4fd67c52dc
docs: update primary parameter guidance to #85349380
2026-08-18 19:25:17 +08:00
长真
26638cbd98
fix(chat): complete group role set-user flag compatibility
2026-08-18 17:44:51 +08:00
长真
6c8e7e082b
fix(chat): expose single group role set flag
2026-08-18 17:13:50 +08:00
昭逸
8609963ef8
Merge remote-tracking branch 'upstream/main' into oa_attachment_dws
...
to #666
2026-08-18 17:03:46 +08:00
恋川
5b9234d8fe
fix(recruit): align job creation contract
2026-08-18 11:16:04 +08:00
昭逸
ef2c3ac163
Merge remote-tracking branch 'upstream/main' into oa_attachment_dws
...
to #666
2026-08-18 10:41:42 +08:00
李晟
43f0813acd
Merge branch 'main' into codex/aitable-record-stats
2026-08-18 10:10:10 +08:00
恋川
06b4f3ba31
merge main into feat/recruit-job to #85340676
2026-08-17 20:00:13 +08:00
昭逸
5742239c74
Merge remote-tracking branch 'upstream/main' into oa_attachment_dws
...
to #666
2026-08-17 17:24:06 +08:00
恋川
80bca147e0
Merge remote-tracking branch 'upstream/main' into feat/recruit-job
2026-08-17 17:21:31 +08:00
李晟
4ec2635830
Merge branch 'main' into codex/aitable-record-stats
2026-08-17 17:18:31 +08:00
Anonymity-0
9f8c525008
Merge branch 'main' into feat/bot-group-reply
2026-08-17 16:59:05 +08:00
fengbai
9a6b7d4d41
Merge branch 'main' into feat/calendar-event-share-info
2026-08-17 16:41:08 +08:00
前津
5947016cc1
feat(chat): support bot group message replies
2026-08-17 16:09:08 +08:00
李晟
1a58e3c3e6
Merge branch 'main' into codex/aitable-record-stats
2026-08-17 15:28:57 +08:00
恋川
208a6c0273
Merge remote-tracking branch 'upstream/main' into feat/recruit-job
2026-08-17 15:28:04 +08:00
昭逸
ea92e0212b
merge main to #666
2026-08-17 15:17:01 +08:00
Dennis
e5bf332b05
fix(doc): address readback review findings
2026-08-17 14:48:06 +08:00
昭逸
857279e076
将附件相关dws迁移到oa.go中,并补充skill描述 to #666
2026-08-17 14:03:42 +08:00
xiatian
92195a58a3
fix(sheet): align SourceRange review contract
2026-08-15 13:40:47 +08:00
chichuan
05868610f0
Merge branch 'main' into codex/sheet-dropdown-source-range
2026-08-14 18:33:24 +08:00
李晟
ef27877628
Merge branch 'main' into codex/aitable-record-stats
2026-08-14 17:47:44 +08:00
chichuan
7b7bd556e9
Merge branch 'main' into feat/calendar-event-share-info
2026-08-14 17:43:49 +08:00
fengbai
07aa2c883a
fix(calendar): address CR comments for share-info
...
- Fix Example indentation (tab -> 2 spaces)
- Remove unsubstantiated default en-US from --language help/docs
- Add test asserting calendarId/language are omitted when only --id is passed
2026-08-14 15:10:20 +08:00
镜玄
5abef59c7c
feat(aitable): add server-side record statistics
2026-08-14 14:46:21 +08:00
chichuan
a6f69a06ce
fix(drive): --latest 扫描不完整时拒绝产出 Top-N 并杜绝 sortTime 泄露
...
P1-a sortTime 泄露进输出契约 —— 采集端无条件写内部排序字段 sortTime,而 emit 仅在单层(reqDepth==1)经 stripDriveDepthDecorations 整体剥离。depth>1 的所有路径都把 sortTime 漏进 stdout;#971 引入的 --type/时间区间过滤同样读该字段,泄露面随之扩大。修法:在 emitDriveDepthResult 尾部无条件 delete,一处覆盖正常 emit / SIGINT 取消 / unrecoverable partial 三条路径。采集端保持不动(内部字段,排序与筛选时才读)。
P1-b 不完整扫描仍以退出码 0 产出「Top-N」 —— 尾部拒绝 guard 只拦全局截断,不拦递归途中目录读取失败;后者把可恢复失败记进 errs[] 后照常 emit,Top-N 落在漏扫子树的不完整集合上却冒充全局最新。修法:guard 扩为 latest>0 && (truncated || len(errs)>0),走新增 driveLatestIncompleteError(LATEST_SCAN_TRUNCATED / LATEST_SCAN_INCOMPLETE 双 token,二者同真时都带,目录失败详情排在截断之前);unrecoverable 分支在 latest>0 时不吐 partial,直接回根因错误。
恢复命令必须能原样复现原候选集:driveLatestScope 快照查询域(--workspace / --space-id)、扫描根(--folder)与全部过滤条件(--pattern / --type / --start / --end),缺任一项,用户照抄后就在另一个集合上取 Top-N,看起来成功却答非所问。扫描根取 runDriveListDepth 实际使用的 rootFolderID 而非重读 flag:用户可能传 URL,解析后的 ID 才是真正被扫的目标。「按原范围重跑」原样带回原 --folder,原调用在空间根时不带。
拒绝产出后 errors[] 不再进 stdout,目录名与服务端错误文本从 JSON(编码会转义)挪进纯文本 stderr —— 原样透传会让 ANSI/OSC 序列被终端执行,可清屏、伪造彩色成功、隐藏后续输出、改窗口标题,Agent 场景还会污染上下文。改为复用仓库既有的 output.SanitizeForTerminal(canonical 实现在 pkg/validate),再把它按设计保留的换行与制表符折成空格。Reason 无需处理:它是 classifyDriveDepthReason 的固定三值映射。latest=0 的既有路径仍把原值放进 errors[] JSON,不受影响。
Windows 下恢复命令的注入面:POSIX 单引号在 cmd.exe 里不是引用,--space-id 传入 sp-7 加 & 加 whoami 时,单引号包裹后的片段粘贴进 cmd 仍会执行 whoami;而唯一做真 shell 往返验证的测试被 build tag 排除在 Windows 之外。不采用「按目标 shell 生成引用」的路线:cmd.exe 的双引号挡不住 %VAR% 展开,PowerShell 的内嵌单引号写法又与 POSIX 不同,且生成命令时无法知道用户会粘贴进哪个 shell。改为平台分流 —— POSIX 构建继续单引号内联;Windows 构建只内联全部由白名单字符组成的值,含元字符的值不进命令,降级为占位符加 strconv.Quote 展示行并标注非可执行(与 internal/auth 展示 profile 标识的既有做法同一思路)。安全性由此不再依赖引用是否正确,而依赖「不受信任的值不进入可执行命令」这个更强的不变量。
顺带修掉白名单里的一个漏洞:% 原本免引用(当初为 URL 的 %20),但 cmd.exe 会无条件展开 %VAR%,于是 %PATH% 这类值会被判为安全并原样内联。% 已移除,POSIX 侧只是多一对无害引号;并新增逐字符断言,锁定白名单不含 POSIX sh / PowerShell / cmd.exe 三套元字符,同时作为该缺陷的回归锁。
两条平台策略写成与构建平台无关的纯函数,平台文件只做一行编译期绑定,因此 Windows 形态能在 POSIX 机器上端到端验证 —— 否则该分支在 POSIX 上永不可达,平台覆盖率门禁会直接报未覆盖(第一版实测 97.3451%)。另做了一次本地全量模拟:临时把 POSIX 绑定切到 Windows 策略后跑全部测试,唯一失败的是专门断言绑定的那条,据此确认没有断言会在 Windows runner 误报,并借此修掉两条原本只在 POSIX 下成立的断言。
SIGINT 取消路径刻意不套用该防线:取消由用户主动发起、退出码 130 已明确告知结果不完整,partial 是用户的预期产物。已加注释说明并补测试锁定该契约。
skill 文档(mono/multi 两份 drive.md)原在过滤章节声明「触顶截断 truncated=true、退出码 0」,同章节又说明可与 --latest 组合 —— 组合后该描述不再成立,故补一条拒绝产出的说明,并注明 Windows 下的占位符形态,避免 agent 按旧契约预期退出码或误解析。
测试命名统一 TestCrossPlatformCoverage 前缀:平台覆盖率门禁 run-platform-coverage-gate.sh 只跑匹配 ^(TestAllShortcuts|TestCrossPlatformCoverage) 的测试。本 PR 因新增带平台名的 go:build 文件被判定 platform_sensitive,Coverage (macOS) / (Windows) 由 SKIPPED 转为实跑;不带该前缀时新增语句在平台 profile 里是零覆盖,实测 69.0476%,改名后 100.0000%(当前 114 条语句仍为 100%)。已在测试文件头写明该前缀是门禁约定而非命名风格。
发布说明按 .changes fragment 机制落在 .changes/899-drive-latest-incomplete-scan.md,不改 CHANGELOG.md。
2026-08-14 14:02:36 +08:00
恋川
b447aac84b
Merge remote-tracking branch 'upstream/main' into feat/recruit-job
2026-08-14 11:31:33 +08:00
chichuan
41a3724e9e
Merge branch 'main' into feat/drive-sync-family
2026-08-13 22:07:16 +08:00
chichuan
8c00068364
fix(drive): harden folder mirror safety
2026-08-13 15:49:59 +08:00
卷心菜
75bd518447
fix(drive): honor --type folder in --latest top-N and harden filter mutexes
2026-08-13 15:19:46 +08:00
卷心菜
9c59206d2f
feat(drive): add drive list --type/--start/--end client-side filtering
2026-08-13 14:12:13 +08:00
xiatian
2778bef5bd
feat(sheet): support source range dropdowns and read completion
2026-08-13 11:46:58 +08:00
恋川
19e19bcd2b
feat: 新增招聘职位管理 to#85340676
2026-08-13 10:26:03 +08:00
fengbai
6a4744073c
feat(calendar): add event share-info command
2026-08-12 21:07:59 +08:00
chichuan
1dabfa1dc6
fix(drive): keep pull partial results on stdout
2026-08-12 20:48:45 +08:00
chichuan
9818f7779a
Merge branch 'main' into feat/drive-sync-family
2026-08-12 20:08:13 +08:00
chichuan
21c6581975
docs(drive): keep confirmation out of examples
2026-08-12 18:31:09 +08:00