WIP: feat/支持引用skill #364
Closed
k88936
wants to merge 114 commits from
feat/more-ref into master
pull from: feat/more-ref
merge into: GenarrativeAI:master
GenarrativeAI:master
GenarrativeAI:rm/design-v2
GenarrativeAI:codex/agc-project-upload-download
GenarrativeAI:feat/jenkins-mac-build
GenarrativeAI:feat/gptimage2to2.5
GenarrativeAI:feat/tribo3d-integeration
GenarrativeAI:feat/agc-organize-assetkind
GenarrativeAI:feat/mac-universal-package
GenarrativeAI:feat/ui-editor-v3
GenarrativeAI:refactor/split-direct-project
GenarrativeAI:fix/agc-acceptance-followup
GenarrativeAI:feat/agc-canvas-acceptance
GenarrativeAI:fix/ref-persistent
GenarrativeAI:feat/bgfilter-api
GenarrativeAI:fix/ci
GenarrativeAI:codex/platform-session-identity-credential-split
GenarrativeAI:fix/chat-state
GenarrativeAI:feat/Crt_Ws
GenarrativeAI:codex/fix-model-refresh
GenarrativeAI:feat/smart-ref-ui-res
GenarrativeAI:codex/preview-llm-router-config
GenarrativeAI:fix/stroke-width-regression-from-285
GenarrativeAI:agent-organize
GenarrativeAI:feat/expose-image2edit
GenarrativeAI:feat/game-agent-canvas-resource-workbench-v2
GenarrativeAI:feat/agc-new-workflow
GenarrativeAI:fix/agc-release-version-sync
GenarrativeAI:codex/shared-components-followup
GenarrativeAI:codex/agc-runtime-generation-reliability
GenarrativeAI:codex/game-agent-runtime-interaction-design
GenarrativeAI:feat/spine-sequence-export-v2
GenarrativeAI:codex/agc-platform-account-editor-api
GenarrativeAI:codex/game-agent-run
GenarrativeAI:codex/ui-spritesheet-durable-transaction-latest
GenarrativeAI:feat/art-agent-more-tools
GenarrativeAI:codex/editor-canvas-null-source-repair
GenarrativeAI:hotfix/editor-layout-2mib
GenarrativeAI:codex/showcase
No Reviewers
Labels
Clear labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Breaking change that won't be backward compatible
Something is not working
Documentation changes
Improve existing functionality
New functionality
This is security issue
Issue or pull request related to testing
Priority
Critical
1
The priority is critical
Priority
High
2
The priority is high
Priority
Low
4
The priority is low
Priority
Medium
3
The priority is medium
Reviewed
Confirmed
1
Issue has been confirmed
Reviewed
Duplicate
2
This issue or pull request already exists
Reviewed
Invalid
3
Invalid issue
Reviewed
Won't Fix
3
This issue won't be fixed
Status
Abandoned
3
Somebody has started to work on this but abandoned work
Status
Blocked
1
Something is blocking this issue or pull request
Status
Need More Info
2
Feedback is required to reproduce issue or to continue work
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
陶泥儿gameAgent
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: GenarrativeAI/Genarrative#364
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "feat/more-ref"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
close #236
review.txt 复核结果(2026-09-15)
说明:已先对照
docs/project-memory/plans/【里程碑】DirectProject Skill提及输入提示-2026-09-15.md和当前源码核验。[x]表示本轮已修复或确认意见已过时/不成立;[ ]表示保留给后续处理,未擅自改变高风险或跨层契约。1.
ResourceReferenceChip.tsx:28-34标题计算的嵌套三元表达式title属性中,使用两层嵌套三元表达式。chipTitle(reference)helper,用显式if分支计算标题并在 JSX 中调用。2.
ResourceReferenceInput.tsx:184-191前端内置 Skill 名称与后端白名单重复维护ResourceReferenceInput启动时通过 Tauri commandlist_agc_skill_catalog查询 Skill 名称和描述,再与启用的客户端扩展 Skill、调用方传入 Skill 合并去重并过滤。skill_pack中从经过校验的manifest.json派生AgcSkillCatalogEntry,注册为 Tauri command;前端删除BUILTIN_SKILL_REFERENCES,改为消费该 command 返回值。app-server 运行时仍继续执行自身的 Skill 发现/校验门禁,未新增生命周期改造。3.
ResourceReferenceInput.tsx:828-838Skill 选择重复引用节点插入流程@和 Skill$选择都要删除查询文本、插入原子节点和尾随空格、非范围选区时追加段落、关闭菜单。insertReferenceNode(reference, textNodeContainingQuery, closeMenu),两个选择处理器共用同一流程。4.
direct_codex_user_item/wire.rs:140-143Skill 名称允许./..导致路径段逃逸$,wire 转换再执行root.join(name).join("SKILL.md")。..时确实会把查找位置移出 Skill root;这是有效的安全问题,不应按普通风格意见忽略。.和..;结合已有路径分隔符拒绝,已阻断该输入形态的父目录逃逸。若未来放宽名称语法,仍应补充 canonicalize 后的 root containment 校验。5.
direct_codex_user_item/wire.rs:145-149type: "skill"是否被 app-server 接受type: "skill"、name和path。6.
direct_codex_user_item/wire.rs:125-126每个素材引用重复读取 manifestGameCreationAppManifest,但 turn wire 转换原先对每个素材引用再次读取文件。.iter()查找素材。8.
codex_app_server/mod.rs:4未使用的serde_json::Value导入serde_json::Value的全限定名使用,裸Value没有引用。9.
resourceReferences.ts:381-383引用列表 key 的嵌套三元表达式chatReferenceListKey原先用嵌套三元区分 resource、skill、runtime-region。chatReferenceKey风格不一致,但不改变 key 结果。if/早返回分支,保持原有字符串格式不变。10.
ResourceReferenceInput.tsx:229-239重复构造 content partcollectDraftParts已直接调用chatReferenceToContentPart(node.__reference),没有审查意见中描述的三层嵌套三元和重复对象构造。11.
validation.rs:41-43用 UTF-8 字节数限制 Skill 名称name.len(),而资源 ID 已使用chars().count()。name.chars().count() > 120。12.
wire.rs:151-157素材/运行区域摘要逻辑在两个转换函数中重复resource_reference_summary与runtime_region_summary,两个转换路径共享同一实现。23819d699cto8f5eab4da98f5eab4da9to5161c6eafb- 新增 direct_thread_wire.rs:DirectThreadItem / DirectThreadEvent / 订阅与历史切片全部改成 ts-rs 导出的 tagged enum,取代原大而全的可空结构体 - 删除 direct_thread_raw_item.rs,模块注册与直通引用改到 direct_thread_wire - 条目身份只看一个 itemId:工具条目的第二个 id 在 Rust 边界归一,不再对外暴露 - 删除 DirectProject 聊天事件里的 turn id:生命周期用无载荷的 turn.started / turn.completed{status} 表示 - append 直接接收 DirectThreadEvent 并返回同一事件,队列内部自算 seq - 请求事件改为携带 DirectThreadRequestKind,去掉字符串中转 - 思考增量走 ReasoningDelta 通道,与正文增量共用 item.delta - at 用 #[ts(as = "f64")] 对齐 Tauri JSON 通道的 number - 用 cargo test export_bindings 重新生成 project-workspace/generated 绑定- direct_codex_notification_event 收编 resolution / request / item / rawItem / Terminal 全部分支,并接收 turnId - 读取器删掉自己那份内联分类,只保留「必须有 turnId 才处理」与活动/正文节流 - agentMessage 缺 itemId 的告警与 direct-missing-item:{turnId} 兜底身份原样保留,避免行为变化 - 新增 direct_notification_classification_covers_the_reader_branches 钉住各分支;E2E 假 app-server 用例继续覆盖读取器5161c6eafbtoade1b7803e转向 #420
Pull request closed