Replace UUID dependency with Smith-owned proquint IDs
Symptom
Smith-owned identities depend on UUIDv7 despite requiring no UUID interoperability.
Message timestamps are extracted from identity bits.
Requested change: remove the UUID dependency; use Smith-owned IDs with proquint text representation.
Session inspection: session discovery orders ID filenames and checks filename identity against stored headers.
Current construction couples identity to time.
sequenceDiagram
participant C as Caller
participant M as Message construction
participant I as Identity generation
participant U as UUIDv7
C->>M: Create message
M->>I: Allocate message identity
I->>U: Generate UUIDv7
U-->>I: Timestamp-bearing identity
I-->>M: Message ID
M->>I: Extract Unix milliseconds
I-->>M: Timestamp
M-->>C: Message with identity and timestamp
Impact
Representation reaches session filenames, CLI/RPC output, exports, and serialized references.
Replacing only formatting would retain the UUID dependency and timestamp coupling.
Replacing UUID alone does not eliminate the getrandom duplicate-family warning; other dependency paths remain.
Requested outcome
Smith-owned session, branch, entry, message, and tool identities use canonical proquint text.
Typed identities, stable references, and call/result pairing remain intact.
Generation remains collision-safe across processes and forks; proquints provide encoding, not uniqueness.
Message timestamps remain explicit recorded data, independent of ID layout.
History ordering remains based on append order and parent links, not ID spelling.
Provider-issued identifiers remain separate from Smith identities.
No UUID dependency remains in Smith's identity implementation.
Decisions before implementation
Choose identity generation, bit width, canonical proquint parsing, and legacy textual-ID/file compatibility explicitly.
Current durable IDs occupy 128 bits; changing text need not change binary identity width.
Any binary format change requires deliberate versioning, not silent golden-corpus regeneration.
Acceptance
Proquint encode/decode roundtrips preserve identity bits; malformed input is rejected.
Generation and collision handling satisfy concurrent creation and fork safety.
CLI/RPC and persistence tests cover the selected representation and compatibility policy.
Message timestamps no longer depend on UUID layout.
Audit, allocation bounds, and instruction budgets are reverified without suppressed warnings or silent repins.
Related contract
Smith Specification: stable identities, explicit timestamps, concurrent sessions, durable references, and deterministic replay.
---
id: SMH-ISSUE-BEZTYIML
type: issue
title: "Replace UUID dependency with Smith-owned proquint IDs"
specs: [SMH-SPEC-SPEC0001]
---
# Replace UUID dependency with Smith-owned proquint IDs
## Symptom
Smith-owned identities depend on UUIDv7 despite requiring no UUID interoperability.
Message timestamps are extracted from identity bits.
Requested change: remove the UUID dependency; use Smith-owned IDs with proquint text representation.
## Evidence
- [Identity types](../../../smith/src/id.rs): UUIDv7 generation, formatting, parsing, serialization, timestamp extraction, and 128-bit conversion.
- [Message construction](../../../smith/src/message.rs): creation timestamps derived from message IDs.
- [Session inspection](../../../smith-harness/src/inspection.rs): session discovery orders ID filenames and checks filename identity against stored headers.
Current construction couples identity to time.
```mermaid
sequenceDiagram
participant C as Caller
participant M as Message construction
participant I as Identity generation
participant U as UUIDv7
C->>M: Create message
M->>I: Allocate message identity
I->>U: Generate UUIDv7
U-->>I: Timestamp-bearing identity
I-->>M: Message ID
M->>I: Extract Unix milliseconds
I-->>M: Timestamp
M-->>C: Message with identity and timestamp
```
## Impact
Representation reaches session filenames, CLI/RPC output, exports, and serialized references.
Replacing only formatting would retain the UUID dependency and timestamp coupling.
Replacing UUID alone does not eliminate the getrandom duplicate-family warning; other dependency paths remain.
## Requested outcome
- Smith-owned session, branch, entry, message, and tool identities use canonical proquint text.
- Typed identities, stable references, and call/result pairing remain intact.
- Generation remains collision-safe across processes and forks; proquints provide encoding, not uniqueness.
- Message timestamps remain explicit recorded data, independent of ID layout.
- History ordering remains based on append order and parent links, not ID spelling.
- Provider-issued identifiers remain separate from Smith identities.
- No UUID dependency remains in Smith's identity implementation.
## Decisions before implementation
Choose identity generation, bit width, canonical proquint parsing, and legacy textual-ID/file compatibility explicitly.
Current durable IDs occupy 128 bits; changing text need not change binary identity width.
Any binary format change requires deliberate versioning, not silent golden-corpus regeneration.
## Acceptance
- [ ] Proquint encode/decode roundtrips preserve identity bits; malformed input is rejected.
- [ ] Generation and collision handling satisfy concurrent creation and fork safety.
- [ ] Session creation, discovery, resume, inspection, export, fork, and replay retain correct references.
- [ ] CLI/RPC and persistence tests cover the selected representation and compatibility policy.
- [ ] Message timestamps no longer depend on UUID layout.
- [ ] Audit, allocation bounds, and instruction budgets are reverified without suppressed warnings or silent repins.
## Related contract
[Smith Specification](../../specs/SMH-SPEC-SPEC0001-smith-specification/index.md): stable identities, explicit timestamps, concurrent sessions, durable references, and deterministic replay.