Skip to content

Update spec.md to match current implementation #32

Description

@lore-agent

The specification in .specify/spec.md has diverged completely from the current implementation. This documentation gap makes it difficult for new contributors to understand the actual behavior and makes the spec unreliable as a reference.

What needs to happen: Review the current codebase and update spec.md to accurately reflect how HALEngine actually works today.

Check: Verify that all major components, API signatures, and behavior are documented correctly.

Missing symbols (heuristic)

  • type: IncomingMessage — Type for incoming messages from client, includes UserMessage and Ping variants
  • type: UserMessage — User-provided text input with optional metadata
  • type: Ping — WebSocket heartbeat message
  • type: OutgoingMessage — Type for outgoing messages to client, includes multiple message variants
  • type: ConnectedMessage — Initial handshake message after WebSocket connection
  • type: EntryUpsertMessage — Message for new or updated conversation entry
  • type: EntryDeltaMessage — Message for streaming content delta
  • type: EntryCommitMessage — Message marking entry finalization
  • type: EntrySkipMessage — Message to skip tool or response generation
  • type: ErrorMessage — Message for error with code and details
  • type: PongMessage — Heartbeat acknowledgment message
  • type: StreamEndMessage — Message marking end of streaming sequence
  • type: ChatSession — Session model with id, userId, entries, createdAt, updatedAt properties
  • type: UserEntry — Entry type for text message from user
  • type: AssistantEntry — Entry type for AI-generated response with tool calls
  • type: ThinkingEntry — Entry type for internal reasoning parsed from models that support thinking
  • type: ToolEntry — Entry type for tool execution metadata and results
  • type: SessionEntry — Entry type marking session lifecycle events
  • type: Message — AI communication message type with TextMessage, ToolUseMessage, ToolResultMessage variants
  • type: TextMessage — Simple text content message

What you should actually do

  • Decide the direction first: is the spec stale, or is the code wrong? For a
    reconstruction-grade spec the answer is almost always "update the spec".
  • If you update the spec, fix the diverged items above and re-verify every
    ([validated by …](…)) link and #Lnn anchor on the statements you touch.
  • If this is a false positive — the named items are endpoints, fields, or methods
    rather than top-level symbols, and the behaviour still matches — close this as
    stale rather than editing the spec.

Managed by Lore · created by spec-drift · Lore-Task: f49756df-156b-4079-afea-b48ff62cb720

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions