-
Notifications
You must be signed in to change notification settings - Fork 275
feat: card-forge 模块 + 三体融合配套 + 对话掉落卡片闭环 & 社区登录 (M1/M2/M5) #1542
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
wehos
merged 189 commits into
Project-N-E-K-O:main
from
LyaQanYi:claude/card-forge-extract
Jul 28, 2026
Merged
Changes from 1 commit
Commits
Show all changes
189 commits
Select commit
Hold shift + click to select a range
dfb78fa
feat: 新增「奇遇铸造机」独立模块 (card-forge)
LyaQanYi d392b05
fix(card-forge): codex P1/P2 — 别让无 name 的同步擦掉已存猫娘名
LyaQanYi 0eeb45e
fix(card-forge): 处理 CodeRabbit 9 条 + 1 nitpick
LyaQanYi 841ea48
fix(card-forge): codex P1/P2 — uvicorn reload app_dir + 非 Windows 守卫
LyaQanYi 10fe836
fix(card-forge): CodeRabbit 第二轮 4 条
LyaQanYi fe7ec12
fix(card-forge): _ensure_windows 改抛 RuntimeError 避免绕过 entry except
LyaQanYi 93d461f
fix(card-forge): codex P1/P2 — route log 脱敏 + GET 不返 avatar dataUrl
LyaQanYi 0bb37f3
fix(card-forge): CodeRabbit/Codex 第四轮 5 条
LyaQanYi b30deff
fix(card-forge): stop-card-forge.ps1 加 UTF-8 BOM
LyaQanYi 6a5419b
feat(system): 暴露 /api/system/client-id + /api/system/social/config
LyaQanYi f2a9dae
fix(system): CodeRabbit 两条 minor
LyaQanYi fddd4e6
feat(M2-h/i/j): 社交按钮入口 + facts_sync worker + 配额掉落引擎(NEKO 侧)
LyaQanYi 3dadfda
feat(M5-g): 卡片本地缓存 puller(NEKO → N.E.K.O.Servers)
LyaQanYi 35f78dc
fix(M2-i): facts_sync 自动 register client + importance 归一化
LyaQanYi 07692c4
fix(M2-i): facts_sync 异步化磁盘 IO 解 async-blocking lint
LyaQanYi 6f84f5f
feat(M6-h): frontend social UI 接入 — 红点 badge + DROP_ANIMATION
LyaQanYi 2f57a50
fix(M6-h): social 红点用 MutationObserver 覆盖按钮重挂
LyaQanYi de97867
feat(card-drop): 本地 → 云端开卡代理路由 (P1a)
LyaQanYi d7dcbad
feat(card-drop): 对话掉落开卡演出(前端 + 触发)(P1)
LyaQanYi 8cb4b14
feat(card-drop): 收集册(卡册)+ 卡片详情 (P2)
LyaQanYi 3c6a59a
fix(card-drop): 模态/卡册可点击(宿主 body pointer-events:none 穿透)
LyaQanYi 65a6b18
refactor(card-drop): 候选走本地记忆 + 移除 Electron 卡册(瘦客户端)
LyaQanYi 68dca96
feat(card-drop): NEKO 邮箱密码登录社区 + JWT 接抽卡 + 登录提示(登录打通 chunk2)
LyaQanYi 450a301
fix(social/screen): 修好猫娘社区按钮 + 恢复屏幕共享入口
LyaQanYi 140a2aa
feat(card-drop): NEKO Steam 登录社区 — /steam-login + /steam-callback + 前…
LyaQanYi 874821b
fix(card-drop): 登录如实反馈 bind-client 结果,不再谎报「已存入卡册」
LyaQanYi ba5db13
fix(social): 外链打开加协议校验 + 浏览器兜底保留用户手势(CodeRabbit #1542)
LyaQanYi 2afe83f
Merge remote-tracking branch 'upstream/main' into claude/card-forge-e…
LyaQanYi e1ba64e
fix(layering): WS 广播经事件总线 seam,消除 main_logic/main_routers → app 倒挂
LyaQanYi 78bc967
Merge upstream/main into claude/card-forge-extract
LyaQanYi a888a53
feat(card-forge): add GET /arena/active-character for community Beta …
LyaQanYi 7312ebd
feat(card-forge): /arena/active-character 同时返回 master_name
LyaQanYi 241a804
Merge branch 'main' into claude/card-forge-extract
LyaQanYi 4d4cff3
Unify screen sharing with voice controls
breakkh811-star 19a1519
feat(card-drop): 券经济 NEKO 侧 —— dropper 退役判定 + /credits 代理 + 稀有度音效
LyaQanYi 2a2ce44
Merge branch 'main' into claude/card-forge-extract
LyaQanYi da48fb0
docs(card-drop): 同步 dropper.py 模块 docstring —— 已退役为 no-op(CodeRabbit …
LyaQanYi 0e9c41d
feat(audio-capture): 优化麦克风设备选择弹窗样式和功能,增加设备选项动态加载
breakkh811-star 3e2acaf
Merge branch 'claude/card-forge-extract' of https://github.com/LyaQan…
breakkh811-star fc592d9
feat(social): 打开社区改为应用内嵌「拟态窗」(iframe 模态),不调系统浏览器
LyaQanYi fd14db3
fix(social): 嵌入社区 iframe 加 http(s) 协议白名单 + sandbox + referrerpolicy —…
LyaQanYi 1829bb4
fix(social): openSocialEmbed 返回成功/失败,调用方据此提示 — CodeRabbit #1542
LyaQanYi 5655e7d
refactor(card-forge): 本地 :3001 路由 /arena/* 改名 /forge/*(arena 玩法未实装,名不副实)
LyaQanYi 3b837e3
feat(ui): 添加猫娘社区按钮及其图标,更新多语言支持
breakkh811-star e758b0a
Merge branch 'claude/card-forge-extract' of https://github.com/LyaQan…
breakkh811-star 84b27e8
fix(icons): 更新猫娘社区图标
breakkh811-star bc8edaf
feat(card-drop): 添加卡片等级显示,更新样式以增强可读性
breakkh811-star e0e4d6e
fix: make social embed window draggable
breakkh811-star 3494175
fix(cors): 移除不必要的 CORS 允许源
breakkh811-star 7495fe2
feat(social-embed): 增强拖动功能,添加指针事件处理和缓存破坏机制
breakkh811-star e3e3928
feat(resize): 添加窗口调整功能,增加边缘调整手柄和样式支持
breakkh811-star cce4480
fix: address card forge review nits
breakkh811-star a1ff7f8
merge upstream main into card forge branch
breakkh811-star be2f657
fix: satisfy docstring language gate
breakkh811-star f3f4ab0
fix: 修改社交按钮行为,使用 Electron 打开链接以避免被拦截
breakkh811-star 46fb5d2
Merge upstream/main into claude/card-forge-extract
LyaQanYi ce6b053
fix(review): 处置 #1542 自动评审(路径穿越/状态码/隐私/CORS/重复导入)
LyaQanYi 7b62315
refactor(card-drop): 退役旧对话掉落直抽路径(券经济取代)
LyaQanYi 5dc4a5a
fix(steam): 登录改 code 换 token + state 防 login-CSRF(配 Servers #17)
LyaQanYi f4a9a82
fix(review): 处置 #1542 二轮评审(状态码一致性/盘符穿越/Steam 标记健壮性)
LyaQanYi f3871a0
feat(voice): 「语音时自动共享屏幕」改可选,默认关(隐私门,处置 #1542 Codex P1)
LyaQanYi a946eaa
Merge branch 'claude/card-forge-extract' of https://github.com/LyaQan…
breakkh811-star 854bc08
feat(card-drop): PKCE for Steam community login native code exchange
LyaQanYi 930fc9d
feat(card-forge): 增加角色参考图支持,优化头像捕获逻辑
breakkh811-star 4274369
feat(forge-drop): 迷你券卡掉落 UX + 退役 DROP_ANIMATION
LyaQanYi 64e90e9
Merge upstream/main into claude/card-forge-extract
LyaQanYi c89cb45
fix(card-drop): satisfy docstring-cjk gate for Steam PKCE helpers
LyaQanYi e3f25ba
feat(server): 添加从主服务器获取角色参考数据的功能
breakkh811-star b0c6774
Merge branch 'claude/card-forge-extract' of https://github.com/LyaQan…
breakkh811-star 94da56a
feat(card-drop): 添加社区网页登录态同步功能及相关重试机制
breakkh811-star 3947da2
Merge remote-tracking branch 'upstream/main' into claude/card-forge-e…
LyaQanYi 2bc6555
fix(card-forge): secure session sync and share facts
LyaQanYi 3e933bb
fix(card-forge): address security review findings
LyaQanYi 886290a
Merge branch 'main' into claude/card-forge-extract
LyaQanYi 40da389
fix(card-forge): close remaining review gaps
LyaQanYi 743b01b
fix(card-forge): address remaining P2 review comments
LyaQanYi 6e3b574
fix(card-forge): resolve platform app-data paths
LyaQanYi 39d3b71
fix: preserve social popup handle before navigation
LyaQanYi 581e7f7
fix: resync cached avatar after character switch
LyaQanYi 3ce10c1
fix: persist client id before facts sync
LyaQanYi 98a9cfc
fix: complete credit drop and client binding flows
LyaQanYi c1d2109
fix: secure local identity state
LyaQanYi 0d06b50
fix: expose screen share toggle in mic popup
LyaQanYi 9ada9b8
fix card cache identity and mic permission retry
LyaQanYi e8f7816
fix: reconcile forge credit drop UI
LyaQanYi e77fd0b
merge: reconcile card forge with latest main
LyaQanYi 5112075
merge: reconcile card forge with upstream main
LyaQanYi 695e59b
fix(warthunder): address review regressions
LyaQanYi b13c569
fix: harden local integrations and runtime fallbacks
LyaQanYi 57b1060
feat: reorder onboarding tutorial days
LyaQanYi ed13815
test: align onboarding regression contracts
LyaQanYi c4a017d
merge: sync upstream main
LyaQanYi ce19b05
fix: add missing chat aria labels and locale copy
LyaQanYi d716ecb
fix: align locale diff ranges
LyaQanYi 046eca9
fix: sanitize client id endpoint errors
LyaQanYi f7a89a2
fix: preserve card forge provider type
LyaQanYi 217c45d
Merge upstream/main into claude/card-forge-extract
LyaQanYi 7e86c73
fix: guard community logout and refresh locales
LyaQanYi 1056b20
fix: derive War Thunder CORS origins from runtime port
LyaQanYi 9bfdcd9
test: fix Card Forge avatar script path
LyaQanYi 6628aed
Merge upstream/main into claude/card-forge-extract
LyaQanYi 3e72bcd
Merge branch 'main' into claude/card-forge-extract
LyaQanYi b127843
fix(auth): harden native social session bridge
LyaQanYi ad2b60d
Merge remote-tracking branch 'upstream/main' into claude/card-forge-e…
LyaQanYi efec6f8
fix(security): harden main server event boundaries
LyaQanYi 814b261
test(privacy): cover stderr event leaks
LyaQanYi 5a86ec6
fix(card-drop): validate local request context
LyaQanYi 824cd97
fix(startup): defer sync workers until storage is ready
LyaQanYi 36bad70
fix(card-drop): authorize local password mutations
LyaQanYi e741acb
fix(auth): prove local client ownership before bind
LyaQanYi 89432ac
fix: address forge and sync review feedback
LyaQanYi c2ba64d
fix: honor main server port in card forge
LyaQanYi 73a2f58
fix: persist client binding device proof
LyaQanYi be06de5
fix: honor forge runtime configuration
LyaQanYi c1c1e0e
test: address card forge review feedback
LyaQanYi 2d61f81
fix: reject stale forge story hints
LyaQanYi 567dfd7
fix: align tutorial targets and runtime ports
LyaQanYi d381c2d
fix: sync forge character before avatar capture
LyaQanYi a1bf8c1
fix: retry forge reference sync failures
LyaQanYi a5d7144
Merge upstream/main and fix Windows plugin CI
LyaQanYi 3ce97bf
test: isolate Windows port config in CORS regression
LyaQanYi 041ca78
Merge branch 'main' into claude/card-forge-extract
LyaQanYi 7ff4cf5
feat: 添加本地锻造券管理逻辑及相关路由
breakkh811-star 3d17226
Add unit test for card maker in embed mode
breakkh811-star 8b70acb
Merge branch 'claude/card-forge-extract' of https://github.com/LyaQan…
breakkh811-star b08d913
feat: integrate community OAuth for desktop with PKCE support
LyaQanYi 7d3e382
Merge branch 'upstream/main' into claude/card-forge-extract
LyaQanYi a7afa61
fix(merge): resolve CI failures after upstream merge
LyaQanYi b87f909
test: normalize CRLF before stripping closure I. prefix
LyaQanYi 7a6f981
merge: integrate latest upstream/main
LyaQanYi 79e6fc1
fix(card-forge): address review edge cases
LyaQanYi 6395969
chore: update code structure and remove redundant changes
breakkh811-star 92a816f
Merge branch 'claude/card-forge-extract' of https://github.com/LyaQan…
breakkh811-star 99d4070
fix(memory): address review feedback
LyaQanYi e8c5055
Merge branch 'main' into claude/card-forge-extract
LyaQanYi d0e22d7
fix: honor desktop port config in card forge
LyaQanYi 91b2de5
fix: address OAuth and mic review feedback
LyaQanYi a3dae9c
fix: address async OAuth review feedback
LyaQanYi 405f538
fix: fail closed on stale forge character state
LyaQanYi 29a5259
Merge remote-tracking branch 'upstream/main' into claude/card-forge-e…
LyaQanYi 6ab850a
fix: point desktop community defaults at production hosts
LyaQanYi fff7b4f
fix: open community feed in Electron framed window
LyaQanYi b7132d8
Merge branch 'main' into claude/card-forge-extract
LyaQanYi f73afdc
fix: guard popup screen sharing behind voice
LyaQanYi 58cdd31
fix: offload card-drop credential I/O
LyaQanYi e11b80f
fix: handle embed and locale review feedback
LyaQanYi d4f62d7
fix: offload OAuth credential persistence
LyaQanYi 830fb7b
fix: make OAuth credential persistence transactional
LyaQanYi 1c968d8
Merge upstream/main into claude/card-forge-extract
LyaQanYi 2bfe377
feat(audio-capture): enhance microphone action panel with hover funct…
LyaQanYi 7320a8e
feat(audio-capture): implement screen share toggle button with pixel …
LyaQanYi c25965c
fix: prune detached screen share toggles
LyaQanYi b580cd5
fix: serialize desktop social session writes
LyaQanYi 424a0ff
Merge remote-tracking branch 'upstream/main' into claude/card-forge-e…
LyaQanYi 164a06c
fix: address post-merge review findings
LyaQanYi 59dab8a
fix: align forge story request timeout
LyaQanYi 3371821
fix: surface integration worker startup failures
LyaQanYi 66d2bd2
fix: preserve traditional Chinese region routing
LyaQanYi e44ea2c
fix: address card forge review feedback
LyaQanYi 6e563d1
fix: address follow-up card forge reviews
LyaQanYi 6ccb0d8
fix: address final card forge review
LyaQanYi 9ae2b04
fix: revoke OAuth tokens at saved issuer
LyaQanYi 17ad731
fix: address latest card forge reviews
LyaQanYi 454b0f5
test: harden memory language regressions
LyaQanYi 0d0ae7d
Merge branch 'main' into claude/card-forge-extract
LyaQanYi 8ed020f
fix: recover stale facts sync registration
LyaQanYi 5a871dc
fix: fence system client credentials
LyaQanYi 311d673
fix: isolate pending character sessions
LyaQanYi 65d8ee6
test: strengthen character capture contract
LyaQanYi 5c5fc63
fix: harden oauth status handling
LyaQanYi 07f3e39
refactor: relocate card-forge into the frontend build tree
LyaQanYi 68d3cc1
fix(card-forge): address review feedback
LyaQanYi b9eeafb
fix(card-forge): match URLSearchParams length
LyaQanYi d6886cf
fix: isolate memory locale and launcher ports
LyaQanYi 2ed5e0a
fix: tolerate non-UTF-8 port config
LyaQanYi 9f2f19f
fix(build): clarify frontend production boundaries
LyaQanYi 3649570
test(build): enforce card-forge exclusion
LyaQanYi 726bbff
fix(card-forge): address responsive and credit review
LyaQanYi 21c93f1
fix(card-forge): align stop ports and mobile scaling
LyaQanYi 0e7d00a
fix(card-forge): stop only owned process trees
LyaQanYi 9e8fbe3
fix(avatar): reconcile mobile screen share state
LyaQanYi 42db96e
test(card-forge): bind screen sync assertion to finally
LyaQanYi 1be1954
refactor(prompts): simplify fact extraction prompt language handling …
LyaQanYi 2ee3ba7
Merge upstream/main into claude/card-forge-extract
LyaQanYi 31fd301
fix(review): complete browser OAuth handoff
LyaQanYi a026a97
fix(review): harden OAuth and card cache
LyaQanYi 237066e
fix(review): bootstrap card forge frontend
LyaQanYi 3b319fa
fix(ci): unblock unit pytest — rename card_forge scripts + Windows en…
LyaQanYi 529c825
Merge origin/main into claude/card-forge-extract
wehos File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| <!doctype html> | ||
| <html lang="zh-CN"> | ||
| <head> | ||
| <meta charset="UTF-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>奇遇铸造机 · NEKO</title> | ||
| </head> | ||
| <body> | ||
| <div id="root"></div> | ||
| <script type="module" src="/src/main.jsx"></script> | ||
| </body> | ||
| </html> |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.