Before:
- Plan draft notes contained raw JSON at the bottom
- No way to execute a pending plan from the UI
- User saw technical payload with no clear next step
After:
- Plan drafts are clean markdown: summary table + operation list + affected
files + detailed preview. No JSON visible.
- Raw plan data cached in PlanDraftStore memory (not in note)
- New action: '确认执行此计划' (icon: play)
- Only visible when current file has type: execution-plan
- Shows confirmation dialog with risk level and file count
- Executes via PlanExecutor, marks draft as 'executed'
- On failure: shows error, draft stays pending
- PlanDraftStore.getPendingPlans() for listing
- PlanDraftStore.markExecuted() updates note status
Execution flow now:
1. Generate plan → save as readable draft note
2. User opens and reviews the plan
3. User triggers '确认执行此计划' from command panel or right-click
4. Confirmation dialog → execute → log written → draft marked done
Limitation: plan cache is in-memory only. If Obsidian restarts between
plan creation and confirmation, user must regenerate. This is acceptable
for v2.0; persistent plan storage comes in v2.1.
- Extracted all artifact orchestration from main.ts into
src/features/artifact/ArtifactFeatureController.ts
(main.ts now has a 3-line delegation method)
- gatherContext() now receives full params (uses target + artifactType
for richer related-vault queries instead of just basename)
- Fixed reading-project path matching: f.path.startsWith(folder + '/')
prevents matching sibling directories with same prefix
- ArtifactPreviewModal now shows 'will create 1-2 files' impact notice
- PlanDraftStore now includes full ExecutionPlan JSON in a code block
(enables future 'confirm and execute from draft' workflow)
- README Status table updated with Execution Artifact Builder row
- main.ts reduced from ~900+ to 874 lines (artifact logic externalized)
P0-1: create-plan-only no longer executes — uses new PlanDraftStore
to persist plans under Knowledge/_ExecutionPlans/ without applying.
PlanExecutor result is now checked for success/failure.
P0-2: Scheduler runtime disabled by default in v2.0 (commented out
startScheduler call). Will be enabled via settings UI in v2.1.
runBaiduBackup now checks cfg.autoBackup.
Task renamed to '每日配置同步' to reflect actual behavior.
P1-1: Vault QA source links use [[path|title]] format for reliable
resolution regardless of H1 vs filename mismatch.
P1-2: NextRunCalculator.getNextRun weekly bug fixed — same-day
targets before due time now resolve to today, not next week.
P1-3: README execution section rewritten to match actual state.
Settings page execution description updated accordingly.
P2-1: 'scheduler' added to PlanSource type.
P2-2: CI triggers on release/** branches.
P2-3: Command panel now renders AI 助手 as pinned entry above grouped actions.