Qualify read-only forwarding and scoped portable discovery

This commit is contained in:
Timothy J. Aveni
2026-09-20 19:55:29 -07:00
parent 619b3d61c7
commit 21502ed023
3 changed files with 13 additions and 1 deletions
+2 -1
View File
@@ -11,7 +11,7 @@ import { compileQuery } from "../src/query/compile.js";
import { readReaderFixture } from "./reader-fixture.js"; import { readReaderFixture } from "./reader-fixture.js";
const directory = resolve("test/fixtures/local-first-composite"); const directory = resolve("test/fixtures/local-first-composite");
export async function loadCompositeWorkspace() { export async function loadCompositeWorkspace() {
const changed = new Set(["DocumentFactory", "DocumentMetadata", "CommentFactory"]); const changed = new Set(["DocumentFactory", "DocumentMetadata", "DocumentLabel", "CommentFactory"]);
const read = (name: string) => readFile(resolve(directory, `${name}.qx`), "utf8"); const read = (name: string) => readFile(resolve(directory, `${name}.qx`), "utf8");
const source = { repository: "https://example.test/composite.git", commit: "b".repeat(40) }; const source = { repository: "https://example.test/composite.git", commit: "b".repeat(40) };
const interfaces = new Map<string, InterfaceRevision>(); const interfaces = new Map<string, InterfaceRevision>();
@@ -22,6 +22,7 @@ export async function loadCompositeWorkspace() {
"DocumentActions", "DocumentActions",
"DocumentFactory", "DocumentFactory",
"DocumentMetadata", "DocumentMetadata",
"DocumentLabel",
"CommentFactory", "CommentFactory",
]) { ]) {
const result = compileCapabilityResourceSource( const result = compileCapabilityResourceSource(
+6
View File
@@ -0,0 +1,6 @@
interface DocumentLabel id "interface:reader:document-label"
revision "interface:reader:document-label@1" {
queryable value title id "document:view-title" : string {
get id "document:view-title:get" execution snapshot targets [browser, server];
}
}
+5
View File
@@ -7,6 +7,7 @@ workspace Reader id "workspace:reader" revision "workspace:reader@1" commit "aaa
import package ReaderRuntime; import package ReaderRuntime;
import package CommentRuntime; import package CommentRuntime;
import interface DocumentMetadata; import interface DocumentMetadata;
import interface DocumentLabel;
import interface CommentFactory; import interface CommentFactory;
// Shared record definitions, repeated explicitly in independently locked resources. // Shared record definitions, repeated explicitly in independently locked resources.
@@ -62,6 +63,10 @@ workspace Reader id "workspace:reader" revision "workspace:reader@1" commit "aaa
}; };
} }
conform Document as DocumentLabel id "conformance:reader:document-label" {
bind title.get to interface DocumentMetadata.label.get;
}
conform Document as DocumentMetadata id "conformance:reader:document-metadata" { conform Document as DocumentMetadata id "conformance:reader:document-metadata" {
private state Label id "slot:document:label" on Document : string policy register; private state Label id "slot:document:label" on Document : string policy register;
initialize { label to state Label; }; initialize { label to state Label; };