feat(project): add ECC-FE project management and QoR - #214
Luyoung0001 wants to merge 34 commits into
Conversation
Add the shared analysis frame and frontend project dashboard. Keep backend and frontend panels decoupled. Scope workspace actions to their owning project and preserve explicit workspace selection across project changes.
# Conflicts: # ecos/agent/knowledge/cts/manifest.json # ecos/agent/knowledge/cts/sources.json # ecos/agent/knowledge/drc/manifest.json # ecos/agent/knowledge/drc/sources.json # ecos/agent/knowledge/filler/manifest.json # ecos/agent/knowledge/filler/sources.json # ecos/agent/knowledge/fixfanout/manifest.json # ecos/agent/knowledge/fixfanout/sources.json # ecos/agent/knowledge/floorplan/manifest.json # ecos/agent/knowledge/floorplan/sources.json # ecos/agent/knowledge/harden/manifest.json # ecos/agent/knowledge/harden/sources.json # ecos/agent/knowledge/legalization/manifest.json # ecos/agent/knowledge/legalization/sources.json # ecos/agent/knowledge/place/manifest.json # ecos/agent/knowledge/place/sources.json # ecos/agent/knowledge/rcx/manifest.json # ecos/agent/knowledge/rcx/sources.json # ecos/agent/knowledge/route/manifest.json # ecos/agent/knowledge/route/sources.json # ecos/agent/knowledge/sta/manifest.json # ecos/agent/knowledge/sta/sources.json # ecos/agent/knowledge/synthesis/manifest.json # ecos/agent/knowledge/synthesis/sources.json # ecos/gui/apps/desktop-electron/electron/services/projectManagementReadService.ts # ecos/gui/apps/renderer/src/components/NewProjectWizard.vue # ecos/gui/apps/renderer/src/types/index.ts # ecos/gui/apps/renderer/src/utils/backendProjectManagement.ts # ecos/gui/packages/shared/src/index.ts # ecos/gui/packages/shared/src/types/workspace.ts # ecos/gui/packages/shared/src/utils/projectManagementSummary.test.ts # ecos/gui/packages/shared/src/utils/projectManagementSummary.ts # ecos/gui/packages/shared/src/utils/projectManifest.ts
…anagement # Conflicts: # ecos/gui/apps/desktop-electron/electron/services/chipViewerService.test.ts
| @@ -1 +1 @@ | |||
| Subproject commit fefb988b771b407d551daeabde2005abb3349536 | |||
| Subproject commit 687c28e18ce648864b1ca6fc3a56527c2674fe1a | |||
There was a problem hiding this comment.
[P1] Delay runtime activation until required resources install
docs/ecc-fe-cli-setup.sh writes the active manifest and replaces both command links before running resource install --required. If a required resource download, verification, or installation fails, set -e exits with this failed runtime still active; an upgrade also stops pointing users at the previously working runtime. Please commit the manifest and links only after all required resources succeed, or roll them back on failure, so a failed first install leaves no active runtime and a failed upgrade preserves the prior one.
| workspace.workspace_id, | ||
| { | ||
| analysis: { | ||
| frontendDetailTexts: Object.fromEntries( |
There was a problem hiding this comment.
[P2] Preserve unavailable frontend artifact state
The read service returns null and records the path in unavailablePaths when a detail file exceeds the 1 MiB limit or another read error occurs, but this mapping discards that status. If flow.json still says the step succeeded, downstream analysis turns the missing detail into zero errors, warnings, and cases, producing a false-green dashboard. Please propagate the unavailable state and render these aggregates as unknown instead of successful zero-result data.
Summary
Add first-class Project Management support for ECC-FE projects while keeping the existing backend project path behaviorally isolated.
This pull request:
014e721d87f539ff10cdf167d29010f871009b5e;Architecture
Backend and frontend Project Management remain separate at the behavior layer:
backendProjectManagement.tsretains backend-specific flow and QoR interpretation;The goal is visual and workflow consistency without coupling ECC-FE semantics to the backend RTL-to-GDS implementation.
Frontend Project Lifecycle
Dashboard And Analysis
Frontend QoR
0 == 0with user-facing gate descriptions.Scope
Select the areas touched by this PR:
ecos/gui, including renderer, Electron, and shared packages.Validation
cd ecos/gui && pnpm run typecheckcd ecos/gui && pnpm run testcd ecos/gui && pnpm run buildmake buildmake demo-gcdmake demo-retrosoccd ecos/gui && pnpm run devcd ecos/gui && pnpm run check- typecheck, lint, format, and all 1,347 renderer tests passed across 187 files.python3 .github/scripts/check-version.py- version consistency passed for0.1.0-alpha.9.Manual GUI verification covered frontend project creation/opening, frontend workspace rendering, project tree expansion, Dashboard and Step Analysis presentation, per-stage flow/QoR refresh, persisted QoR hydration, recovery on workspace reopen, scrolling, and layout alignment.
Skipped checks and reason:
pnpm run build,make build, and demo targets were not run because this change does not modify packaging scripts, native build inputs, or demo definitions; platform packaging remains covered by PR CI.clock-tree; valid CTS/Chinese responses can omit that literal. The knowledge generator check itself passes.Screenshots or Recordings
No recording is attached. The affected GUI workflows were exercised manually during implementation, including frontend project lifecycle, Dashboard, Step Analysis, QoR updates, and layout behavior.
Release, Packaging, and Runtime Impact
Notes:
014e721d87f539ff10cdf167d29010f871009b5e, which is already merged intoopenecos-projects/ecc-fe:main.Checklist