@volter/supercode-orchestrator 0.5.225 → 0.5.226

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,7 +24,11 @@ export async function* followBoardPublications({root,after,signal}) {
24
24
  const settled=new Map();
25
25
  const statOf=path=>{try{const s=statSync(path);return `${s.size}:${s.mtimeMs}`;}catch{return '-';}};
26
26
  const notify=(name=null)=>{
27
- const named=name===null?[]:stores.filter(path=>basename(path)===name);
27
+ // A store in rollback-journal mode is written in place, and on macOS FSEvents names no change to the store file
28
+ // itself, only its journal coming and going (a board's sqlite store, kept in `delete` journal mode; VO-3761, where
29
+ // every start waited out RESETTLE_MS): a journal's notice is its store's, read against the store's own stamp.
30
+ const store=name!==null&&name.endsWith('-journal')?name.slice(0,-'-journal'.length):name;
31
+ const named=store===null?[]:stores.filter(path=>basename(path)===store);
28
32
  // A store file no pass stamps (the root's kanban.db where only named boards exist) reads '-' until one does.
29
33
  if(named.length&&named.every(path=>statOf(path)===(settled.get(path)??'-')))return;
30
34
  dirty=true;wake?.();
@@ -40,12 +44,12 @@ export async function* followBoardPublications({root,after,signal}) {
40
44
  const register=slugs=>{
41
45
  for(const entry of watchers.values())entry.accept=[];
42
46
  stores=[join(root,'kanban.db'),join(root,'kanban.db-wal')];
43
- directory(root,name=>['kanban.db','kanban.db-wal','kanban'].includes(name));
47
+ directory(root,name=>['kanban.db','kanban.db-wal','kanban.db-journal','kanban'].includes(name));
44
48
  directory(join(root,'kanban'),name=>['boards','ztrack.json','board'].includes(name));
45
49
  directory(join(root,'kanban','boards'),()=>true);
46
50
  for(const slug of slugs){
47
51
  const paths=backingPaths(root,slug);
48
- file(paths.sqlite);file(`${paths.sqlite}-wal`);file(paths.ztrack);stores.push(paths.sqlite,`${paths.sqlite}-wal`);
52
+ file(paths.sqlite);file(`${paths.sqlite}-wal`);file(`${paths.sqlite}-journal`);file(paths.ztrack);stores.push(paths.sqlite,`${paths.sqlite}-wal`);
49
53
  directory(paths.files,name=>name.endsWith('.json'));
50
54
  try {const cfg=JSON.parse(readFileSync(paths.ztrack,'utf8'));const document=resolve(dirname(paths.ztrack),cfg.document);file(document);const own=basename(document);directory(dirname(document),name=>name===`${own}.archive.md`||(name.startsWith(`${own}.archive-`)&&name.endsWith('.md')));}catch{/* other backing */}
51
55
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter/supercode-orchestrator",
3
- "version": "0.5.225",
3
+ "version": "0.5.226",
4
4
  "type": "module",
5
5
  "description": "The orchestrator runtime over the Volter Harness ontology: one typed operational model whose folder is its serialization, read and written through the harness orchestration doors (docs/ORCHESTRATOR-IR.md)",
6
6
  "exports": {