Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
54b6035
追加家具相关功能
chou-kyoku Jun 3, 2026
e01148d
bug 修正
chou-kyoku Jun 3, 2026
8767649
外壳以及AI弹窗追加
wangdezihao-gaojunfeng Jun 3, 2026
bf20652
feat(dxf-import): toolbar entry point + needsReview badge
lily2019711 May 29, 2026
f5fec29
init
lily2019711 Jun 2, 2026
550d71e
fix 坐标问题
lily2019711 Jun 2, 2026
a60299a
UI 优化
lily2019711 Jun 2, 2026
a609a00
部分家具解析
lily2019711 Jun 2, 2026
373f144
英文化
lily2019711 Jun 3, 2026
c1b71af
fix(importers): stricter TS compat — non-null assert on LINE.start/en…
lily2019711 Jun 3, 2026
79f864d
fix(importers): non-null assert on DxfRawLine.start/end in geometry p…
lily2019711 Jun 3, 2026
07878c5
合并1.0
wangdezihao-gaojunfeng Jun 3, 2026
488bb99
feat:统一英文改造
wangdezihao-gaojunfeng Jun 4, 2026
802e5b2
feat:AI悬浮窗改为侧边栏
wangdezihao-gaojunfeng Jun 4, 2026
ae2c062
调整导入dxf默认选项
lily2019711 Jun 4, 2026
677617a
feat:弹窗形式修改
wangdezihao-gaojunfeng Jun 4, 2026
b281276
feat:远程访问配置
wangdezihao-gaojunfeng Jun 5, 2026
3fa6c9c
feat(exporter): DXF export improvements — wall breaks, furniture foot…
lily2019711 Jun 5, 2026
71f6a32
fix(exporter): correct DXF Y-axis mirror — negate Y and swap arc angl…
lily2019711 Jun 5, 2026
8b55c78
feat:配置手册与ai跳转路径修改
wangdezihao-gaojunfeng Jun 5, 2026
b50f378
Merge branch 'develop' of https://github.com/lytech2020/pascalorg-edi…
wangdezihao-gaojunfeng Jun 5, 2026
9e2db55
fix(exporter): make DXF output AutoCAD-compatible (AC1015 format)
lily2019711 Jun 5, 2026
1aaa634
fix(import/export): DXF import/export improvements
lily2019711 Jun 5, 2026
37af24e
fix(exporter): eliminate eHandleInUse — unify to single handle counter
lily2019711 Jun 5, 2026
dc8bffa
feat:材质功能代理修复
wangdezihao-gaojunfeng Jun 5, 2026
706deab
fix walkthrough
lily2019711 Jun 8, 2026
d1aa4c9
Merge branch 'develop' of github.com:lytech2020/pascalorg-editor into…
lily2019711 Jun 8, 2026
61b0c6d
fix dxf export
lily2019711 Jun 8, 2026
11b551f
feat:新增修改防抖追加
wangdezihao-gaojunfeng Jun 9, 2026
5fef266
fxi dxf export door style
lily2019711 Jun 9, 2026
b233a29
fix dxf export door open
lily2019711 Jun 9, 2026
59aa1a6
Merge branch 'develop' of github.com:lytech2020/pascalorg-editor into…
lily2019711 Jun 9, 2026
6ac52e3
feat:默认紫色渲染模式
wangdezihao-gaojunfeng Jun 9, 2026
af601db
隐藏dxf预览图文字提示
lily2019711 Jun 9, 2026
bb6eb2f
Merge branch 'develop' of github.com:lytech2020/pascalorg-editor into…
lily2019711 Jun 9, 2026
c8e0708
feat:读取本地图片和视频
wangdezihao-gaojunfeng Jun 9, 2026
4efa8b2
feat:代理资源开放
wangdezihao-gaojunfeng Jun 10, 2026
d71e027
feat:数据库连接修复
wangdezihao-gaojunfeng Jun 10, 2026
2bc0e1c
关闭防碰撞调整网格宽度
chou-kyoku Jun 10, 2026
0f259a8
feat:侧边栏样式修改,全景和360功能优化,截图依赖追加
wangdezihao-gaojunfeng Jun 10, 2026
84ea7b8
feat: 默认场景大小放大,场景居中功能追加
wangdezihao-gaojunfeng Jun 10, 2026
1f2cb20
feat:SqlLite连接稳定性修复
wangdezihao-gaojunfeng Jun 11, 2026
0d71a89
feat: 设置面板追加布局 Z 轴镜像功能
chou-kyoku Jun 11, 2026
cc629aa
Merge remote-tracking branch 'upstream/main' into 0.9.1merge
wangdezihao-gaojunfeng Jun 11, 2026
a6bd076
chore: 清空开发环境自定义 catalog 条目
chou-kyoku Jun 12, 2026
5234011
清空开发环境自定义 catalog 条目
chou-kyoku Jun 15, 2026
c81b5c3
feat:静态示例资源删除,数据处理脚本上传
wangdezihao-gaojunfeng Jun 15, 2026
491b3ed
feat:静态360图片路由方式改造
wangdezihao-gaojunfeng Jun 17, 2026
06b4f15
feat:MCP服务器接口模式改动(适应Dify大模型API模式调用)
wangdezihao-gaojunfeng Jun 22, 2026
ca4cc31
feat:样式规则上传
wangdezihao-gaojunfeng Jun 22, 2026
e66e1fc
feat:样式代码上传
wangdezihao-gaojunfeng Jun 22, 2026
3508de2
feat:字体样式整体修改
wangdezihao-gaojunfeng Jun 22, 2026
9e512b1
feat:显示模型贴图功能开关追加
wangdezihao-gaojunfeng Jun 23, 2026
91a6577
Merge origin/0.9.1merge into develop
wangdezihao-gaojunfeng Jun 23, 2026
9997ebc
feat: 添加场景 IFC/BIM 导出
chou-kyoku Jun 23, 2026
a49d306
fix: 修复 IFC 地板导出几何与来源逻辑
chou-kyoku Jun 23, 2026
7506778
chore: 移除 IFC 导出单元测试
chou-kyoku Jun 23, 2026
9605a7a
feat: export real furniture mesh geometry in IFC BIM output.
chou-kyoku Jun 23, 2026
def8fac
Save current work: restart project and AI/MCP integration updates
zhangtianqides Jul 1, 2026
97447b1
Add evaluation harness and unit tests for scene validation
zhangtianqides Jul 2, 2026
0627aa2
优化测试集,人工标注反馈流程确定,bug fix
zhangtianqides Jul 3, 2026
e35c246
添加家具检查脚本
zhangtianqides Jul 3, 2026
bddecd3
更新模型库
zhangtianqides Jul 3, 2026
d1e15c5
更新case案例,新增家具
zhangtianqides Jul 6, 2026
2d3c4c8
更新更多的家具
zhangtianqides Jul 7, 2026
03e9195
更新ai agent 流程,
zhangtianqides Jul 9, 2026
fcb6c39
更新家具,修复多语言请求可能存在的隐患问题。
zhangtianqides Jul 9, 2026
180844c
修改多语言交互的回复问题
zhangtianqides Jul 9, 2026
1edd43d
修复因多语言,导致ai agent后续更新编辑更新可能存在的问题。
zhangtianqides Jul 9, 2026
6eda867
添加户型生成策略,提高生成户型的成功率
zhangtianqides Jul 10, 2026
0473177
删除无效文件
zhangtianqides Jul 10, 2026
383a7bc
更新文档文件,删除部分垃圾文件。
zhangtianqides Jul 10, 2026
e089eef
修改流程重设计:设计文档(已确认)+ M0 批次(ModifyOp schema/解析/纯函数应用)
zhangtianqides Jul 13, 2026
83c79eb
M1:家具修改确定性三件套(增/删/换)+ agent 快速路径 + eval case-16/17/18
zhangtianqides Jul 13, 2026
ea60f63
M2:修改稳定性(footprint 锁 + 偏离惩罚)+ 结构类 ModifyOp 全管线(重分区→重建→快照刷新)
zhangtianqides Jul 13, 2026
3f3e00d
M3 离线部分:手动编辑漂移检测 + 确认握手 + PASCAL_MODIFY_LEGACY 对照开关
zhangtianqides Jul 13, 2026
2686248
更新修改户型流程
zhangtianqides Jul 13, 2026
822ca77
修复 case-18 衣柜误删:检索候选过词表 matcher 过滤 + eval itemChanges 只匹配身份字段
zhangtianqides Jul 13, 2026
64da215
修改流程重设计收官:case-14/18 线上验证通过,文档改"已落地"(legacy 保留为旧场景回退)
zhangtianqides Jul 13, 2026
9d92919
收尾对齐审计:delete 意图接入 plan-first + gates 用 intent 真相 + 手动家具重放 + 版本号/旧场景注…
zhangtianqides Jul 13, 2026
08bbb64
局部删除吸收:remove_room 并入邻室零重排(§8-2 修订)+ preserveRoomPolygons 断言 + case-20
zhangtianqides Jul 14, 2026
8946026
bug 修复
zhangtianqides Jul 14, 2026
9f7ff3a
bug 修复
zhangtianqides Jul 14, 2026
ff0628b
全量复盘修复:词表分类(衣帽间/客餐厨)+ §4 面积夹紧 + 结构化地块尺寸 + gates brief/intent 边界 + 衣帽间…
zhangtianqides Jul 14, 2026
10882b5
修复增删改的问题
zhangtianqides Jul 14, 2026
ff040f2
修改agent 检测规则
zhangtianqides Jul 14, 2026
2ad2f64
户型参照库底座:templates/ 格式 + 体检脚本(validator/scorer 裁决 + 同房型生成对比 + SVG)+ 首批…
zhangtianqides Jul 15, 2026
9d59bf3
更新家具库,设计模版户型库方便后续追加模版
zhangtianqides Jul 15, 2026
3d3affa
参照库首个真实间取り图转换(2DK 44.16㎡)+ 体检新发现:DK 被 LDK 档误卡
zhangtianqides Jul 15, 2026
8bb00bc
修参照体检 #1/#2:几何长度厘米取整(0.9m 浮点边界)+ 1K 廊下型厨房动线豁免(三份拷贝共用判定)
zhangtianqides Jul 15, 2026
02a405a
stuck 状态守卫:重启/异常后 in-flight phase 自动降级为可重试状态并向用户说明(启动扫描 + getSession …
zhangtianqides Jul 15, 2026
9c71765
新增无关问题防护栏
zhangtianqides Jul 15, 2026
f239c3e
添加家具模版
zhangtianqides Jul 15, 2026
02f8436
提交户型模版
zhangtianqides Jul 15, 2026
4ec87aa
修复基本户型模版存在的问题
zhangtianqides Jul 16, 2026
e63336e
更新户型模版,并修复部分问题
zhangtianqides Jul 17, 2026
ee36f4d
更新项目文档
zhangtianqides Jul 17, 2026
874f4ad
阶段0架构任务:AI CI、模板体检进CI、部署边界收口、优雅退出
zhangtianqides Jul 17, 2026
2e7c733
任务清单:T0.1/T0.2 经 PR #1 ai-ci 首跑验证通过,标记完成
zhangtianqides Jul 17, 2026
ea7574b
修复 Codex 审阅发现的 4 个问题:chunked 绕过、shutdown 竞态、图片校验、模板体检漏检
zhangtianqides Jul 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
551 changes: 551 additions & 0 deletions .agents/skills/dxf-import/SKILL.md

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
"allow": [
"Bash(npx turbo:*)"
]
}
},
"enableAllProjectMcpServers": true
}
3 changes: 3 additions & 0 deletions .codex/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[mcp_servers.pascal-dev]
args = ["/Users/user/github/pascal-editor/packages/mcp/dist/bin/pascal-mcp.js"]
command = "bun"
24 changes: 24 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,27 @@

