Files
osmWorkflow/.trellis/workspace/dingkang/journal-1.md
2026-08-18 14:17:08 +08:00

846 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Journal - dingkang (Part 1)
> AI development session journal
> Started: 2026-08-03
---
## Session 1: Initialize Trellis project guidelines
**Date**: 2026-08-03
**Task**: Initialize Trellis project guidelines
**Branch**: `main`
### Summary
Initialized Trellis project scaffolding and replaced the incorrect frontend spec templates with project-specific pipeline, Blender, preview, config, and cross-layer guidance. Verified spec layers, placeholder cleanup, key-contract coverage, and Blender pure Python tests.
### Git Commits
| Hash | Message |
|------|---------|
| `4c5981c` | (see git log) |
### Status
[OK] **Completed**
## Session 2: Refactor Cesium material export contract
**Date**: 2026-08-03
**Task**: Refactor Cesium material export contract
**Branch**: `main`
### Summary
Moved Cesium material export overrides into catalog-backed material contracts saved as Blender material custom properties. Kept legacy name-table fallback for old .blend files, updated Blender/spec guidance, and verified with unit tests, py_compile, diff check, and parity before/after comparison showing only expected cesium_export blend property diffs.
### Git Commits
| Hash | Message |
|------|---------|
| `0635c09` | (see git log) |
### Status
[OK] **Completed**
## Session 3: Archive osmassets refactor plan
**Date**: 2026-08-03
**Task**: Archive osmassets refactor plan
**Branch**: `main`
### Summary
Moved durable conclusions from the temporary osmassets refactor plan into changelog and Trellis specs, removed docs/refactor-plan.md, and verified no live docs/spec references to the deleted plan remain.
### Git Commits
| Hash | Message |
|------|---------|
| `6882921` | (see git log) |
### Status
[OK] **Completed**
## Session 4: Extract fountain module
**Date**: 2026-08-03
**Task**: Extract fountain module
**Branch**: `main`
### Summary
Moved fountain assembly from generate_scene.py into blender/osmassets/fountain.py, updated P2 refactor docs, and verified py_compile, 51 pure tests, and Blender/Cesium parity before/after with identical snapshots.
### Git Commits
| Hash | Message |
|------|---------|
| `6271055` | (see git log) |
### Status
[OK] **Completed**
## Session 5: Extract building module
**Date**: 2026-08-03
**Task**: Extract building module
**Branch**: `main`
### Summary
Moved building assembly from generate_scene.py into blender/osmassets/building.py, updated P2 refactor docs so only roads remains in generate_scene.py, and verified py_compile, 51 pure tests, and Blender/Cesium parity before/after with identical snapshots.
### Git Commits
| Hash | Message |
|------|---------|
| `032922a` | (see git log) |
### Status
[OK] **Completed**
## Session 6: Extract road assembly module
**Date**: 2026-08-03
**Task**: Extract road assembly module
**Branch**: `main`
### Summary
Moved Blender road GeoJSON assembly and OSM fallback roads into blender/osmassets/roads.py while preserving road_counts, Layer catalog warnings, scene metadata, and SCENE_DONE output. Verified py_compile, unittest, task validation, and Blender/Cesium parity before/after as identical for both sample areas.
### Git Commits
| Hash | Message |
|------|---------|
| `0f3c1ee` | (see git log) |
### Status
[OK] **Completed**
## Session 7: Add feature registry dispatch
**Date**: 2026-08-03
**Task**: Add feature registry dispatch
**Branch**: `main`
### Summary
Introduced blender/osmassets/features.py with FeatureHandler and dispatch_ways for ordered OSM way feature dispatch. Converted generate_scene.py water/grass/scrub/tree_row/building branches into registry handlers while keeping material order, counts, road warning behavior, scene metadata, and SCENE_DONE unchanged. Verified py_compile, unittest, task validation, and Blender/Cesium parity before/after as identical for both sample areas.
### Git Commits
| Hash | Message |
|------|---------|
| `ff18217` | (see git log) |
### Status
[OK] **Completed**
## Session 8: Clean stale tuft density comment
**Date**: 2026-08-03
**Task**: Clean stale tuft density comment
**Branch**: `main`
### Summary
Cleared stale D3 tuft_density_wave comment debt and updated parity guide known-defect records without changing executable scene generation logic. Verified py_compile, 51 pure tests, and task validation.
### Git Commits
| Hash | Message |
|------|---------|
| `f569d45` | (see git log) |
### Status
[OK] **Completed**
## Session 9: Improve Cesium cruise smoothness
**Date**: 2026-08-03
**Task**: Improve Cesium cruise smoothness
**Branch**: `main`
### Summary
Reduced Cesium preview cruise stutter by lowering dense scrub bush nodes in nantaizi from 707 to 266, preserving scrub ground cover, and trimming preview route/follow hot-path overhead without lowering default visual clarity. Verified nantaizi blender/cesium/preview rebuild, node --check, py_compile, 51 pure tests, and task validation.
### Git Commits
| Hash | Message |
|------|---------|
| `0d2dc22` | (see git log) |
### Status
[OK] **Completed**
## Session 10: Reject low-poly scrub bush experiment
**Date**: 2026-08-03
**Task**: Reject low-poly scrub bush experiment
**Branch**: `main`
### Summary
Tested user-supplied assets/models/custom/bush_low/bush_low.glb for nantaizi scrub edge bushes. Geometry dropped from 63,762 verts / 67,536 indices to 4,044 / 4,050 and GLB size dropped from 31.96 MB to 27.51 MB with 266 scrub bush nodes unchanged, but user validation found the visual effect unsatisfactory. Restored generate_scene.py to the original default bush asset, archived the task, and recorded the rejected experiment in changelog/spec without adding bush_low to git.
### Git Commits
| Hash | Message |
|------|---------|
| `e58a928` | (see git log) |
### Status
[OK] **Completed**
## Session 11: Adopt Shapespark vegetation
**Date**: 2026-08-03
**Task**: Adopt Shapespark vegetation
**Branch**: `main`
### Summary
Adopted split Shapespark low-poly plants for nantaizi trees, scrub bushes, and lawn tufts; toned Cesium foliage export, removed retired vegetation assets/loaders, validated nantaizi blender/cesium/preview.
### Git Commits
| Hash | Message |
|------|---------|
| `dbb5705` | (see git log) |
### Status
[OK] **Completed**
## Session 12: Optional GLB compression stage
**Date**: 2026-08-03
**Task**: Optional GLB compression stage
**Branch**: `main`
### Summary
Added an explicit compress stage and GLB compression script for nantaizi WebP review artifacts without replacing the baseline GLB.
### Git Commits
| Hash | Message |
|------|---------|
| `7ba8594` | (see git log) |
### Status
[OK] **Completed**
## Session 13: Fix OSM multipolygon buildings
**Date**: 2026-08-03
**Task**: Fix OSM multipolygon buildings
**Branch**: `main`
### Summary
Parsed building multipolygon relations, generated building holes, and respected explicit OSM height for nantaizi relation -65.
### Git Commits
| Hash | Message |
|------|---------|
| `95f8458` | (see git log) |
### Status
[OK] **Completed**
## Session 14: Add area diagnostics command
**Date**: 2026-08-04
**Task**: Add area diagnostics command
**Branch**: `main`
### Summary
Added a fast diagnose:area command for OSM structure, building relation health, artifact status, and GLB digest checks; shared area config normalization between build and diagnostics.
### Git Commits
| Hash | Message |
|------|---------|
| `d4c3baf` | (see git log) |
### Status
[OK] **Completed**
## Session 15: Add GLB stage manifests
**Date**: 2026-08-04
**Task**: Add GLB stage manifests
**Branch**: `main`
### Summary
Added first-version cesium and compress stage manifests under _pipeline/stages, shared manifest helpers, and diagnose:area reporting for missing/stale manifests.
### Git Commits
| Hash | Message |
|------|---------|
| `2832383` | (see git log) |
### Status
[OK] **Completed**
## Session 16: Add area quality gate
**Date**: 2026-08-04
**Task**: Add area quality gate
**Branch**: `main`
### Summary
Added a read-only check:area command backed by shared area diagnostics, documented the quality-gate failure policy, and verified nantaizi pass plus controlled missing-output failure.
### Git Commits
| Hash | Message |
|------|---------|
| `7fcc4ee` | (see git log) |
### Status
[OK] **Completed**
## Session 17: Add full stage manifests
**Date**: 2026-08-04
**Task**: Add full stage manifests
**Branch**: `main`
### Summary
Extended stage manifests across intermediates, reimport, blender, and preview; added alternate ownership handling and validated the complete nantaizi pipeline.
### Git Commits
| Hash | Message |
|------|---------|
| `5874cf9` | (see git log) |
### Status
[OK] **Completed**
## Session 18: Add OSM area preflight
**Date**: 2026-08-04
**Task**: Add OSM area preflight
**Branch**: `main`
### Summary
Added the read-only preflight:area command, a successful preflight manifest, shared OSM structural checks, and quality-gate freshness validation. OSM diagnostics now ignore action=delete historical objects; verified only nantaizi with unit fixtures, preflight, diagnose, check, and a controlled stale-manifest failure.
### Git Commits
| Hash | Message |
|------|---------|
| `e1f5207` | (see git log) |
### Status
[OK] **Completed**
## Session 19: Add configurable area asset budgets
**Date**: 2026-08-04
**Task**: Add configurable area asset budgets
**Branch**: `main`
### Summary
Added configurable GLB budgets with documented exceptions, shared budget evaluation for diagnostics, quality gates, and Cesium/compress manifests, plus render-triangle, embedded-image, and source attribution diagnostics. Verified budget tests, preflight tests, nantaizi diagnostics/check, and a controlled low-budget failure without running heavy stages.
### Git Commits
| Hash | Message |
|------|---------|
| `463cb06` | (see git log) |
### Status
[OK] **Completed**
## Session 20: Split area preview orchestration
**Date**: 2026-08-04
**Task**: Split area preview orchestration
**Branch**: `main`
### Summary
Extracted preview route, vehicle glTF, and HTML/runtime assembly from build-area into focused modules; added preview asset tests and verified nantaizi preview, diagnostics, and quality gate.
### Git Commits
| Hash | Message |
|------|---------|
| `396df51` | (see git log) |
### Status
[OK] **Completed**
## Session 21: Add OSM turn lane arrows
**Date**: 2026-08-05
**Task**: Add OSM turn lane arrows
**Branch**: `main`
### Summary
Added vendored lane-icons assets, tested OSM turn-lane arrow generation and lane-center placement, and normalized crosswalk and stop-line generation around rendered Driving lanes.
### Git Commits
| Hash | Message |
|------|---------|
| `9a23f74` | (see git log) |
### Status
[OK] **Completed**
## Session 22: Cesium semantic inspection preview
**Date**: 2026-08-05
**Task**: Cesium semantic inspection preview
**Branch**: `main`
### Summary
Added semantic Cesium inspection assets and controls; fixed compressed metadata to preserve inspection assets; verified the rebuilt compressed preview.
### Git Commits
| Hash | Message |
|------|---------|
| `607d8fc` | (see git log) |
### Status
[OK] **Completed**
## Session 23: 车辆连续巡航与转弯
**Date**: 2026-08-05
**Task**: 车辆连续巡航与转弯
**Branch**: `main`
### Summary
实现 OSM 有向道路图驱动的连续往返车辆路线,支持 turn:lanes 转向筛选、单行限制、路口曲线与端点调头Cesium 路线选择显示编号、长度及左/右/直统计,并补充路线 JSON 中文契约与自动化验证。
### Git Commits
| Hash | Message |
|------|---------|
| `30846b6` | (see git log) |
### Status
[OK] **Completed**
## Session 24: 拆分 LowPoly Cars 车辆资产
**Date**: 2026-08-05
**Task**: 拆分 LowPoly Cars 车辆资产
**Branch**: `main`
### Summary
拆分 LowPoly Cars 资产库并接入 Cesium 预览候选集;每条巡航路线独立随机选模型,修正贴图、亮度、比例和 Truck A03 行驶方向;导入脚本支持脱离 Blender 验证已入库资产。
### Git Commits
| Hash | Message |
|------|---------|
| `3108336` | (see git log) |
| `2489b8a` | (see git log) |
### Status
[OK] **Completed**
## Session 25: Cesium traffic signal countdowns
**Date**: 2026-08-06
**Task**: Cesium traffic signal countdowns
**Branch**: `main`
### Summary
Added shared 7LED countdown geometry, split dynamic Cesium assets by phase group for reliable lamp-matched colors, documented the inverse-font and exporter grouping contracts, and verified the preview asset and Blender Python test suites.
### Git Commits
| Hash | Message |
|------|---------|
| `0e1574f` | (see git log) |
### Status
[OK] **Completed**
## Session 26: 交通信号拓扑与部分构建同步修复
**Date**: 2026-08-07
**Task**: 交通信号拓扑与部分构建同步修复
**Branch**: `main`
### Summary
基于 OSM highway=traffic_signals 控制节点生成 T/十字路口信号,复用共享 OSM 解析Blender stage 每次重写交通信号锚点,避免部分构建沿用旧 JSON 导致 GLB 与 Cesium 预览 signal id 错位。验证了 nantaizi 区域 35 盏信号、动态/倒计时 GLB、Safari 预览和 preview-assets 测试。
### Git Commits
| Hash | Message |
|------|---------|
| `1c077a3` | (see git log) |
### Status
[OK] **Completed**
## Session 27: QGIS traffic signal editing and countdown stability
**Date**: 2026-08-07
**Task**: QGIS traffic signal editing and countdown stability
**Branch**: `main`
### Summary
Implemented editable traffic signal assemblies in QGIS with stable IDs, position/heading overrides, reimport ownership, source validation, and Blender/Cesium runtime derivation. Fixed long signal IDs overflowing Blender node names with short nodeKey values, and changed QGIS SVG symbols to direct heading_deg field rotation so QGIS rotation edits write back to the field. Verified real GeoPackage round-trip, focused Node tests, preview tests, and 59 Blender tests. Safari cache caused stale GLB symptoms and was resolved with a hard refresh.
### Git Commits
| Hash | Message |
|------|---------|
| `e153a1c` | (see git log) |
### Status
[OK] **Completed**
## Session 28: 默认压缩交付
**Date**: 2026-08-11
**Task**: 默认压缩交付
**Branch**: `main`
### Summary
将 GLB 压缩纳入默认构建并使用标准产物路径交付,移除并列压缩输出契约;同步诊断、测试与文档。
### Git Commits
| Hash | Message |
|------|---------|
| `0790cbd` | (see git log) |
### Status
[OK] **Completed**
## Session 29: Publish reusable area asset packages
**Date**: 2026-08-12
**Task**: Publish reusable area asset packages
**Branch**: `main`
### Summary
Published the reusable osm-asset-package/v1 contract, moved static models under package/, kept dynamic cruise and signal assets in _preview/, fixed preview manifest-relative loading, and verified the target area quality gate.
### Git Commits
| Hash | Message |
|------|---------|
| `f385009` | (see git log) |
| `c925890` | (see git log) |
| `db0fba5` | (see git log) |
| `f2b8d79` | (see git log) |
| `0102ffb` | (see git log) |
### Status
[OK] **Completed**
## Session 30: Add vehicle incident preview cards
**Date**: 2026-08-12
**Task**: Add vehicle incident preview cards
**Branch**: `main`
### Summary
Added click-to-open vehicle information cards with normal, breakdown, and accident preview-only states, floating vehicle-anchored cards, route and motion changes, plus bundled repair and warning icons.
### Git Commits
| Hash | Message |
|------|---------|
| `761a526` | (see git log) |
### Status
[OK] **Completed**
## Session 31: Native road lane markings
**Date**: 2026-08-14
**Task**: Native road lane markings
**Branch**: `feature/native-road-compiler`
### Summary
Implemented native lane separators, repeated road direction arrows, explicit junction turn arrows, Workbench inspection/toggles, and Blender/Cesium adapter support for Nantaizi; validated native compile, checks, tests, and non-package visual build.
### Git Commits
| Hash | Message |
|------|---------|
| `1b9829d` | (see git log) |
### Status
[OK] **Completed**
## Session 32: Native road control markings
**Date**: 2026-08-17
**Task**: Native road control markings
**Branch**: `feature/native-road-compiler`
### Summary
Added native-source crosswalk and stop-line layers with workbench inspection, Blender/Cesium delivery, and control-marking arrow avoidance.
### Main Changes
- Compiled explicit marked OSM crossings into source-traceable native GeoJSON.
- Added Chinese workbench control-layer toggle, selection evidence, and summary counts.
### Git Commits
| Hash | Message |
|------|---------|
| `4c4f453` | (see git log) |
### Testing
- [OK] Passed native-road, road-workbench, turn-lane-arrows, build-stages, native compile/check, and Blender/Cesium/preview build.
### Status
[OK] **Completed**
### Next Steps
- Continue native road compiler workbench with the next user-approved priority.
## Session 33: Add native road center lines
**Date**: 2026-08-17
**Task**: Add native road center lines
**Branch**: `feature/native-road-compiler`
### Summary
Implemented Nantaizi native-road center_lines output, workbench selection/toggle, Blender adapter, control-marking avoidance, and cross-layer verification.
### Git Commits
| Hash | Message |
|------|---------|
| `fb863da` | (see git log) |
### Status
[OK] **Completed**
## Session 34: Add center line style overrides
**Date**: 2026-08-17
**Task**: Add center line style overrides
**Branch**: `feature/native-road-compiler`
### Summary
Added persistent native road centre-line colour and pattern overrides, automatic Workbench staging, continuous solid-line rendering, and Blender white material support.
### Git Commits
| Hash | Message |
|------|---------|
| `47efb78` | (see git log) |
### Status
[OK] **Completed**
## Session 35: Complete native lane separator styles
**Date**: 2026-08-17
**Task**: Complete native lane separator styles
**Branch**: `feature/native-road-compiler`
### Summary
Completed per lane-pair separator colour/pattern overrides, Workbench staging, Blender yellow material routing, and centre-line control clearance.
### Git Commits
| Hash | Message |
|------|---------|
| `bc04517` | (see git log) |
### Status
[OK] **Completed**
## Session 36: Complete native road marking semantics
**Date**: 2026-08-17
**Task**: Complete native road marking semantics
**Branch**: `feature/native-road-compiler`
### Summary
Added explicit double-yellow centre lines and per-side edge-line overrides; made all three marking classes selectable in the Chinese Road Workbench; synchronized Blender adapter coverage and verified Nantaizi native compile, quality gate, Blender/Cesium/preview manifests, and automated tests.
### Git Commits
| Hash | Message |
|------|---------|
| `9bb97d4` | (see git log) |
### Status
[OK] **Completed**
## Session 37: Complete rounded native junction verification
**Date**: 2026-08-18
**Task**: Complete rounded native junction verification
**Branch**: `feature/native-road-compiler`
### Summary
Recorded user-confirmed native Blender/Cesium/preview verification for rounded native junctions, checked off all acceptance criteria, and archived the completed 08-17-native-rounded-junctions task.
### Git Commits
| Hash | Message |
|------|---------|
| `e41bfd1` | (see git log) |
| `f7e71cf` | (see git log) |
### Status
[OK] **Completed**
## Session 38: Complete native traffic signal workflow
**Date**: 2026-08-18
**Task**: Complete native traffic signal workflow
**Branch**: `feature/native-road-compiler`
### Summary
Completed native traffic-signal ownership and Workbench editing. Added independent pole position, mast heading/reach, and face heading controls; removed native QGIS dependency; verified runtime preview, browser rendering, compile, tests, and quality gates. Archived native traffic signal and road compiler tasks.
### Git Commits
| Hash | Message |
|------|---------|
| `5accc0a` | (see git log) |
### Status
[OK] **Completed**
## Session 39: Complete native-only pipeline replacement
**Date**: 2026-08-18
**Task**: Complete native-only pipeline replacement
**Branch**: `feature/native-road-compiler`
### Summary
Made native road compilation the default provider and full-build stage set; decoupled package traffic signals and preview from QGIS/osm2streets, made diagnostics provider-aware, updated docs/specs/tests, and preserved explicit legacy reference/debug paths. Native road compile/check and all available Node tests passed. QGIS baseline remains tagged qgis-original-baseline-20260818.
### Git Commits
| Hash | Message |
|------|---------|
| `9e0e25a` | (see git log) |
### Status
[OK] **Completed**