feat(ui): NDO Layer 0 UI — Lobby-first architecture with group-scoped NDO management#108
Merged
Conversation
- Export CREATABLE_NDO_LIFECYCLE_STAGES and CreatableNdoLifecycleStage from shared-types - NdoCreateModal: Ideation through Active; helper copy for mature/tool NDOs - Sweettest: create at Stable; reject Hibernating at create - Docs: ui_design.md NDO creation table; agent.md resource-face lifecycle guidance Rebuilt shared-types locally for dist/ (gitignored); run packages/shared-types bun run build after pull. Co-authored-by: Cursor <cursoragent@cursor.com>
…and Regen Farmers Mutual - Introduced comprehensive documentation for the Digital Dairy Chain (DDC) and Regen Farmers Mutual (RFM), detailing their contexts, roles, and strategic initiatives. - Synthesized public materials and project requirements to explore collaboration, farmer value, and business model alignment with the Nondominium project. - Enhanced understanding of governance structures, economic events, and the integration of digital tools in the agricultural ecosystem. These additions provide valuable insights into the operational frameworks and collaborative opportunities within the agricultural sector.
- lobby.store, group.store: use LobbyServiceResolved (was LobbyServiceLive) so HolochainClientServiceTag is satisfied and E.runSync succeeds - zome-helpers: add optional roleName param to both wrapZomeCall helpers - lobby.service: pass roleName='lobby' so calls route to the Lobby DNA cell instead of defaulting to 'nondominium' (caused HTTP 500 from conductor) - shared-types lobby.types: rename GroupDescriptor -> GroupDescriptorStub (matches Rust type; eliminates duplicate export that shadowed the full GroupDescriptor in resource.types and broke 42 type-checks) - services/index.ts: remove duplicate LobbyService* export (lines 12 & 20) - holochain.service: null guard on appInfo() return value - cell.manager: narrow unknown type for lobbyCell.provisioned - lobby.service: add missing context arg to LobbyError.fromError - GroupProfileModal: double-cast LobbyUserProfile for dynamic field access
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Implements the MVP UI for NDO Layer 0 (issue #102): a Lobby-first navigation hierarchy where agents browse a federation-wide NDO registry, create and join Groups, and manage NDOs scoped to a Group. Integrates the Lobby DNA (#103) service layer into the frontend for the first time.
Changes
Lobby DNA integration
lobby.service: replaced localStorage stub with realzome_lobbycalls (get_all_ndo_announcements,announce_ndo,upsert_lobby_agent_profile,get_lobby_agent_profile); all calls explicitly route to thelobbyDNA rolezome-helpers: added optionalroleNameparameter to bothwrapZomeCallhelpers so services can target non-default DNA roleslobby.store,group.store: switched fromLobbyServiceLivetoLobbyServiceResolvedsoHolochainClientServiceTagis satisfied atE.runSynctimeservices/index.ts: removed duplicateLobbyService*re-exportNDO lifecycle — seven creatable stages
lifecycle_stageto the seven stages valid at registration (Ideation→Active), sourced from the newCREATABLE_NDO_LIFECYCLE_STAGESconstant in shared-typesshared-types package
GroupDescriptor→GroupDescriptorStubinlobby.types.tsto match the Rust type name and eliminate the duplicate export that was shadowing the fullGroupDescriptor(withndoHashes,createdBy,memberProfile) inresource.types.tsMiscellaneous type fixes
holochain.service: null guard onappInfo()return valuecell.manager: narrowedunknownforlobbyCell.provisionedGroupProfileModal: double-castLobbyUserProfilefor dynamic field accessDecisions
LobbyServiceLiveunresolved in storeHolochainClientServiceTagthroughmergeAll, which leaks an unsatisfied dependency and crashesE.runSyncat module loadroleNameto'nondominium'for lobby callszome_lobbyon thenondominiumcell returns HTTP 500 from the conductorGroupDescriptorname in lobby.typesGroupDescriptorin resource.types; the Rust type is already namedGroupDescriptorStubHow to test
# Inside nix shell bun run startDocumentation
packages/shared-types/src/lobby.types.ts:GroupDescriptor→GroupDescriptorStub(rename tracked in source)Related