# Dev server port (default: 3000)
# PORT=3000

# AI floor-plan assistant. The service still starts without a key and reports
# its unconfigured state through /api/ai/health.
# AI_PROVIDER=azure-openai
# AZURE_OPENAI_ENDPOINT=https://your-resource.cognitiveservices.azure.com
# AZURE_OPENAI_API_KEY=your_azure_openai_api_key
# AZURE_OPENAI_DEPLOYMENT=your_deployment_name
# AZURE_OPENAI_API_VERSION=2024-10-21

# OpenRouter is also supported when AI_PROVIDER is omitted.
# OPENROUTER_API_KEY=your_openrouter_api_key
# OPENROUTER_MODEL=your_tool_calling_model
# OPENROUTER_FALLBACK_API_KEY=optional_fallback_key
# OPENROUTER_FALLBACK_MODEL=optional_fallback_model

# The editor proxies /api/ai to this internal service URL.
# AI_AGENT_URL=http://127.0.0.1:8788

# Market/norm profile used by planning and template matching. The bundled
# reference floor-plan templates currently use the Japanese profile.
# PASCAL_NORM_PROFILE=jp

# Use the same data path for the editor and the AI-spawned Pascal MCP process.
# PASCAL_DATA_DIR=/absolute/path/to/pascal-data
39 changes: 39 additions & 0 deletions .github/workflows/ai-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: ai-ci

