Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
4cd312f
refactor(app): extract ContentArea, EditorView, AppTopToolbar and hoo…
donfaquir Jul 14, 2026
886c6ec
feat(practice): add Practice Mode routing and ActivityBar entry
donfaquir Jul 14, 2026
256baee
feat(practice): add PracticeReviewPane — purified review sub-tab
donfaquir Jul 14, 2026
51e569f
feat(practice): add PracticeSourcePreview with dual-pane layout
donfaquir Jul 14, 2026
99e81a7
feat(backend): add list_discovery_candidates and batch_dismiss_candid…
donfaquir Jul 14, 2026
0d32bf3
feat(practice): implement DiscoveryPane for candidate browsing
donfaquir Jul 15, 2026
d21dcf8
refactor(right-panel): remove review tab, redirect to Practice Mode
donfaquir Jul 15, 2026
c55fb36
feat(review): replace inline challenge Q&A with lightweight reminder
donfaquir Jul 15, 2026
4256086
feat(practice): add discovery detail views by candidate type
donfaquir Jul 15, 2026
f5f0843
feat(discovery): add batch operations (multi-select, batch dismiss/pr…
donfaquir Jul 15, 2026
0196866
feat(practice): add review completion transition with daily picks
donfaquir Jul 15, 2026
2f2fe21
i18n(practice): add en/zh translations for practice, discovery, revie…
donfaquir Jul 15, 2026
d1d73fb
chore: bump version to 0.7.6 and update CHANGELOG
donfaquir Jul 15, 2026
21f0d65
feat(discovery): add LLM-assisted candidate confirmation (Spec 11)
donfaquir Jul 15, 2026
78f8460
fix(macos): re-center traffic lights in toolbar (y: 15 → 18)
donfaquir Jul 15, 2026
5a09432
style(macos): increase spacing between traffic lights and sidebar toggle
donfaquir Jul 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .opencode/plugins/worklog-session-start.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { mkdirSync, appendFileSync } from "node:fs";
import { execSync } from "node:child_process";
import { join } from "node:path";

export default async ({ directory }) => {
// Write session header to worklog on plugin init (session start)
const worklogDir = join(directory, "worklog");
mkdirSync(worklogDir, { recursive: true });

const now = new Date();
const pad = (n) => String(n).padStart(2, "0");
const date = `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}`;
const time = `${pad(now.getHours())}:${pad(now.getMinutes())}:${pad(now.getSeconds())}`;
const sessionId = Math.random().toString(36).slice(2, 10);

let branch = "none";
try {
branch = execSync("git branch --show-current", { cwd: directory, encoding: "utf8" }).trim() || "none";
} catch {}

const header = `\n## ${date} ${time} · session:${sessionId} · branch:${branch}\n`;
appendFileSync(join(worklogDir, `${date}.md`), header);

return {};
};
29 changes: 29 additions & 0 deletions .opencode/worklog-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## Worklog 工作日志习惯

每个 session 必须维护 `worklog/YYYY-MM-DD.md`,让用户次日打开就能续接工作。

### Session 启动时(第一次回应用户之前)

必读最近一份 worklog 获取上下文:
1. 先读 `worklog/<今天>.md`;如不存在或为空,读 `ls -1t worklog/*.md | head -2` 找最近 1-2 天的文件
2. 重点看最近 session 段落里的「下一步」字段,作为接续点
3. worklog-session-start 插件已自动在当日 worklog 写入本 session 的段落头(`## 时间 · session:xxx · branch:xxx`),无需手写

### 工作进行中(关键节点主动 append)

以下时机必须在当前 session 段落下 append 一段记录到当日 worklog:
- 一个任务被标记 completed 时
- 做出重要架构/技术决策时
- 遇到无法自行解决的阻塞(需要用户决策、外部依赖)时
- Session 即将结束、要交接给用户时

### Append 格式

```
### HH:MM <一行总结,10 字内>
- **做了什么**: 简述动作和涉及的文件
- **为什么**: 动机、约束、上下文(用户次日看时能复原决策)
- **下一步**: 明确的接续动作,让下个 session 知道从哪里开始
```

「下一步」是核心字段——次日新 session 启动后会优先读它来决定接什么。
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,42 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).

## [0.7.6] - 2026-07-15

### Added
- Practice Mode: new activity bar entry with routing, DiscoveryPane, PracticeSourcePreview (dual-pane), and PracticeReviewPane
- Review completion transition with daily picks in Practice Mode
- Discovery batch operations: multi-select, batch dismiss/promote
- Discovery detail views by candidate type
- Backend commands: `list_discovery_candidates` and `batch_dismiss_candidates`
- Latent paragraphs: embedding-based paragraph candidate engine
- Challenge review: support latent paragraph candidates in review queue
- Challenge: question quality feedback loop
- Review: show related documents for latent paragraph candidates
- Review: abandon button in QA phase to return to pick
- Review push notifications and thought growth story export
- AI degraded guidance and export enhancements (spec-1c, spec-3b)
- AI guide: show setup guidance when LLM is not configured
- Onboarding: replace step 4 tips with dynamic discovery card
- SM-2 algorithm upgrade for challenge scheduling
- i18n: en/zh translations for practice, discovery, reviewReminder

### Changed
- Right panel: remove review tab, redirect to Practice Mode
- App.tsx refactored: extract ContentArea, EditorView, AppTopToolbar and hooks
- Cognitive report panel split into card-based subcomponents
- Review: replace inline challenge Q&A with lightweight reminder
- Graph, topic-network and skills modules frozen (chore)

### Fixed
- Agent loop: prevent watchdog timeout during long async operations
- Latent: trigger scan on workspace open when candidates table is empty
- Latent: add filter versioning to invalidate stale candidates
- Review: deduplicate prefetch and on-demand question generation
- Review: pre-generate challenge questions to eliminate wait time
- Graph/topic-network entry restored in ActivityBar
- Suppress compiler warnings (unused imports, variables, dead code)

## [0.7.5] - 2026-07-08

### Added
Expand Down
4 changes: 4 additions & 0 deletions opencode.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"$schema": "https://opencode.ai/config.json",
"instructions": [".opencode/worklog-instructions.md"]
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "knowforge",
"private": true,
"version": "0.7.5",
"version": "0.7.6",
"license": "Apache-2.0",
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "knowforge"
version = "0.7.5"
version = "0.7.6"
description = "Knowforge desktop app"
authors = ["caichangqing"]
edition = "2024"
Expand Down
Loading