xiaomo
dd5cb49168
Merge pull request 'perf: implement lazy loading in FsStore ( #85 )' ( #89 ) from fix/85-fsstore-lazy-loading into main
...
CI / check (push) Successful in 1m46s
Merge PR #89 : perf: implement lazy loading in FsStore (#85 )
2026-06-07 00:31:31 +00:00
xiaoju
48c099ba03
perf: implement lazy loading in FsStore
...
CI / check (pull_request) Successful in 1m40s
FsStore previously CBOR-decoded all .bin nodes into memory at startup,
making cold-open O(n) in time and memory. Now it scans only filenames
into a Set<Hash> at init and reads/decodes nodes from disk on first
get(). has() and listAll() use the filename set; put() write-throughs
to cache; delete() clears cache and disk. Index/meta migration still
performs a one-time scan when _index/ is missing.
Adds 12 new tests (L1-L12) covering startup-no-decode, lazy get,
filename-based has/listAll, write-through put, delete cleanup, list
operations, and migration/bootstrap regression. All existing tests
pass unchanged.
Fixes #85
2026-06-07 00:25:39 +00:00
xiaomo
22ec210813
Merge pull request 'docs: add efficiency guidelines to CLAUDE.md' ( #88 ) from chore/claude-md-efficiency into main
...
CI / check (push) Successful in 1m42s
Merge PR #88 : docs: add efficiency guidelines to CLAUDE.md
2026-06-06 23:51:12 +00:00
xiaoju
578973fd62
docs: add efficiency guidelines to CLAUDE.md
...
CI / check (pull_request) Successful in 1m44s
Reduce Claude Code agent overhead: skip malware comments on trusted code,
stop re-verifying after tests pass.
小橘 🍊 (NEKO Team)
2026-06-06 23:47:12 +00:00
xiaomo
3e93794c59
Merge pull request 'fix: move CAS node files into nodes/ subdirectory ( #84 )' ( #87 ) from fix/84-nodes-subdirectory into main
...
CI / check (push) Successful in 1m37s
Merge PR #87 : fix: move CAS node files into nodes/ subdirectory (#84 )
2026-06-06 23:46:07 +00:00
xiaoju
3b089c2291
fix: move CAS node files into nodes/ subdirectory
...
CI / check (pull_request) Successful in 1m45s
Restructure the FsStore on-disk layout so that all `<HASH>.bin` node
files live under a `nodes/` subdirectory of the store root, instead of
being interleaved with metadata directories (`_index/`, `_store.db`,
`_meta`) at the top level.
Pre-existing flat-layout stores are auto-migrated on first open: any
`.bin` files found in the store root are renamed (not copied) into
`nodes/`. Migration is idempotent and safe to re-run.
Fixes #84
2026-06-06 23:37:19 +00:00
xiaoju
5414332b7f
Merge pull request 'chore: sync solve-issue workflow from uwf canonical version' ( #86 ) from chore/sync-solve-issue-workflow into main
CI / check (push) Successful in 1m48s
2026-06-06 22:45:08 +00:00
xiaoju
146e7f4b69
chore: add changeset + doc update requirements to developer/reviewer
...
CI / check (pull_request) Successful in 1m49s
Developer: steps 12-13 — add changeset with correct bump type, update docs
Reviewer: checks 6-7 — verify changeset exists, docs updated for user-facing changes
小橘 🍊
2026-06-06 22:43:01 +00:00
xiaoju
071864c339
chore: sync solve-issue workflow from uwf canonical version
...
CI / check (pull_request) Successful in 1m46s
- Mode A/B/C logic for fresh issue / existing PR / tester bounce-back
- bun→pnpm references
- repoRemote frontmatter field
- Simplified oneOf schema (no redundant 'type: object')
小橘 🍊
2026-06-06 22:35:44 +00:00
xingyue
24bd04b884
Merge pull request 'chore: add changeset for prompt bootstrap rename' ( #82 ) from chore/changeset-bootstrap into main
CI / check (push) Successful in 1m42s
2026-06-06 21:58:26 +00:00
xiaomo
7ae13289a9
chore: add changeset for prompt setup→bootstrap rename
CI / check (pull_request) Successful in 1m47s
2026-06-06 21:43:26 +00:00
xiaoju
0e71f4d88d
Merge pull request 'chore: rename prompt setup→bootstrap, programmatic generation, bun→pnpm cleanup' ( #81 ) from chore/80-bootstrap-cleanup into main
CI / check (push) Successful in 3m7s
2026-06-06 14:34:37 +00:00
xiaoju
7871db748f
feat: add 'ocas prompt list' subcommand
...
CI / check (pull_request) Successful in 4m55s
Implements the missing 'list' case referenced in bootstrap output.
小橘 🍊
2026-06-06 14:29:22 +00:00
xiaoju
e3c84c5794
chore: rename prompt setup→bootstrap, programmatic generation, bun→pnpm cleanup
...
CI / check (pull_request) Successful in 2m59s
Part 1: Rename 'ocas prompt setup' → 'ocas prompt bootstrap' in CLI
Part 2: Replace static setup.md with cmdPromptBootstrap() function
- CLI_VERSION injected dynamically (same pattern as uwf)
- Covers fresh install + upgrade scenarios
- Includes preflight checks, skill install, e2e verification
Part 3: Clean up bun references in workflow YAML files
- .workflows/retrospect-workflow.yaml: bun→pnpm
- .workflows/solve-issue.yaml: bun→pnpm
- .workflows/e2e-check.yaml: archived to legacy-packages/
Fixes #80
小橘 🍊
2026-06-06 14:03:24 +00:00
xiaomo
693feb19e2
Merge pull request 'chore: update workflow $START from _ to new/resume' ( #79 ) from chore/uwf-start-new-resume into main
CI / check (push) Successful in 2m3s
2026-06-05 10:09:05 +00:00
xiaoju
050fc8eee4
chore: update workflow $START from _ to new/resume
...
CI / check (pull_request) Successful in 5m22s
Align with united-workforce#101 — $START now requires explicit
'new' and 'resume' status keys instead of magic '_'.
Refs shazhou/united-workforce#101
2026-06-05 09:57:24 +00:00
xiaoju
7c145597d5
Merge pull request 'fix: add allowBuilds for pnpm 11 CI' ( #78 ) from fix/ci-allow-builds into main
CI / check (push) Successful in 1m50s
2026-06-04 10:46:07 +00:00
xiaoju
73db7b9cac
fix: add allowBuilds for pnpm 11 CI
CI / check (pull_request) Successful in 2m10s
2026-06-04 10:39:12 +00:00
xiaoju
02a1c18ac5
Merge pull request 'fix: use corepack for pnpm in CI' ( #77 ) from fix/ci-pnpm-setup into main
CI / check (push) Failing after 1m50s
2026-06-04 10:32:59 +00:00
xiaoju
1bd4edbdd1
fix: disable pnpm minimumReleaseAge in CI
...
CI / check (pull_request) Failing after 1m21s
pnpm 11 defaults minimumReleaseAge to 1440 min. Set to 0 in
pnpm-workspace.yaml for our own packages.
2026-06-04 10:13:46 +00:00
xiaoju
49f096b18f
fix: use corepack for pnpm in CI
...
CI / check (pull_request) Failing after 32s
Drop pnpm/action-setup (requires explicit version), use corepack enable instead.
Also align Node to 22 (consistent with uwf).
Closes #76
2026-06-04 10:07:28 +00:00
xiaomo
0dfc26fcfe
Merge pull request 'chore: add Gitea CI workflow' ( #76 ) from chore/add-ci into main
...
CI / check (push) Failing after 16s
chore: add Gitea CI workflow (#76 )
2026-06-04 09:38:05 +00:00
xiaoju
6b9ebd1796
chore: add Gitea CI workflow (build + lint + test)
...
CI / check (pull_request) Failing after 1m18s
小橘 🍊 (NEKO Team)
2026-06-04 09:36:51 +00:00
xiaomo
b3879c583a
Merge pull request 'chore: use proman test instead of vitest run' ( #75 ) from chore/proman-test-script into main
...
chore: use proman test instead of vitest run (#75 )
2026-06-04 01:57:23 +00:00
xingyue
01d4f0fa14
chore: use proman test instead of vitest run
2026-06-04 09:51:30 +08:00
xiaomo
d79d0227fa
Merge pull request 'fix: resolve prompt files from package root instead of dist' ( #74 ) from fix/prompt-path into main
...
fix: resolve prompt files from package root, suppress ExperimentalWarning in tests (#74 )
2026-06-04 00:38:14 +00:00
tuanzi
e4e4ce0f73
fix: suppress SQLite ExperimentalWarning in edge-cases and schema-validation tests
...
The local runCli helpers in edge-cases.test.ts (Phase 3/4/7) and raw
execFileSync calls in schema-validation.test.ts (tests 2.1, 2.3) were
missing NODE_NO_WARNINGS=1, causing ExperimentalWarning to leak into
stderr snapshots. Added env override to match what helpers.runCli
already does.
2026-06-04 00:36:38 +00:00
tuanzi
13b12ef50c
fix: resolve prompt files from package root instead of dist
...
prompts/*.md files are not copied to dist/ during tsc build,
causing `ocas prompt setup/usage` to fail with ENOENT.
- Change join(__dirname, "prompts") → join(__dirname, "..", "prompts")
- Add prompts/ to package.json "files" for npm publishing
- Update snapshots (Node.js SQLite ExperimentalWarning + version string)
2026-06-04 00:11:28 +00:00
xiaomo
a9d43abf28
release: @ocas/cli@0.3.1
@ocas/cli@0.3.1
2026-06-04 00:01:29 +00:00
xiaomo
6f054f6447
fix(cli): update prompts — bun→pnpm, remove stale --var-db flag
2026-06-03 23:49:11 +00:00
xiaomo
5e9b266ebd
docs: add pkg descriptions/keywords/engines, fix core README
...
Fixes #70 , #71 , #72 , #73
2026-06-03 23:23:48 +00:00
xiaomo
c4d9205eb2
docs: update all documentation for node:sqlite, pnpm, proman workflow
...
- README: bun → pnpm, update API examples, add Node >=22.5.0 requirement
- CLAUDE.md: replace 3-phase release process with proman bump/publish
- Package READMEs: fix package names, update storage/API descriptions
- Cards: update store.md (sqlite), cli.md (db filename, remove --var-db)
- docs/sync-readme.md: update to proman workflow
2026-06-03 23:21:30 +00:00
xiaoju
9d17be8b7b
release: v0.3.0
v0.3.0
2026-06-03 23:06:00 +00:00
xiaomo
7e9bd26fec
fix: suppress ExperimentalWarning in tests via NODE_NO_WARNINGS env
...
- Use NODE_NO_WARNINGS=1 in execFileSync env instead of --no-warnings flag
- Remove overly broad process.removeAllListeners('warning') from CLI entry
- Add engines field requiring Node >=22.5.0 (node:sqlite availability)
- Update proman to 0.4.2
2026-06-03 23:02:43 +00:00
xiaomo
3168bf55c3
chore: add changeset for node:sqlite migration
2026-06-03 22:30:15 +00:00
xiaomo
00a536631a
refactor: migrate from better-sqlite3 to node:sqlite
...
- Replace better-sqlite3 with built-in node:sqlite (DatabaseSync)
- Add transaction() helper for manual BEGIN/COMMIT/ROLLBACK
- Suppress ExperimentalWarning in CLI tests with --no-warnings
- Remove better-sqlite3 from dependencies and onlyBuiltDependencies
- No more native addon compilation issues across Node versions
2026-06-03 22:11:44 +00:00
xiaomo
f8103e20ce
chore: bump @shazhou/proman to 0.4.0, remove link override
2026-06-03 16:30:24 +00:00
xiaomo
5c567dc455
Revert "Merge pull request 'chore: remove redundant vite/vitest devDeps' ( #69 ) from chore/remove-redundant-devdeps into main"
...
This reverts commit 08a2bddcf0 , reversing
changes made to 36ebf42f2f .
2026-06-03 15:15:38 +00:00
xiaomo
08a2bddcf0
Merge pull request 'chore: remove redundant vite/vitest devDeps' ( #69 ) from chore/remove-redundant-devdeps into main
2026-06-03 14:28:35 +00:00
xiaomo
6fc3b9030b
chore: remove redundant vite/vitest devDeps (proman bundles them)
2026-06-03 14:25:35 +00:00
xiaoju
36ebf42f2f
chore: bump 0.2.2, fix lint, biome format
...
- Bump all packages to 0.2.2
- Fix noNonNullAssertion in cli/index.ts
- Fix unused imports in fs/sqlite-store.ts
- Biome 2.4.16 migration + format all files
- Update snapshots for version change
v0.2.2
2026-06-03 11:16:16 +00:00
xiaoju
f286df91f0
chore: restore workspace:*
2026-06-03 09:43:57 +00:00
xiaoju
8971206a3e
Merge release/0.2.1 into main
2026-06-03 09:43:37 +00:00
xiaoju
807c0942e8
release: v0.2.1
...
- Clean dist: no stale variable-store.js (bun:sqlite reference removed)
- Fix vitest rejects pattern in liquid-render tests
- proman.yaml runtime: bun → node
- Upgrade @shazhou/proman to 0.2.2
v0.2.1
2026-06-03 09:43:27 +00:00
xiaoju
5c0670e69b
release: prepare v0.2.1
2026-06-03 09:40:07 +00:00
xiaoju
c90efda4dd
chore: upgrade @shazhou/proman to 0.2.2
2026-06-03 09:39:59 +00:00
xiaoju
2d4f76330c
fix: vitest rejects pattern + runtime config
...
- Fix 4 liquid-render tests: expect(async()=>{}).rejects → expect(promise).rejects
- proman.yaml: runtime bun → node (matches actual stack)
- package.json: test script uses vitest directly (avoid proman recursion)
- Add changeset for 0.2.1 patch (clean dist)
2026-06-03 09:30:23 +00:00
xiaomo
768ae20a24
Merge pull request 'feat: migrate var/tag store from JSONL to better-sqlite3' ( #68 ) from feat/60-sqlite-var-tag into main
...
feat: migrate var/tag store from JSONL to better-sqlite3 (#68 )
2026-06-03 08:40:45 +00:00
xiaoju
72ba313d12
fix: address review — transactions, LIKE escape, post-filter pagination
...
Critical fixes:
1. LIKE ESCAPE '\' clause added for namePrefix queries
2. list() limit/offset now applied AFTER tag/label post-filter
3. tag()/untag() wrapped in db.transaction()
Warning fixes:
4. set()/update() wrapped in db.transaction() (txnSetVar)
5. listByTag sort/limit/offset pushed to SQL
6. close() idempotent (double-close guard)
7. JSONL → SQLite migration on first open (vars + tags)
8. History truncation simplified (NOT IN subquery)
9. Removed unnecessary pre-fetch in upsert (ON CONFLICT handles it)
Nits:
10. Database.Database type instead of InstanceType
11. row.name instead of row["name"]
12. DESC index on var_history position
13. key+value composite index on tags
2026-06-03 08:38:44 +00:00
xiaoju
1fe6035be5
feat: migrate var/tag store from JSONL to better-sqlite3
...
- New sqlite-store.ts: VarStore + TagStore backed by SQLite (WAL mode)
- Tables: vars (composite PK name+schema), var_history (with MAX_HISTORY truncation), tags (composite PK target+key)
- Indexed queries for name, created, updated, tag key
- Tags/labels stored as JSON columns with post-filter
- Removed var-store.ts (JSONL append-log implementation)
- Updated tests: JSONL assertions → SQLite db file checks
Closes #60
2026-06-03 08:29:22 +00:00