@fungi.computer/bonsai 0.2.6 → 0.3.1

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,56 @@
1
1
  # @fungi.computer/bonsai
2
2
 
3
+ ## 0.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+ - Updated dependencies
9
+ - Updated dependencies
10
+ - Updated dependencies
11
+ - Updated dependencies
12
+ - Updated dependencies
13
+ - Updated dependencies
14
+ - Updated dependencies
15
+ - @fungi.computer/braid@0.4.0
16
+ - @fungi.computer/caps@0.6.0
17
+ - @fungi.computer/nacre@0.1.2
18
+ - @fungi.computer/oyster@0.8.0
19
+ - @fungi.computer/puffball@0.4.0
20
+ - @fungi.computer/sigils@0.2.1
21
+ - @fungi.computer/trellis@0.6.0
22
+ - @fungi.computer/workflows-wire@0.4.0
23
+ - @fungi.computer/agar@0.6.1
24
+
25
+ ## 0.3.0
26
+
27
+ ### Minor Changes
28
+
29
+ - Changes since 0.2.6:
30
+
31
+ - feat(repository): scope docs-only gates
32
+ - fix(oyster): close every anonymous door
33
+ - fix(oyster): route every host request through one authorization owner
34
+ - fix(oyster): keep every door closed through authorization.ts
35
+
36
+ ### Patch Changes
37
+
38
+ - Updated dependencies
39
+ - Updated dependencies
40
+ - Updated dependencies
41
+ - Updated dependencies
42
+ - Updated dependencies
43
+ - Updated dependencies
44
+ - Updated dependencies
45
+ - @fungi.computer/agar@0.6.0
46
+ - @fungi.computer/braid@0.3.0
47
+ - @fungi.computer/caps@0.5.0
48
+ - @fungi.computer/oyster@0.7.0
49
+ - @fungi.computer/puffball@0.3.0
50
+ - @fungi.computer/trellis@0.5.0
51
+ - @fungi.computer/workflows-wire@0.3.0
52
+ - @fungi.computer/nacre@0.1.1
53
+
3
54
  ## 0.2.6
4
55
 
5
56
  ### Patch Changes
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@fungi.computer/bonsai",
3
- "version": "0.2.6",
3
+ "version": "0.3.1",
4
4
  "author": "Levi <levi@technomancy.dev>",
5
5
  "type": "module",
6
6
  "description": "Bonsai: a git platform for many agents working at once, on Workers and Artifacts",
7
7
  "dependencies": {
8
- "@fungi.computer/agar": "0.5.0",
9
- "@fungi.computer/caps": "0.4.0",
8
+ "@fungi.computer/agar": "0.6.1",
9
+ "@fungi.computer/caps": "0.6.0",
10
10
  "@fungi.computer/issues": "0.2.0",
11
- "@fungi.computer/oyster": "0.6.0",
12
- "@fungi.computer/puffball": "0.2.0",
13
- "@fungi.computer/sigils": "0.2.0",
11
+ "@fungi.computer/oyster": "0.8.0",
12
+ "@fungi.computer/puffball": "0.4.0",
13
+ "@fungi.computer/sigils": "0.2.1",
14
14
  "@fungi.computer/stipe": "0.1.0",
15
15
  "@pierre/diffs": "1.3.6",
16
16
  "@pierre/trees": "1.0.0-beta.6",
@@ -29,10 +29,10 @@
29
29
  "@fungi.computer/maosaico": "0.1.0",
30
30
  "@visx/hierarchy": "3.12.0",
31
31
  "@fungi.computer/gills": "0.2.0",
32
- "@fungi.computer/nacre": "0.1.0",
33
- "@fungi.computer/trellis": "0.4.0",
34
- "@fungi.computer/braid": "0.2.4",
35
- "@fungi.computer/workflows-wire": "0.2.4"
32
+ "@fungi.computer/nacre": "0.1.2",
33
+ "@fungi.computer/trellis": "0.6.0",
34
+ "@fungi.computer/braid": "0.4.0",
35
+ "@fungi.computer/workflows-wire": "0.4.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "playwright": "1.62.1",
@@ -52,7 +52,7 @@
52
52
  "eslint": "10.9.1",
53
53
  "oxlint": "1.78.0",
54
54
  "jsdom": "29.0.1",
55
- "@fungi.computer/computer-contract": "0.0.5"
55
+ "@fungi.computer/computer-contract": "0.0.7"
56
56
  },
57
57
  "botanical": {
58
58
  "role": "app",
@@ -183,9 +183,9 @@
183
183
  "release": "node scripts/release.mjs",
184
184
  "rebuild-copies": "node --import tsx scripts/rebuild-copies.mjs",
185
185
  "test:runtime": "node scripts/runtime-proof.mjs",
186
- "test:shed-terminal": "bash ../../.agents/skills/orchestrate-multi-lane-work/scripts/run-proof.sh node scripts/shed-terminal-proof.mjs",
186
+ "test:shed-terminal": "bash ../../tooling/proof-runner/run-proof.sh node scripts/shed-terminal-proof.mjs",
187
187
  "test:runtime:celld": "CELLD_PLATFORM_CELLD=$(../../tooling/celld-platform/runtime/pinned-celld.sh) node --import ../../tooling/celld-platform/runtime/wrangler-on-celld.mjs scripts/runtime-proof.mjs",
188
188
  "seed:demo": "node --import tsx scripts/seed-demo.mjs",
189
- "test:repo-settings": "bash ../../.agents/skills/orchestrate-multi-lane-work/scripts/run-proof.sh node test/browser/repository-settings.browser.mjs"
189
+ "test:repo-settings": "bash ../../tooling/proof-runner/run-proof.sh node test/browser/repository-settings.browser.mjs"
190
190
  }
191
191
  }
@@ -12,6 +12,13 @@ import { BonsaiState, ensureBonsaiTables } from "../backend/state.js";
12
12
  import type { Bonsai } from "../backend/service.js";
13
13
  import { realGit } from "@fungi.computer/agar/test-kit/git";
14
14
 
15
+ /** A Git door answers whole requests; resolve a path against one origin. */
16
+ const gitFetch = (
17
+ door: { fetch: (request: Request) => Promise<Response> },
18
+ path: string,
19
+ init?: RequestInit,
20
+ ) => door.fetch(new Request(new URL(path, "https://oyster.test"), init));
21
+
15
22
  function fixture() {
16
23
  const database = new DatabaseSync(":memory:");
17
24
  const sql = fromNodeSqlite(database);
@@ -84,7 +91,7 @@ it("refuses repository deletion before state or provider writes for every non-ow
84
91
  }
85
92
  });
86
93
 
87
- it("withdraws the public listing and anonymous clone after owner deletion", async () => {
94
+ it("withdraws the listing and owner clone after owner deletion", async () => {
88
95
  const f = fixture();
89
96
  const provider = realGit();
90
97
  try {
@@ -113,7 +120,7 @@ it("withdraws the public listing and anonymous clone after owner deletion", asyn
113
120
  grants: { admits: () => Promise.resolve(true) },
114
121
  policy: {
115
122
  authorize: () =>
116
- Promise.reject(new Error("Anonymous clone never authorizes a push")),
123
+ Promise.reject(new Error("A clone never authorizes a push")),
117
124
  },
118
125
  journal: {
119
126
  tip: () => Promise.reject(new Error("Clone has no write journal")),
@@ -121,12 +128,16 @@ it("withdraws the public listing and anonymous clone after owner deletion", asyn
121
128
  },
122
129
  });
123
130
  const door = createGitDoor({
124
- authenticate: () => Promise.resolve(null),
125
- isPublic: () => Promise.resolve(true),
131
+ authenticate: () =>
132
+ Promise.resolve({
133
+ kind: "actor",
134
+ actor: { kind: "member", memberId: "owner" },
135
+ role: "owner",
136
+ }),
126
137
  git: () => Promise.resolve(git),
127
138
  });
128
139
  const path = "/git/bonsai/pond.git/info/refs?service=git-upload-pack";
129
- expect((await door.request(path)).status).toBe(200);
140
+ expect((await gitFetch(door, path)).status).toBe(200);
130
141
  await expect(
131
142
  appBackend.call("repos.list", {}, { bonsai }, owner),
132
143
  ).resolves.toMatchObject({ repos: [{ name: "pond" }] });
@@ -136,11 +147,11 @@ it("withdraws the public listing and anonymous clone after owner deletion", asyn
136
147
  await expect(
137
148
  appBackend.call("repos.list", {}, { bonsai }, owner),
138
149
  ).resolves.toEqual({ repos: [] });
139
- expect((await door.request(path)).status).toBe(404);
150
+ expect((await gitFetch(door, path)).status).toBe(404);
140
151
  await expect(
141
152
  appBackend.call("repos.delete", { repo: "pond" }, { bonsai }, owner),
142
153
  ).resolves.toEqual({ deleted: true });
143
- expect((await door.request(path)).status).toBe(404);
154
+ expect((await gitFetch(door, path)).status).toBe(404);
144
155
  } finally {
145
156
  provider.close();
146
157
  f.database.close();
package/turbo.jsonc CHANGED
@@ -16,9 +16,13 @@
16
16
  "inputs": [
17
17
  "$TURBO_DEFAULT$",
18
18
  "$TURBO_ROOT$/tooling/repository/scripts/{test-file-pool,proof-budget}.{mjs,d.mts}",
19
- "$TURBO_ROOT$/.agents/skills/orchestrate-multi-lane-work/scripts/proof-time-bound.sh",
19
+ "$TURBO_ROOT$/tooling/proof-runner/proof-time-bound.sh",
20
20
  "$TURBO_ROOT$/tooling/celld-platform/runtime/**",
21
21
  "$TURBO_ROOT$/apps/trellis/templates/**",
22
+ "!$TURBO_ROOT$/apps/docs/release-claims/**",
23
+ "!**/*.{md,mdx}",
24
+ "!$TURBO_ROOT$/**/*.{md,mdx}",
25
+ "!release-claims/**",
22
26
  ],
23
27
  },
24
28
  },