Skip to content

Docs explain ObjectOS in pre-ontology terms below the lede, and four pages state capabilities ObjectStack 17.7 does not have #328

Open

Description

@objectstack-fleet

Filing gate: ③ — a task the maintainer dispatched directly in session chat.
Reader: the repo:objectos PM seat (objectstack-ai/objectstack#9831), session session_01CXCwzqwMhkphKoBC11oPSz, which dispatches it to an os-dev subagent in this round.
Dedupe: all 118 objectos issues, open and closed (REST page walk to a short page; 301 issues + PRs), grepped for ontology, readOnly, ai.exposed, package export, action_, on by default, templates.mdx, agents.mdx|ai-builder → open hits only #295 (edition names, quotes E1) and #300 (getting-started path); closed hits (#78, #102, #233, #256) are earlier 16.x/17.0 alignment and locale work. None covers this scope.
Priority: P1. Four of the items are wrong statements on a shipped surface.

Maintainer, this session's chat, 2026-10-15: 「你需要考虑的是文档站点本身的更新。」「参考官网的文档站点和最近的版本更新。」「创建issue并派发。」

Why

objectstack re-positioned on 2026-10-03: "The ontology is the software." #171 (PR #293) brought the positioning constant and the index lede into this site, gated by check-positioning.mjs. Below the lede the docs still explain ObjectOS in older terms, and they do not use the vocabulary the official docs site now defines: ontology core vs projections, executable not a knowledge ontology, not a semantic layer. Four pages also state capabilities that ObjectStack 17.7 contradicts.

The reference is the official docs site, objectstack origin/main 1ced0f82:

  • content/docs/concepts/ontology.mdx, concepts/compare.mdx and concepts/when-to-use.mdx;
  • content/docs/getting-started/glossary.mdx, the "Business Ontology" entry;
  • content/blog/the-ontology-is-the-software.mdx.

Per #171 ruling A, this site stays documentation and cedes head terms to www.objectos.ai. So link those objectstack.ai pages; do not copy the compare or when-to-use content here.

Work items

Each line is the seat's reading on main 76988da. Falsify it against the tree first.

A. Capability claims that 17.7 contradicts

  1. readOnly datasource capability. extend-existing-systems.mdx:29-30, :48 and configure/data-sources.mdx:222-235, :262-264 recommend readOnly and the capabilities table. The spec retired both: objectstack packages/spec/src/data/datasource.zod.ts RETIRED_CAPABILITIES. The enforced datasource-wide write gate is external.allowWrites: false, plus a read-only database user. Also data-sources.mdx:208-209, "The objects now read and write your existing tables", vs federation being read-only by default with a double opt-in (objectstack content/docs/data-modeling/external-datasources.mdx). Unverified: whether the in-memory engine rows at data-sources.mdx:29, :43 are still true after 17.7.

  2. Action exposure. These say every action becomes an agent tool:

    • build/agents.mdx:88-90: "Every *.action.ts you declare automatically materializes as an action_… tool — no separate wiring";
    • build/ai-builder.mdx:61-63;
    • build/interface/actions.mdx:10-13.

    objectstack content/docs/ai/actions-as-tools.mdx gates both the open MCP path and ObjectOS on the ai.exposed opt-in. This repo's own configure/mcp.mdx:134-137 agrees.

  3. MCP default. resources/glossary.mdx:147-149 says ObjectOS "can" expose MCP. resources/faq.mdx:154-158 frames agent operation as the open-source path only. configure/mcp.mdx:6-8 says every deployment is an MCP server, on by default.

  4. A command that does not exist. build/templates.mdx:98 names os package export. The CLI's packages/cli/src/commands/package/ holds only install and publish. Removing it reverses a capability claim, so delete that page's locale siblings in the same PR (AGENTS.md translation workflow, step 3) and regenerate zh-Hant.

  5. Self sign-up. resources/glossary.mdx:261: "Register … unless the deployment disables self-service sign-up". 17.3 closed self sign-up by default (auth.audience.posture = invite_only). Unverified for ObjectOS, which also has OS_AUTH_MEMBERSHIP_POLICY. Measure before changing; if it does not apply, say so in the report.

B. Ontology framing, following the official docs site

  1. New page content/docs/ontology.mdx, "Your ontology in ObjectOS". It should cover:

    • the core (objects and fields, relations, actions, permissions, flows, agent and tool definitions), each mapped to this site's sections;
    • the projections (views, dashboards, apps, translations), mapped to Interface and Localization;
    • where the ontology lives on ObjectOS: tenant metadata from the AI Builder or Studio, repository source, or the compiled artifact (read build/ai-skills.mdx:94 and operate/backup.mdx:12-18);
    • what it is not;
    • links out to the objectstack.ai pages.

    Add one entry to content/docs/meta.json. Reordering the sidebar is There is no getting-started path for ObjectOS itself: Quickstart boots the open runtime, Deploy/Operate are not marked self-managed, and License & Pricing is buried #300's job.

  2. architecture.mdx:11-50. The "two thin layers" text puts views (a projection) into the core and omits permissions and relations. MCP is missing from the diagram and from the request path (:79-87). Redraw it as ontology → runtime (derive + enforce) → database · REST · Console · MCP.

  3. build/index.mdx:7-8, :17-19, :25-33. Change "The platform doesn't care how the metadata got there" to: Build is authoring the ontology core and its projections, and every path passes the same validation gate. The vocabulary table also omits permissions.

  4. index.mdx below the gated lede. Lines :7-13 are untouched (check-positioning.mjs gates them). Fix:

    • :40-42, "watch the metadata get generated";
    • :55, Salesforce as the "Same metadata-driven model";
    • :60-65, which has no MCP row;
    • :86-90, which has no agent audience.

    :35 belongs to [Decision] One name for the self-managed edition: "ObjectOS Enterprise" (positioning, 8 pages) vs "ObjectOS Self-Managed" with Business single-node and Enterprise under it (License & Pricing, Deploy) #295; leave it.

  5. why.mdx.

    • :41-72 fit / not-a-fit should agree with objectstack's when-to-use list: core ERP, integration-heavy work, lake analytics, algorithm-heavy domains, certified platforms.
    • :105-106: the Salesforce "Same" rows.
    • :60: "vibe-code".
    • :153: npx @objectstack/cli init, where the official docs use npm create objectstack@latest.
  6. Glossary and FAQ. Align "Business ontology" (glossary.mdx:47-58) with the objectstack glossary entry: no inheritance, axioms or reasoner; not a semantic layer. Add entries for Projection and Validation gate. Add FAQ entries "What does ObjectOS mean by ontology?" and "Is ObjectOS a semantic layer?".

File surface

  • content/docs/ontology.mdx (new)
  • content/docs/meta.json (one entry)
  • content/docs/index.mdx, why.mdx, architecture.mdx, extend-existing-systems.mdx
  • content/docs/build/index.mdx, build/agents.mdx, build/ai-builder.mdx, build/templates.mdx
  • content/docs/build/interface/actions.mdx
  • content/docs/configure/data-sources.mdx
  • content/docs/resources/glossary.mdx, resources/faq.mdx
  • build/templates locale siblings: deletion only, plus zh-Hant regeneration

Not in this card

Done looks like

  • Every item is fixed or falsified, with a reading.
  • The ci.yml gates pass locally, among them:
    • gen-zh-hant.mjs --check;
    • check-doc-samples.mjs;
    • check-positioning.mjs and check-locale-surface.mjs;
    • type-check, build and test.
  • The new page and the redrawn architecture page are checked in a real browser (AGENTS.md rule 2), with screenshots in the PR.

Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 15, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop, repo:objectos seat, R1
    Session: session_01CXCwzqwMhkphKoBC11oPSz
    Account: os-tesla (the seat's linked user as GET /user answers it; always the card's assignee)
    Branch: claude/issue-328-ontology-framing
    Worktree: objectos-issue-328
    Domain: n/a (single-lane repo)
    Seat: repo:objectos (objectstack-ai/objectstack#9831)
    File surface: as listed in this card's "File surface" section, read on main 76988da. Stop on breach and explain in the report.
    Container & model: M/L, mode:subagent, model: opus (default tier; dispatch-gates.mjs --tier --repo objectstack-ai/objectos over this surface at objectstack 1ced0f82 answers "no path-derived mandate")
    Clause-②: no
    Responsibility: these docs pages produce the risk (objectos content/docs) · the platform path already covers it: objectstack's own docs state the 17.7 behavior (ai/actions-as-tools.mdx, datasource.zod.ts RETIRED_CAPABILITIES) · every docs reader and every agent reading /llms.txt reaches it today
    Thread-read: none
    Serial constraints cleared: nothing is in flight on objectos. #295 (queued) owns index.mdx:35, which this card leaves alone. #300 (blocked) owns the sidebar reorder; this card adds one meta.json entry only. #327 (quickstart.mdx) is disjoint. Sibling cards #329 and #330 are dispatched in this round with disjoint file surfaces. The five open PRs are Dependabot bumps, none on content/docs/**.


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 15, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report
    {
    "issue": 328,
    "status": "done",
    "branch": "claude/issue-328-ontology-framing",
    "pr": "#332",
    "session": "session_01CXCwzqwMhkphKoBC11oPSz — subagent of the repo:objectos seat (parent's id)",
    "premise_still_valid": true,
    "summary": "Draft PR #332 (head d4f1305, assignee os-tesla, opened by objectstack-fleet[bot]) adds content/docs/ontology.mdx ('Your ontology in ObjectOS': six core kinds mapped to this site, four projections, where it lives as tenant metadata / repository source / compiled artifact, what it is not, four objectstack.ai links, no export steps) plus one meta.json entry. It also redraws architecture.mdx as ontology → runtime (derive + enforce) → database, REST, Console, MCP, adding MCP to the process diagram and the request path, and aligns build/index, index (below :7-13; :35 untouched), why, glossary (Business ontology, new Projection and Validation gate entries) and FAQ (two ontology entries). Items 1-4 were confirmed against 76988da and corrected: readOnly/capabilities and the read-write federation default; actions become AI tools only with ai.exposed; MCP is on by default; os package export does not exist. The 7 build/templates siblings are deleted and zh-Hant regenerated. Item 5 (glossary :261, self sign-up) is left unchanged, NOT MEASURED for ObjectOS: the framework default since 17.3 is invite_only (17-3.mdx:181-216), but no ObjectOS runtime or image is reachable here, this site documents no auth.audience, and OS_AUTH_MEMBERSHIP_POLICY governs what a sign-up joins, not whether one is admitted. PM assumptions measured: (a) in-memory rows: data-sources.mdx:29 still holds (a named memory datasource parses on spec 17.7.0, and the factory builds it at service-datasource default-datasource-driver-factory.ts:1341-1350); :43 lost 'demos' because 17.7 retired it as a boot store (17-7.mdx:787-793). (b) Export: no documented ObjectOS export procedure exists in this repo; the nearest read path is reference/cli.mdx:146-155, os meta list/get (a per-item metadata read), and no steps were written. (c) objectstack.ai routes: confirmed against the objectstack README (:25, :90-95, :217) and apps/docs app/[lang]/{docs,blog}; HTTP not fetched, because the proxy refuses objectstack.ai. Bounded in-place corrections, declared in the PR body: actions.mdx section Permissions (said bodies run under the caller's object permissions/FLS; on 17.7 they run isSystem after invoke-time requiredPermissions/record-load/ai.exposed gates); the glossary Action entry (nonexistent /api/v1/data/OBJECT/actions/ACTION route, 'flow steps', 'inherits the caller's permissions'); build/index 'callable from flows'; data-sources retired readReplicas/healthCheck rows, the env-password security note, sharingModel + external.remoteName on the sample; the agents.mdx 'action_*' comment.",
    "tests": "Docs-only change; no tested behaviour changed, so no ablation. Reverse check of the gate on the edited samples: check-doc-samples judged every edited block PASS, none N/A (data-sources.mdx:56/:84/:124/:166, actions.mdx:20/:78/:120/:136, agents.mdx:28/:62). A spec probe on @objectstack/spec 17.7.0 DatasourceSchema.safeParse answered: REFUSED readOnly / capabilities / readReplicas / healthCheck / retryPolicy ('Unrecognized key(s) on this datasource' + tombstone); PASS external.credentialsRef on managed; REFUSED external.allowWrites:true on managed ('A managed datasource may carry external.credentialsRef (and only it)'); PASS driver 'memory'; PASS schemaMode 'external' + external {allowWrites:false, credentialsRef}. Browser: Chromium /opt/pw-browsers/chromium over next start of the production build. /docs/ontology and /docs/architecture at 1366x900 and 390x844@2x: HTTP 200, 0 console errors, page overflow-x 0px, the sidebar lists /docs/ontology. Phone: ontology tables 356/358px; the new diagram 356px, which fits; the two older code blocks (477px, 594px) scroll in their own frame as before. The first capture showed the third table at 379px and the diagram at 641px; commit d4f1305 narrowed both. Screenshots: https://claude.ai/artifact/GU4WWGXrKEeuWE3poYbCdx (private to the maintainer's account until shared).",
    "gates": "Local, all at HEAD d4f1305, exit codes captured before any pipe: gen-zh-hant.mjs --check 0 ('53 generated file(s) match the zh-Hans sources byte for byte'); npm ci --prefix .github/scripts/doc-samples 0 + check-doc-samples.mjs 0 ('98 pass · 10 not a spec sample · 2 opted out', spec 17.7.0); check-translations.mjs 0 ('translations gate passed'); check-translation-ownership.mjs --actor os-tesla --files (git diff --name-status --no-renames origin/main...HEAD) 0, not enforced; with TRANSLATION_BOT_LOGIN simulated, 0 ('7 translation artifact(s) deleted, none added or modified'); check-translation-output.mjs --files 0 and --self-test 0; os-verify-lock.sh -- pnpm turbo run type-check --continue 0 (cache miss, executed); os-verify-lock.sh -- pnpm turbo run build 0 (1005 static pages; Satori OG font fetches fail through the container TLS proxy, environmental; the final run is a cache hit on hash c0f28c15a7edb98c, which this worktree executed on the identical tree); check-locale-surface.mjs 0; check-positioning.mjs 0 ('4 copies equal their constants ... no stale sentence in 80 English sources'); check-search-locales.mjs 0 ('all 8 locales answer 200'; en 80/80 own pages found by title); os-verify-lock.sh -- pnpm turbo run test 0 ('11 self-test(s) passed'). Reconciliation: scripts/pm/dispatch-gates.mjs is objectstack-only, so the list is hand-derived from objectos ci.yml + translations.yml at 76988da. Not run locally (CI-only, cited): Node floor, Half-state sweeper self-test, Worker packaging, size budget, render smoke-check. CI check-runs on d4f1305: build success (every step success, including 'Worker bundle fits the size budget' and 'The docs site renders — smoke-check a local preview'; 'Upload the Worker bundle' skipped), Ownership & freshness success, Node floor success, Deploy docs skipped. Run: https://github.com/objectstack-ai/objectos/actions/runs/38741191729.",
    "mcp_calls": "0",
    "api_writes": "2 — both via the fleet-write relay (each a POST /repos/objectstack-ai/objectstack/dispatches, executed as objectstack-fleet[bot]): (1) pr_create → POST /repos/objectstack-ai/objectos/pulls + POST /repos//issues/332/assignees (read-back: 12298 bytes sent = stored; assignees os-tesla); (2) comment → POST /repos//issues/328/comments (this report). Plus 3 git pushes (empty-branch probe, 87e27ef, d4f1305), which are not REST. 0 PR body edits, 0 label writes, 0 card assignee writes, 0 merges, not marked ready.",
    "line_budget": "n/a — no skills/** or ledgered file touched",
    "files_changed": "A content/docs/ontology.mdx; M content/docs/meta.json, index.mdx, why.mdx, architecture.mdx, extend-existing-systems.mdx, build/index.mdx, build/agents.mdx, build/ai-builder.mdx, build/templates.mdx, build/interface/actions.mdx, configure/data-sources.mdx, resources/glossary.mdx, resources/faq.mdx; D content/docs/build/templates.{de,es,fr,ja,ko,zh-Hans,zh-Hant}.mdx — 21 files, +365 -841, all inside the card's file surface",
    "deviations": [
    "Commit trailers carry 'Co-Authored-By: Claude Opus 5.5' from the harness attribution reminder; the os-dev definition asks for a model-free trailer pair. History left as pushed, per 'report, do not rewrite'.",
    "Bounded in-place corrections beyond the card's listed line ranges, all in surface files and the same defect class; each is named in the PR body with evidence (see summary).",
    "The browser check ran on next start of the production build, not npm run dev; the build is what ships.",
    "My own next start wrapper exited on kill while its next-server child, plus esbuild/workerd children, kept port 3328. Found by cwd = my worktree and stopped by PID. No processes left; the worktree was removed after the PR.",
    "Screenshots are hosted as a private claude.ai artifact: the container has no image-upload path into the PR, and throwaway branches are forbidden.",
    "Waited for CI in the foreground only because the dispatch explicitly asked to read the render smoke-check and size gate on the final head."
    ],
    "open_questions": [],
    "out_of_scope_findings": [
    "carrier: #330 (owns reference/rest-api.mdx) and #329 (owns reference/security.mdx) · class: a · reference/rest-api.mdx:142 'Each action is also exposed to the AI as a action_NAME tool' and reference/security.mdx:206 'one action_NAME tool per declared action' repeat this card's item-2 claim; contradicted by configure/mcp.mdx:134-137 and objectstack ai/actions-as-tools.mdx:90-98 · dedupe: action_ tool, ai.exposed, every action exposed",
    "class: a · reach: named producer — build/templates.mdx:47 publishes pnpm dlx @objectstack/cli create my-app --template todo; at @objectstack/cli@17.7.0 (4e4e881) os create takes TYPE [NAME] and answers 'Unknown type' (cli/src/commands/create.ts:640), and create-objectstack refuses -t todo as retired (template-registry.ts:46-52: todo, compliance, content, contracts, procurement 'delisted from the ObjectStack template marketplace'); source-read, not executed. The same page's catalog (:18-32, :79-87), index.mdx:43-44 and build/index.mdx:15, :46-48 still name the delisted templates as installable; whether the ObjectOS marketplace lists them is NOT MEASURED · dedupe: os create --template, delisted templates, template catalog todo, Fork as a codebase",
    "class: a · reach: named producer — build/interface/actions.mdx:43-57 sample body calls ctx.data.update('invoice', input.id, ...) and now(); the 17.7 action body face is ctx.api.object(...), ctx.params, ctx.record (runtime/src/sandbox/body-runner.ts:21-41; action-execution.ts actionContext), with no ctx.data; not executed · dedupe: ctx.data, action body sample, approve_invoice body",
    "carrier: #330 (owns reference/cli.mdx) · class: a · reference/cli.mdx:98-103 documents os create example, retired by #16483 (cli create.ts:555 RETIRED_TEMPLATES at 4e4e881) · dedupe: os create example, retired template",
    "class: b · repo objectstack-ai/objectstack · reach: named producer — content/docs/data-modeling/drivers.mdx:975-977 and external-datasources.mdx:265-266 say the parse rejects an external block on a managed datasource, and that managed credentials go in config from the environment · Seam: spec:DatasourceSchema.external.credentialsRef (valid on managed, #8153) → consumer: none (docs) · evidence: @objectstack/spec 17.7.0 safeParse PASS {external:{credentialsRef}} on managed; REFUSED {external:{allowWrites:true}} with 'A managed datasource may carry external.credentialsRef (and only it)' · dedupe: credentialsRef managed, external block managed datasource, read-only grant drivers",
    "carrier: none — noted in objectos#332 Acceptance notes only, not filed (no reach: HTTP not measured) · objectstack docs link https://docs.objectos.app/docs/ai (ai/actions-as-tools.mdx:149, :234 + 3 more); this site is docs.objectos.ai (apps/docs/lib/site.ts:44) and has no /docs/ai route",
    "carrier: none — measurement gap, left unchanged · resources/glossary.mdx:261 self sign-up wording vs the framework's 17.3 invite_only default; needs a reading on a running ObjectOS deployment"
    ]
    }

  3. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report
    {
    "addendum_to": "os-dev-report 6193066810 (objectos#328)",
    "round": "patch round 1",
    "status": "done",
    "pr": "#332",
    "head": "5623532",
    "files_changed_this_round": "D content/docs/build/index.{de,es,fr,ja,ko,zh-Hans,zh-Hant}.mdx; M content/docs/build/templates.mdx; M content/docs/build/interface/actions.mdx — PR now 28 files, +379 -1271",
    "gates": "local at 5623532, each exit 0 captured before any pipe: gen-zh-hant --check; check-doc-samples (98 pass · 10 N/A · 2 opted out); check-translations; check-translation-ownership (not enforced; simulated bot: 14 deleted, none added or modified); check-translation-output --files and --self-test; turbo type-check (cache miss, executed); turbo build (cache miss, executed); check-locale-surface; check-positioning; check-search-locales (en 80/80); turbo test (cache hit, inputs unchanged). CI on 5623532: build success (every step, including size budget and render smoke-check), Ownership & freshness success, Node floor success, Deploy docs skipped — https://github.com/objectstack-ai/objectos/actions/runs/38852050710",
    "pr_body": "NOT edited. The os-dev definition says a dev writes the PR body once, when the PR is opened, and names any later change for the seat to write; that conflicts with the dispatch's 'update the PR body (≤2 edits)', and the definition wins. Text for the seat to append is below this JSON.",
    "api_writes_this_round": "1 — this comment (relay: POST /repos/objectstack-ai/objectstack/dispatches → POST /repos//issues/328/comments). Plus 1 git push. 0 PR body edits, 0 label, 0 assignee writes; the PR stays a draft.",
    "mcp_calls": "0"
    }

    Patch round 1 (5623532)

    • build/index.mdx locale siblings deleted. The Actions row no longer says actions are callable from flows, and it makes agent access conditional on exposure. Under [Decision] An English docs correction leaves its locale siblings asserting the corrected-away claim — #59 says delete them, the seat post says leave them, and #68 blocks the pass that would fix them #256 ruling 5989567068, the seven build/index.*.mdx siblings are deleted and zh-Hant regenerated (the generator removed the stray zh-Hant file).

    • build/templates.mdx scaffold command, measured. pnpm dlx @objectstack/cli create my-app --template todo fails on 17.7.0 three ways:

      • pnpm refuses ERR_PNPM_DLX_MULTIPLE_BINS;
      • os create my-app --template todo answers Nonexistent flag: --template (exit 2); the os create signature is TYPE [NAME], plugin only;
      • create-objectstack my-app --template todo answers Template "todo" has been retired (exit 1).

      It is replaced by npm create objectstack@latest my-app; npm create objectstack@17.7.0 my-app -- --skip-install --skip-skills scaffolds the blank template (exit 0). One sentence says the scaffolder no longer fetches content templates by name. The catalog (:18-32, :79-87) and the index / build-index template mentions are untouched; whether the ObjectOS marketplace lists them stays unmeasured.

    • build/interface/actions.mdx body sample, verified against 4e4e8814 sources. It now reads await ctx.api.object('invoice').update({ id: ctx.recordId, ... approved_by: ctx.user.id, approved_at: new Date().toISOString(), approval_note: input.note }) with capabilities: ['api.write']. Sources:

      • an action body runs as (input, ctx), with input the params bag (runtime/src/sandbox/script-runner.ts:123-150; body-runner.ts buildActionSandboxContext). ctx.params, in the rework brief, is the handler-level ActionContext key; inside the sandbox the same bag is input / ctx.input;
      • ctx.record is read-only, and ctx.api.object(...) is the write channel (body-runner.ts:39-44; the runtime's own prescription at body-runner.ts:690);
      • an undeclared capability throws (spec/src/data/hook-body.zod.ts:224-228).

      It was not executed. Reverse check: mutating the capability to api.writ makes check-doc-samples.mjs FAIL at actions.mdx:21; restored from HEAD, blob hash equal.

    • Gates at 5623532, exit 0 each:

      • local: gen-zh-hant --check, check-doc-samples (98 pass), check-translations, translation ownership (simulated bot: 14 artifacts deleted, none added), translation output and --self-test, turbo type-check, turbo build, check-locale-surface, check-positioning, check-search-locales, turbo test.
      • CI build succeeded, including the size budget and the render smoke-check; Ownership & freshness and Node floor succeeded.
    • Commit trailer. This round's commit carries the model-free trailer pair.

    With this, two bullets under "Out of scope here" are now done in this PR: the templates.mdx:46-51 command and the actions.mdx:43-57 body. The template-catalog half of the templates bullet stays.

  4. objectstack-fleet commented on Oct 16, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT → PR #332 comment 6208343950 · 2026-10-16T04:51Z · awaiting a human merge (merging to main publishes production).


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions