Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
2b0ac5c
groups: add group-level custom blob field
arthyn Jul 30, 2026
b7ec149
api/shared: plumb group blob through the client stack
arthyn Jul 30, 2026
55debe1
api: use static import in groupsApi blob test
arthyn Jul 30, 2026
a13c04e
api: fall back to v2 group surfaces on old backends
arthyn Jul 30, 2026
46ea9d9
api/shared: retain group blob through v1 create upserts
arthyn Jul 30, 2026
b108ad2
groups: order the group-action-5 poke arm above group-action-4
arthyn Aug 3, 2026
4bbbf62
groups: file group-ui-3 with the per-group marks
arthyn Aug 3, 2026
b795264
groups: freeze the singular group-ui marks
arthyn Aug 3, 2026
6017cf9
api: name the init and changes types for the versions we scry
arthyn Aug 3, 2026
e8bfb47
api: subscribe to one group lane instead of three
arthyn Aug 3, 2026
35c8461
api: give group-action-5 its own type
arthyn Aug 3, 2026
ab016db
api: drop the old-backend fallbacks, hard cutover to v3
arthyn Aug 3, 2026
22f441a
api: drop the tautological subscribe-lane test
arthyn Aug 3, 2026
7c59ccb
api: retire stale version names on the group wire types
arthyn Aug 3, 2026
e53d1ab
api/shared: drop comments that restate the code
arthyn Aug 3, 2026
c8a8733
groups: retire group-action-4 client-side, poke only action-5
arthyn Aug 3, 2026
f3d6e73
groups: address review — deflate action-4, drop mark-warmer
arthyn Aug 4, 2026
643ea9a
e2e: regenerate test piers with the group blob desk
arthyn Aug 4, 2026
408ada2
groups: delete the dead light/groups and plural ui/groups scries
arthyn Aug 4, 2026
6692f1f
test(openclaw): scry gateway liveness from %steward, not %gateway-status
arthyn Aug 4, 2026
a085007
address Codex review: no-op blob poke, archive script guards
arthyn Aug 4, 2026
551d38d
Merge branch 'hunter/tlon-6274-groups-add-group-level-opaque-blob-fie…
arthyn Aug 5, 2026
0e0d369
groups: keep the light/groups scry, it has live callers
arthyn Aug 5, 2026
27b80d0
groups: move the blob init/changes arms to v10/v11
arthyn Aug 7, 2026
ae68435
Merge branch 'develop' into hunter/tlon-6274-groups-add-group-level-o…
arthyn Aug 12, 2026
2bed30e
groups: encode init-10 activity with the v10 encoder
arthyn Aug 12, 2026
b496c5f
Merge remote-tracking branch 'origin/develop' into hunter/tlon-6274-g…
arthyn Aug 12, 2026
82eac33
Merge branch 'develop' into hunter/tlon-6274-groups-add-group-level-o…
arthyn Aug 13, 2026
ffb8da4
Merge branch 'develop' into hunter/tlon-6274-groups-add-group-level-o…
arthyn Aug 14, 2026
f778ccd
bot-e2e: apply the branch desk to ~mug too
arthyn Aug 14, 2026
5d1b98b
Merge pull request #6224 from tloncorp/hunter/tlon-6274-remove-dead-g…
arthyn Aug 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 24 additions & 5 deletions apps/tlon-web/rube/archive-piers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ SKIP_MELD=${SKIP_MELD:-false}
VERIFY_AFTER_UPLOAD=${VERIFY_AFTER_UPLOAD:-false}
FRESH_BOOT=${FRESH_BOOT:-false}
SKIP_PREPARE=${SKIP_PREPARE:-false}
ARCHIVE_TAG=${ARCHIVE_TAG:-}

# Parse command line arguments
for arg in "$@"; do
Expand Down Expand Up @@ -59,6 +60,7 @@ for arg in "$@"; do
echo " SKIP_CLEANUP=true Keep local archives after upload"
echo " SKIP_MELD=true Skip meld operation (for low-memory systems)"
echo " SKIP_PREPARE=true Skip ship prep/re-extraction (same as --skip-prepare)"
echo " ARCHIVE_TAG=-tag Name archives rube-{ship}{tag}.tgz instead of bumping the number"
echo " URBIT_BINARY=PATH Urbit binary to use for sync/roll/chop (must run on this host)"
echo ""
exit 0
Expand Down Expand Up @@ -123,10 +125,22 @@ get_current_version() {
echo "$url" | sed -n 's/.*rube-'"$ship"'\([0-9]*\)\.tgz/\1/p'
}

# Function to increment version
# Function to increment version, or use a literal tag when pinned.
# ARCHIVE_TAG names archives after what they contain rather than a position in
# the numbered lineage (e.g. ARCHIVE_TAG=-group-blob -> rube-zod-group-blob.tgz),
# for piers tied to a branch.
get_next_version() {
local ship=$1
if [ -n "$ARCHIVE_TAG" ]; then
echo "$ARCHIVE_TAG"
return 0
Comment thread
arthyn marked this conversation as resolved.
fi
local current_version=$(get_current_version "$ship")
if [ -z "$current_version" ]; then
print_error "Cannot derive a version for ~$ship from $MANIFEST_FILE" >&2
print_info "The manifest holds a non-numeric archive name; set ARCHIVE_TAG explicitly." >&2
return 1
Comment thread
arthyn marked this conversation as resolved.
fi
echo $((current_version + 1))
}

Expand Down Expand Up @@ -920,9 +934,9 @@ update_dockerfile() {
# Pattern: "https://bootstrap.urbit.org/rube-SHIP*.tgz SHIP.tgz"
# macOS sed requires empty string after -i, GNU sed works with or without
if [[ "$OSTYPE" == "darwin"* ]]; then
sed -i '' "s|https://bootstrap.urbit.org/rube-${ship}[0-9]*.tgz ${ship}.tgz|${new_url} ${ship}.tgz|g" "$DOCKERFILE"
sed -i '' "s|https://bootstrap.urbit.org/rube-${ship}[^ ]*\.tgz ${ship}.tgz|${new_url} ${ship}.tgz|g" "$DOCKERFILE"
else
sed -i "s|https://bootstrap.urbit.org/rube-${ship}[0-9]*.tgz ${ship}.tgz|${new_url} ${ship}.tgz|g" "$DOCKERFILE"
sed -i "s|https://bootstrap.urbit.org/rube-${ship}[^ ]*\.tgz ${ship}.tgz|${new_url} ${ship}.tgz|g" "$DOCKERFILE"
fi

print_status "Updated Dockerfile for ~$ship"
Expand Down Expand Up @@ -1028,8 +1042,13 @@ main() {
exit 1
fi

# Get next version number
local next_version=$(get_next_version "$ship")
# Get next version number. Split the declaration from the assignment
# so a failure in get_next_version is not masked by `local`.
local next_version
if ! next_version=$(get_next_version "$ship"); then
print_error "Aborting: no archive version available for ~$ship"
exit 1
fi
print_info "Next version for $ship: $next_version"

# Archive the pier
Expand Down
6 changes: 3 additions & 3 deletions apps/tlon-web/src/mocks/handlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
DmRsvp,
WritDiff,
} from '@tloncorp/api/urbit/dms';
import { GroupActionV4 } from '@tloncorp/api/urbit/groups';
import { GroupActionV5 } from '@tloncorp/api/urbit/groups';
import UrbitMock, {
Handler,
Message,
Expand Down Expand Up @@ -149,9 +149,9 @@ const groups: Handler[] = [
{
action: 'poke',
app: 'groups',
mark: 'group-action-4',
mark: 'group-action-5',
returnSubscription: specificGroupSub,
dataResponder: (req: Message & Poke<GroupActionV4>) => {
dataResponder: (req: Message & Poke<GroupActionV5>) => {
if ('group' in req.json) {
return createResponse(req, 'diff', {
flag: req.json.group.flag,
Expand Down
2 changes: 1 addition & 1 deletion desk/app/channels-server.hoon
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
%- %- agent:neg
:+ notify=|
[~.channels^%4 ~ ~]
(my %groups^[~.groups^%2 ~ ~] ~)
(my %groups^[~.groups^%3 ~ ~] ~)
%- agent:dbug
%^ verb | %warn
::
Expand Down
2 changes: 1 addition & 1 deletion desk/app/channels.hoon
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@
:+ notify=&
[~.channels^%4 ~ ~]
%- my
:~ %groups^[~.groups^%2 ~ ~]
:~ %groups^[~.groups^%3 ~ ~]
%channels-server^[~.channels^%4 ~ ~]
==
%- agent:dbug
Expand Down
2 changes: 1 addition & 1 deletion desk/app/contacts.hoon
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
/+ *contacts, kol
::
:: performance, keep warm
/+ j0=contacts-json-0, j1=contacts-json-1, mark-warmer
/+ j0=contacts-json-0, j1=contacts-json-1
::
|%
:: conventions
Expand Down
37 changes: 36 additions & 1 deletion desk/app/groups-ui.hoon
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
a=activity, av=activity-ver
/+ default-agent, dbug, verb, vita-client
:: performance, keep warm
/+ mark-warmer
^- agent:gall
=>
|%
Expand Down Expand Up @@ -255,6 +254,25 @@
profile
==
``ui-init-9+!>(init)
::
:: /v10: v11-native groups (carries the group blob)
::
[%x %v10 %init ~]
=+ .^([=groups-ui:v11:gv =foreigns:v8:gv] (scry %gx %groups /v4/init/noun))
=+ .^(channel=channel-10:u (scry %gx %channels /v6/init/noun))
=+ .^(chat=chat-2:u (scry %gx %chat /v1/init/noun))
=+ .^(=activity:v10:av (scry %gx %activity /v6/activity/noun))
=+ .^(profile=? (scry %gx %profile /bound/loob))
=/ init=init-10:u
:* groups-ui
foreigns
channel
activity
pins
chat
profile
==
``ui-init-10+!>(init)
::
[%x %v5 %changes since=@ ~]
=+ .^(activity=json (scry %gx %activity /v4/activity/changes/[since.pole]/json))
Expand Down Expand Up @@ -347,6 +365,23 @@
'groups'^groups
'contacts'^contacts
==
::
:: /v11: v11-native groups (carries the group blob)
::
[%x %v11 %changes since=@ ~]
=+ .^(activity=json (scry %gx %activity /v6/activity/changes/[since.pole]/json))
=+ .^(channels=json (scry %gx %channels /v6/changes/[since.pole]/json))
=+ .^(chat=json (scry %gx %chat /v4/changes/[since.pole]/json))
=+ .^(groups=json (scry %gx %groups /v3/changes/[since.pole]/json))
=+ .^(contacts=json (scry %gx %contacts /v2/changes/[since.pole]/json))
:^ ~ ~ %json
!> %- pairs:enjs:format
:~ 'activity'^activity
'channels'^channels
'chat'^chat
'groups'^groups
'contacts'^contacts
==
::
[%x %v5 %init-posts channels=@ context=@ ~]
=+ .^(channels=json (scry %gx %channels /v5/init-posts/[channels.pole]/[context.pole]/json))
Expand Down
Loading
Loading