Skip to content

fix(validate): database .await forms, MySQL alias, client: route, command-name collisions — 0.1.3 - #3

Merged
w0dm4n merged 1 commit into
mainfrom
fix/validator-0.1.3
Sep 18, 2026
Merged

w0dm4n merged 1 commit into
mainfrom
fix/validator-0.1.3

Conversation

@w0dm4n

@w0dm4n w0dm4n commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Four defects found by MCP-only agents on 2026-09-18, all reproducible with the index/ snapshot for 2.31.13+op77.76:

  1. open77_validate contradicted the database cards. Open77.database.query.await(...), MySQL.query.await, MySQL.ready, MySQL.update... read as "not in the catalogue" — 6 errors on a clean resource. A dotted call whose name minus a trailing .await is a catalogued native now resolves to that native (permission check included), and MySQL.<x> resolves as Open77.database.<x> on every index whose cards carry that namespace. The alias is a documented table in src/index/conventions.ts (the index only carries it in prose: the Open77.database.query card and server-api#database), each entry naming the guide section that documents it; a test checks those sections exist in the embedded index and still name both sides. A card that documents no .await form gets a warning rather than a false error. Messages keep the name as written (MySQL.nonsense (Open77.database.nonsense) is not in the catalogue…).
  2. open77_api client:<name> now works as the mirror of server:<name> (case-insensitive); a prefix contradicting runtime says so instead of "does not exist".
  3. server:exports / server:print answer a card-shaped text from the guides (server-exports#publish-a-service, server-api#logging), inlining the first section, until the base generator emits the cards — the table is dormant for any global that has a card (the client exports already does). open77_namespace _G lists them as a footnote.
  4. Command-name collisions. When a server is detected (open77_workspace), open77_validate warns when a literal RegisterCommand("<name>") / Open77.runtime.registerCommand("<name>") reuses a name another resource under that server already registers on the same side (client and server registries are separate; shared scripts count for both). Warning, never an error. Limitation: names built at run time are invisible to the scan, and with no server next to the session the check is off.

Version bumped to 0.1.3; README gets a "What's new" section (no CHANGELOG in the repo). Not published.

Test plan

  • npm run build, npm run lint
  • npm test: 16 pass, 1 skipped (runtimeLint, needs OPEN77_TEST_SERVER_DLL), 0 fail — the 5 new tests in tests/validator-013.test.ts cover: the conventions table against the embedded index; a resource using MySQL.query.await / Open77.database.update.await validating clean with database.access and failing with the permission error without it (plus unknown members, undocumented .await, wrong side, and the since check on op77.44); client: routes; server:exports / server:print; a fixture server dir with colliding command names
  • Owner: publish 0.1.3 from this worktree

🤖 Generated with Claude Code

…mand-name collisions — 0.1.3

Four defects measured by MCP-only agents on 2026-09-18 against the index for
2.31.13+op77.76:

- open77_validate flagged `Open77.database.query.await`, `MySQL.query.await`,
  `MySQL.ready`, `MySQL.update`... as "not in the catalogue" (6 errors on a
  clean resource). A dotted call whose name minus a trailing `.await` is a
  catalogued native now resolves to that native, permission check included,
  and `MySQL.<x>` resolves as `Open77.database.<x>` on every index whose cards
  carry that namespace. The alias and the guide-only globals live in
  src/index/conventions.ts, each entry naming the guide section that documents
  it; the suite checks those sections still exist and say so. A card that
  documents no `.await` form gets a warning instead of a false error.
- open77_api refused `client:<name>` while `server:<name>` worked; both pin
  the side now, and a prefix contradicting `runtime` says so.
- open77_api answered "missing" for `server:exports` and `server:print`, two
  globals the server-exports guide uses that have no card yet; they render a
  card-shaped answer from the guides, and `open77_namespace _G` footnotes them.
- open77_validate warns when a literal RegisterCommand name is already
  registered on the same side by another resource under the detected server
  (open77_workspace); off when no server is next to the session.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@w0dm4n
w0dm4n merged commit fb620c4 into main Sep 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant