Commit Graph
19 Commits
Author SHA1 Message Date
unclesam b20d6a3750 fix(sqlite_checkpoint): harden concurrent safety and close lifecycle
- validateTableName: guard against empty string input to prevent malformed SQL
- Save/PruneVersions/Delete: use mu.Lock to serialize SELECT MAX(version)+INSERT
  preventing duplicate version numbers under concurrent goroutines
- Load/LoadVersion/ListVersions: retain mu.RLock to allow concurrent reads
- All methods: add nil db check after acquiring lock to fail fast after Close()
- NewSQLiteCheckpointer: set SetMaxOpenConns(1)+SetMaxIdleConns(1) to ensure
  PRAGMA WAL/busy_timeout takes effect on the single shared connection and
  eliminate SQLITE_BUSY errors under concurrent writes
- ListVersions: initialize result as make([]CheckpointVersion, 0) instead of
  nil slice for consistent caller semantics
- PruneVersions: add comment explaining the double threadID parameter
v1.1.3
2026-08-13 20:18:48 +08:00
unclesam 85a1294fa3 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	sqlite_checkpoint.go
2026-08-12 13:14:52 +08:00
unclesam 3a4c1e9c84 feat: implement SQLite-based append-only multi-version state persistence for thread checkpoints 2026-08-12 13:14:18 +08:00
unclesam e247b504a4 feat: implement SQLite-based append-only multi-version state persistence for thread checkpoints 2026-08-12 00:09:10 +08:00
unclesam 7028571a4f docs: update README to include Checkpointer.Delete example v1.1.2 2026-07-04 20:47:59 +08:00
unclesam 5782504351 fix(engine): resolve parallel execution races and improve max steps semantics
- Fix data race in runParallelBranches where first error could be masked
- Improve MaxSteps to allow exactly N steps
- Consolidate Resume validation logic and fix silent overwrite in Graph AddNode/AddEdge
- Add sync.RWMutex to Engine for thread-safe configuration
- Fix P2 issues: Add immediate check for router output, add mutex to hooks example, add context timeout to translation example, and update docs for Checkpointer.Delete
2026-07-04 20:46:36 +08:00
unclesam d2d8eb5a3a docs: 更新README以反映新增特性与安全校验 v1.1.1 2026-06-17 11:02:46 +08:00
unclesam de457f670a feat: production-grade hardening v1.1.0
- fix: Compile() defensive map copy, prevents post-compile Graph mutation
- fix: correct 'origin'→'destination' in edge validation error message
- feat: export ErrNotPaused/ErrAlreadyFinished for errors.Is() support
- feat: WithPreNodeHook/WithPostNodeHook now support chaining (multiple hooks)
- feat: Compile detects conflicting outgoing edge types on same node
- fix: FileCheckpointer atomic write (tmp+rename, crash-safe)
- fix: FileCheckpointer threadID path traversal validation
- refactor: remove redundant continue in run() loop
- docs: add doc.go package-level documentation
- test: +7 test cases covering error paths, edge conflicts, hook chaining
v1.1.0
2026-06-17 10:44:59 +08:00
unclesam 235f66c9ba Fix(README.md) GopherGraph import path casing
修复 README.md 示例错误导入路径
2026-06-13 21:16:32 +08:00
unclesam 62b23e6bfa chore: 将模块路径中的组织名更改为小写 v1.0.3 2026-06-11 20:53:51 +08:00
unclesam 25150551a0 Merge remote-tracking branch 'origin/master' v1.0.2 2026-06-11 20:31:21 +08:00
unclesam 3a15b53b84 feat(engine): 增加运行熔断、并发短路取消及生命周期钩子 2026-06-11 20:31:00 +08:00
unclesam b9218f2a6a feat(engine): 增加运行熔断、并发短路取消及生命周期钩子 2026-06-11 20:23:52 +08:00
unclesam 693c107473 build: 更新模块路径为标准格式 v1.0.1 2026-06-11 03:29:55 +08:00
unclesam 40f032ef1f docs: add MIT license v1.0.0 2026-06-11 02:22:45 +08:00
unclesam 17fb43d04d docs: 更新README以反映并发执行与持久化功能 2026-06-11 02:12:25 +08:00
unclesam 33cd062d15 feat(checkpoint): 新增文件检查点持久化与恢复功能 2026-06-11 02:11:05 +08:00
unclesam 2bbd2b7b04 test: 添加并发分流与合并逻辑测试 2026-06-11 02:00:34 +08:00
unclesam 1c0296fa80 Initial commit 2026-06-11 01:49:21 +08:00