# @ibgib/space-gib changelog

_note: as you implement features/fixes/etc., please document them here under the "Working Version" section. These will be moved to a concrete version number during the next publish._

## Working Version
* Refactored server-side architecture into `@ibgib/node-gib`:
  * Relocated `serve-gib` microframework, route handlers, and server helpers into `@ibgib/node-gib`.
  * Refactored `server.mts` to consume `@ibgib/node-gib` standard handlers (`getStandardServeGibHandlers`), reducing server file to <60 lines.
* Refactored client-side UI architecture into `@ibgib/web-gib`:
  * Extracted local Keystone Identity components (`identity-header`, `identity-manager`, `keystone-creator`, `keystone-details`, `keystone-scrubber`) into `@ibgib/web-gib`.
  * Refactored `SpaceGibApiBridge` to extend `IbGibApiBridge` base class from `@ibgib/web-gib`.
  * Simplified `SpaceGibShellService` to register identity suite via `registerStandardIdentityComponents()` call.
  * Added `EVENT_IBGIB_UI_MESSAGE` window event routing in `SpaceGibShellService` for decoupled shell navigation.

## 0.0.4
* identity manager, identity header, keystone creator components implemented with basic functionality

## 0.0.3
* feat: serve-gib microframework and core architecture
  * established dual-target architecture for browser SPA client and Node.js server.
  * implemented the `serve-gib` microframework with pipeline-based orchestration and async handlers.
  * implemented `ServeGib_V1` with robust `try..catch..finally` logging and error handling.
  * implemented `ServeGibHandlerBase` "pit of success" plumbing for automated matching and param parsing.
  * established hierarchical folder-based handler organization mirroring URL paths (e.g., `api/ibgib/`).
  * migrated all routing logic to modular, single-file handlers.
* feat: space-service and API endpoints
  * implemented `SpaceService` with initial filesystem-backed storage.
  * implemented `GET /api/health` liveness probe.
  * implemented `GET /api/ibgib/:addr` and `GET /api/ibgib/graph/:addr` for graph retrieval.
  * implemented `POST /api/keystone` for genesis and evolution turns with keystone-specific validation logic.
* feat: security hardening and path validation
  * implemented `path-helper.mts` with hardened regex-based whitelists and blacklists.
  * added `isSafePath` to block directory traversal, null bytes, redundant slashes, and dot-file access.
  * enforced `MAX_PATH_LENGTH` (2048 chars) to prevent DoS-style payload attacks.
  * integrated deep ibGib address validation using `validateIbGibAddr` from `ts-gib`.
  * enforced V1 address schema (at most one dot in `gib` segment).
* feat: build and test infrastructure
  * refactored `BuildSpaceGib` to use parallel, color-coded, and stateful error-tagged logging.
  * established `tsconfig.server.json` and `tsconfig.test.json` for isolated environment builds.
  * integrated `respec-gib` testing framework with a comprehensive suite for path validation.
  * added `test:space-gib` orchestration to the monorepo root.
* feat: client-side components
  * implemented `keystone-creator` component for initiating identity keystones.