nigig-org/nigig-lite
arena-agent f9c12359bf
Some checks failed
repo hygiene / hygiene (push) Has been cancelled
nimanyatta: drop vendored xitca-web, use crates.io sources
Delete the vendored xitca-web framework checkout at repo root and
repoint all consumers at the published crates:

- nimanyatta/Cargo.toml: drop path overrides on xitca-web (deps +
  dev-deps), remove the xitca-client dep (never published on
  crates.io) from the manifest and the load/b_server features, and
  remove the [patch.crates-io] section that forced every xitca-*
  crate onto the vendored checkout.
- nigig-lite/crates/common: xitca-web path dep -> version 0.8 from
  crates.io (vendored snapshot was 0.8.1, identical).
- Test suites (shared_test_client, security_suite, enhanced_security,
  enhanced_security_tests) and kra-etims-sdk: migrate xitca-client
  HTTP usage to reqwest from crates.io, preserving request
  semantics (header-override order, error mapping).

Verified in a fresh clone on the pinned toolchain (1.97.1):
nigig-common checks, security/enhanced suites check, and the
session/fast/regression harness binaries build.
2026-09-26 17:16:51 +00:00
..
crates/common nimanyatta: drop vendored xitca-web, use crates.io sources 2026-09-26 17:16:51 +00:00
README.md nimanyatta: Phase 8 — reconstruct nigig-common, repair load suites, close REST coverage gaps 2026-09-26 16:24:41 +00:00

nigig-lite

Shared, dependency-light crates for the nigig / nimanyatta family.

crates/common — nigig-common

The shared foundation crate consumed by the nimanyatta chat/sync server (as a path dependency from nimanyatta/Cargo.toml) and by its load-test suites:

  • ids — strongly-typed ULID identifiers (UserId, RoomId, EventId, DeviceId) that serialise in prefixed wire form (user_01H…).
  • errors — the unified AppError model: HTTP status mapping, stable machine-readable codes, and an xitca-web Service impl that renders JSON error bodies.
  • auth — REST DTOs for register/login/refresh/logout, token pairs, and the UserProfile record shape.
  • rooms — room, membership, timeline-event and message-content models plus the rooms REST DTOs.
  • roles — server/room/custom role and permission model (PermissionSet, ResolvedPermissions).
  • sync — the /sync request/response contract (filters, pagination tokens).
  • protocol — the WebSocket chat protocol (ClientToServerMsg, ServerToClientMsg, presence, receipts) mirrored from nimanyatta/crates/nimanyatta-protocol.
  • validatable — shared input validators (username/password/message body rules).

The crate is standalone (empty [workspace] table) and has its own unit tests (cargo test → 21 tests).

The WebSocket wire shapes are kept byte-compatible with nimanyatta/crates/nimanyatta-protocol — the client library — so both sides of the socket agree on field names and tagging.