Adopt the shared RFC 3986 STAR URI model as canonical actor identity #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "agent/star-uri-canonical"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Resolve the STAR URI architecture conflict (issue #52, STAR-SERVER-041, STAR-LANG-004 amendment): final StarLang now uses the approved shared RFC-based STAR URI model as canonical actor/service identity, and the legacy
star://domain:address:actor-nametuple is bounded compatibility input only.Authoritative source
The approved grammar and rules are STAR-SERVER-041 (RFC 3986
star://authority/resource-kind/resource-path, canonicalization rules 1-12, reviewed resource-kind registry). The reviewed reference implementation lives in starintel-serversource/star-uri.lisp+star-uri-legacy.lisp(temporary gserver-local layer whose replacement marker designates the shared StarLang library); this PR implements that same model instar-actor-protocol/src/star-uri.lispand shares its conformance fixtures. No second URI parser/model was invented; nothing new was added underprototype/(the service-uri shell only forwards the legacy API and the migration entry point).RED evidence
Commit
fdc8f75adds the failing conformance/canonicalization tests first. Machine-recorded RED runs (--non-interactive, so failures cannot hide behind REPL exits): star-actor-protocol-tests, starlang-compiler-tests, and starlang-runtime all exited 1 at the base head (missing canonical API; tuple-only compiler/runtime). A gate-runner hazard was found and recorded in the KB: without--non-interactivethe runner exits 0 on failure.Exact semantic change
:service-urimust be a canonical actor URI whose terminal resource-path segment equals the actor contract name; one- and multi-segment paths are both valid with no domain semantics (STAR-LANG-004 manifest example honored).star://local/actor/<name>(configurable authority).:authority/:resource-kind/:resource-pathmetadata;:domain/:addressare no longer validated fields.star-actor-referencecarries authority + resource-path (no domain-id/node-id/logical-path) and serializes canonical identity.wire-dispatcher-invalid-actor-error.Compatibility retained
parse-star-service-uriand friends) and the prototype shell forwards it unchanged.migrate-legacy-star-urirequires an explicit:tocanonical target or:mapmigration map, normalizes immediately into the canonical representation, and never reuses the legacy domain as an authority (STAR-SERVER-041 forbids legacy. rewrites).Tests and gates (all green at head
b467d04)bash ci/check-repository-contracts.sh,bash ci/check-prototype-migration.shnix flake check -L(all checks passed)Docs updated: README migration map and actor-runtime state, ACTOR-RUNTIME-MIGRATION-MATRIX, migration ledger note, CHANGELOG; historical slice docs carry explicit superseded-URI notes; durable
.prolog/kbfacts (star-uri-architecture.pl, updated compiler-ownership/toolchain/verification-workflow) describe the same architecture.CI status at head
b467d04: every failing job is infrastructure, not tests.The same five jobs fail identically on pristine main (
0343d65, runs 1-5), so this PR introduces no regression. All authoritative gates pass locally at this exact head: star-actor-protocol-tests, starlang-compiler-tests (35/35), starlang-runtime, starlang-prototype (34 scripts), check-repository-contracts.sh, check-prototype-migration.sh, and nix flake check -L.Left unmerged per the green-head rule. Unblock options: pin upload-artifact to v3 (or drop the upload step on forgejo), mirror determinate-nix-action at data.forgejo.org or preinstall nix in the runner image, and/or run the authoritative CI matrix on github.com/lost-rob0t/star-lang.
View command line instructions
Manual merge helper
Use this merge commit message when completing the merge manually.
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.