feat: add Subject async chat with explicit durable publication

This commit is contained in:
2026-10-29 22:27:23 +09:00
parent 7ad6030498
commit 882316fb3b
54 changed files with 6187 additions and 21 deletions
+7
View File
@@ -108,6 +108,13 @@ pub const BUILTIN_PROFILE_RESOURCES: &[BuiltinProfileResource] = &[
description: "Code implementation with optional Git/MR review recipe; no universal Ticket conclusion gate.",
imports: BASE_IMPORT,
},
BuiltinProfileResource {
selector: Some("builtin:async-chat"),
path: "profiles/async-chat.dcdl",
source: include_str!("../../../resources/profiles/async-chat.dcdl"),
description: "Explicitly connected Subject chat with bounded references and asynchronous Worker delegation.",
imports: NO_IMPORTS,
},
BuiltinProfileResource {
selector: Some("builtin:companion"),
path: "profiles/companion.dcdl",
+19
View File
@@ -39,3 +39,22 @@ fn catalog_import_metadata_has_no_cycles() {
visit(resource.path, &mut BTreeSet::new());
}
}
#[test]
fn async_chat_is_public_and_does_not_inherit_broader_profile_defaults() {
let catalog = builtin_profile_catalog_snapshot();
let path = &catalog.entrypoints["builtin:async-chat"];
let resource = BUILTIN_PROFILE_RESOURCES
.iter()
.find(|resource| resource.path == path)
.unwrap();
assert_eq!(resource.selector, Some("builtin:async-chat"));
assert!(!resource.description.is_empty());
assert!(resource.imports.is_empty());
assert!(
!catalog
.imports
.keys()
.any(|request| request.starts_with(&format!("{path}\0")))
);
}