v0.19 ensembles #1459

Open
vyzo wants to merge 75 commits from v0.19-ensemble into v0.19-staging
Owner
No description provided.
fare approved these changes 2026-06-14 19:05:20 +00:00
@ -0,0 +4,4 @@
(import ./ucan)
(export #t)
(defstruct Actor
Owner

Should that be ActorID ?
Or else, what do you call an actual actor?

Should that be ActorID ? Or else, what do you call an actual actor?
Author
Owner

renamed to Handle

renamed to Handle
vyzo marked this conversation as resolved
@ -0,0 +16,4 @@
(auth : :list) ; UCAN authorization tokens for the message
(method : :string) ; the method invoked by the message
(body : :u8vector) ; the message body
(epxire : :integer) ; expiration of the message in UNIX seconds
Owner

expire ?

expire ?
vyzo marked this conversation as resolved
@ -0,0 +28,4 @@
(group : :string) ; destination group
(method : :string) ; the method invoked by the message
(body : :u8vector) ; the message body
(epxire : :integer) ; expiration of the message in UNIX seconds
Owner

expire ?

Maybe common class BaseMessage between Message and BroadcastMessage ?

expire ? Maybe common class BaseMessage between Message and BroadcastMessage ?
Author
Owner

done

done
vyzo marked this conversation as resolved
@ -0,0 +11,4 @@
;; context for security operations
(interface (SecurityContext Closer)
;; the actor to which this security context pertains
(actor)
Owner

owner?

owner?
Author
Owner

renamed to handle

renamed to handle
vyzo marked this conversation as resolved
@ -0,0 +62,4 @@
;; actor message handling
(interface (ActorHandler Closer)
;; reveive a message
Owner

receive

receive
Author
Owner

fixed

fixed
vyzo marked this conversation as resolved
@ -0,0 +37,4 @@
(expire token.expire :- :integer))
=> VerificationResult
(if (fx= next.type DELEGATE)
(if (or (equal? next.audience issuer)
Owner

Can you refactor so the error results are right next to the error case?

Can you refactor so the error results are right next to the error case?
Author
Owner

invert the tests? ok.

invert the tests? ok.
Author
Owner

done

done
vyzo marked this conversation as resolved
@ -0,0 +47,4 @@
=> :void
(TODO save-capability-context!))
(def public-key-cache-ttl 120)
Owner

Is that an absolute constant? Based on what standard/document? If not, I don't like arbitrary numbers sprinkled around the code without even a distinctive syntactical marker (like the defconstant of Common Lisp, the *earmuffs* of special variables (more akin to Scheme parameters), the +pluses+ around constants).

Is that an absolute constant? Based on what standard/document? If not, I don't like arbitrary numbers sprinkled around the code without even a distinctive syntactical marker (like the `defconstant` of Common Lisp, the `*earmuffs*` of special variables (more akin to Scheme parameters), the `+pluses+` around constants).
Author
Owner

meant it to be 1200.

i dont think we need to earmuff this, it is fine as it is. I hate the pluses.

meant it to be 1200. i dont think we need to earmuff this, it is fine as it is. I hate the pluses.
vyzo marked this conversation as resolved
@ -0,0 +37,4 @@
((fx= code DID-KEY-ED25519)
(bytes->ed25519-public-key bytes))
(else
(raise-contract-violation did->public-key "unknwon key type" code))))
Owner

unknown

You need M-x ispell or something

unknown You need M-x ispell or something
vyzo marked this conversation as resolved
@ -0,0 +13,4 @@
(path :- :string) ; path where the context is stored
(key :- :u8vector) ; encryption key for private key material
;; data tables
(private-keys :- HashTable) ; did string -> PrivKey
Owner

comments needed. What keys are those? Those you control, I presume.

What roots? of what? Capability domains you control? You know about?

What are the input and output anchors? A brief description, please.

comments needed. What keys are those? Those you control, I presume. What roots? of what? Capability domains you control? You know about? What are the input and output anchors? A brief description, please.
Author
Owner

ok. I think i will do an implementation backed by an sqlite db, this is transient.

ok. I think i will do an implementation backed by an sqlite db, this is transient.
Author
Owner

added comments for now

added comments for now
vyzo marked this conversation as resolved
@ -0,0 +20,4 @@
(root-output-anchors :- HashTable) ; token set
(subject-input-anchors :- HashTable) ; did string -> token set
(subject-output-anchors :- HashTable) ; did string -> token set
(tokens :- HashTable) ; token set
Owner

explain that the values are the expiries.

explain that the values are the expiries.
vyzo marked this conversation as resolved
vyzo force-pushed v0.19-ensemble from e8d93c072a to f94ee59674 2026-06-18 03:12:58 +00:00 Compare
vyzo force-pushed v0.19-ensemble from 2f3a8d0bed to edcf514acc 2026-06-18 10:42:39 +00:00 Compare
otherwise CVE waiting to happen from rainbow tables
- move security-context to ucan
- current-time-seconds
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin v0.19-ensemble:v0.19-ensemble
git switch v0.19-ensemble

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.

git switch v0.19-staging
git merge --no-ff v0.19-ensemble
git switch v0.19-ensemble
git rebase v0.19-staging
git switch v0.19-staging
git merge --ff-only v0.19-ensemble
git switch v0.19-ensemble
git rebase v0.19-staging
git switch v0.19-staging
git merge --no-ff v0.19-ensemble
git switch v0.19-staging
git merge --squash v0.19-ensemble
git switch v0.19-staging
git merge --ff-only v0.19-ensemble
git switch v0.19-staging
git merge v0.19-ensemble
git push origin v0.19-staging
Sign in to join this conversation.
No description provided.