on:
push:
# This fork's remote default branch is develop; keep main for upstream.
branches: [main, develop]
paths:
- 'pascal-ai-mcp/**'
- 'bun.lock'
- '.github/workflows/ai-ci.yml'
pull_request:
paths:
- 'pascal-ai-mcp/**'
- 'bun.lock'
- '.github/workflows/ai-ci.yml'

jobs:
ci:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.0

- name: Install
run: bun install --frozen-lockfile

- name: Type check
run: bun run --cwd pascal-ai-mcp check-types

- name: Test
run: bun test --cwd pascal-ai-mcp

- name: Template health check
run: bun run --cwd pascal-ai-mcp templates:check --no-artifacts
17 changes: 17 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,18 @@ build
dist
*.tsbuildinfo

# .NET / Visual Studio local state
pascal-reverse-proxy/.vs/
pascal-reverse-proxy/bin/
pascal-reverse-proxy/obj/
pascal-reverse-proxy/*.csproj.user

# Runtime databases
pascal-reverse-proxy/data/
pascal-reverse-proxy/*.db
pascal-reverse-proxy/*.db-shm
pascal-reverse-proxy/*.db-wal


# Debug
npm-debug.log*
Expand All @@ -45,6 +57,7 @@ yarn-error.log*
/.playwright-mcp
og-test
.env*.local
apps/editor/env.download

# Worktrees
.worktrees
Expand All @@ -53,3 +66,7 @@ og-test
.claude/launch.json
.claude/settings.local.json
.vscode/launch.json

# Claude worktrees (session-local, never commit)
.claude/worktrees/
**/.claude/worktrees/
10 changes: 10 additions & 0 deletions .mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"mcpServers": {
"pascal-dev": {
"command": "bun",
"args": [
"/Users/user/github/pascal-editor/packages/mcp/dist/bin/pascal-mcp.js"
]
}
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Committed local MCP paths

Low Severity

.mcp.json and .codex/config.toml hardcode /Users/user/github/pascal-editor/... for the MCP server binary. Other machines cannot run MCP without editing committed config.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit def8fac. Configure here.

64 changes: 64 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,67 @@ Invoke the `review-architecture` skill (`.agents/skills/review-architecture/SKIL
- After two consecutive tool failures, stop and change approach.
- Don't introduce backwards-compatibility shims, dead code, or speculative abstractions.
- Don't write new comments unless they explain a non-obvious *why*.

---

## DXF Import Feature — File System Job Queue

All DXF import jobs are stored under PASCAL_DATA_DIR/dxf-imports/.

### Directory structure
```
PASCAL_DATA_DIR/
dxf-imports/
2026-05-28/
job_<8位hex>/
original.dxf # 原始上传(只写一次,不可修改)
preview.png # canvas 截图(只写一次)
job.json # job 元数据 + 运行历史
coords_<hhmmss>.json # Channel A 输出(每次运行带时间戳)
semantic_<hhmmss>.json # Channel B 输出
merged_<hhmmss>.json # 融合结果
coords_latest.json # 符号链接 → 最新 coords
semantic_latest.json # 符号链接 → 最新 semantic
merged_latest.json # 符号链接 → 最新 merged
```

### Rules
- Job ID: `crypto.randomBytes(4).toString('hex')`
- Timestamps in filenames: `HHmmss` (local time, no date — date is in parent folder)
- `job.json` must be updated after every step
- Channel A and B run in parallel; each writes its own file independently
- MCP importer reads `merged_latest.json` only
- Never delete job folders — they are the audit trail

### job.json schema
```json
{
"jobId": "a3f9c2e1",
"createdAt": "2026-05-28T14:30:20Z",
"status": "pending|validating|processing|merged|imported|failed",
"sourceFile": "original.dxf",
"sceneId": null,
"params": { "wallThicknessMin": 0.08, "wallThicknessMax": 0.40 },
"runs": [
{
"runAt": "2026-05-28T14:30:22Z",
"coordsFile": "coords_143022.json",
"semanticFile": "semantic_143028.json",
"mergedFile": "merged_143031.json",
"channelBSkipped": false,
"error": null
}
]
}
```

### New files for this feature
- `packages/core/src/lib/importers/job-store.ts` — job 文件夹创建/读写
- `packages/core/src/lib/importers/dxf-validator.ts`
- `packages/core/src/lib/importers/dxf-geometry-parser.ts`
- `packages/core/src/lib/importers/dxf-merge-engine.ts`
- `packages/core/src/lib/importers/mcp-importer.ts`
- `apps/editor/components/tools/ImportDxfTool.tsx`
- `apps/editor/components/DxfPreview.tsx`
- `apps/editor/app/api/vision-analyze/route.ts`
- `apps/editor/app/api/vision-analyze/prompts/floor-plan-analyzer.md`
Loading