commits
Sync opam package metadata including x-maintenance-intent
and external dependency specifications.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
HTTP/2 Implementation:
- Add h2_frame module for RFC 7540 frame parsing/serialization
- Add h2_hpack module for RFC 7541 header compression (HPACK)
- Add h2_stream for HTTP/2 stream state machine
- Add h2_connection for multiplexed connection management
- Add h2_client high-level API matching HTTP/1.1 interface
- Add h2_adapter for protocol version abstraction
URI Library Migration:
- Replace custom Huri.t with Uri.t from uri opam package
- Keep Huri.write for efficient Buf_write serialization
- Remove Uri module shadowing from requests and apubt libraries
- Use Uri.* functions directly throughout codebase
Requests Library Reorganization:
- core/: fundamental types (body, headers, status, method, error)
- features/: optional functionality (auth, cache, retry, signature)
- h1/: HTTP/1.1 client implementation
- h2/: HTTP/2 client implementation
- parsing/: header and structured field parsers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
matrix_proto changes:
- Add pp functions to all matrix_id modules (User_id, Room_id, etc.)
- Add make constructors and accessor functions to event content types
- Add pp functions to Msgtype, Event_type, and message content types
- Add doc comments with @see links to Matrix spec
matrix_client changes:
- Create 13 missing .mli files: backup, calls, matrix_client, olm,
push, room_preview, send_queue, sliding_sync, spaces, store,
timeline, uiaa, verification
- Fix type annotation in verification.ml
All tests pass and dune build @doc-full produces no warnings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fixes for "dune build @doc-full" warnings:
- Escape @room as \@room in rooms.mli to avoid unknown tag warning
- Escape {roomId} as \{roomId\} in spaces.ml to fix bad markup
- Fix {!restore_session} -> {!with_session} in client.mli (wrong function name)
- Fix {!Matrix_id} etc. -> {!module-Id} etc. in matrix_proto.ml
- Remove open statements from matrix_event.mli and matrix_sync.mli,
using fully qualified paths (Matrix_id.User_id.t etc.) instead
- Create matrix_proto.mli that re-exports internal modules with
@canonical tags to resolve "Hidden fields" warnings
The hidden fields warnings occurred because types in .mli files
referenced Matrix_id types via open statements, but odoc couldn't
resolve these through the Matrix_proto wrapper. The fix re-exports
the internal modules so odoc can resolve type paths in documentation.
Sources used:
- ocaml-dev:ocaml-docs skill for odoc v3 reference syntax and
hidden fields resolution patterns (@canonical, module re-exports)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Rooms module:
- Add find_dm_rooms to look up m.direct account data
- Add get_or_create_dm for DM room lifecycle management
- Add encrypted parameter to create/create_room for E2E rooms
Client module:
- Extend session handling and HTTP helpers
Auth module:
- Refactor login flow structure
Messages module:
- Minor cleanup
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Redesign send_dm example into a proper omatrix CLI tool with:
- login: authenticate and store session to XDG directories
- logout: clear session with optional server-side invalidation
- whoami: display current session information
- msg: send messages to rooms or DM recipients
Add reusable cmdliner terms in Matrix_client.Cmd module for building
Matrix CLI applications, with support for environment variables and
orthogonal flag design.
Add Session module for XDG-based session persistence with TOML storage
for credentials, sync state, and E2EE key material.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add matrix-spec as git submodule (v1.17) for protocol reference.
Fix type errors in client.ml by using type-safe Requests.Headers
helpers (bearer, user_agent, content_type) instead of string-based set.
Fix simple_bot.ml: ignore Event_id.t return values and use Format.eprintf
for pp_err pretty-printer compatibility.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
HTTP/2 Implementation:
- Add h2_frame module for RFC 7540 frame parsing/serialization
- Add h2_hpack module for RFC 7541 header compression (HPACK)
- Add h2_stream for HTTP/2 stream state machine
- Add h2_connection for multiplexed connection management
- Add h2_client high-level API matching HTTP/1.1 interface
- Add h2_adapter for protocol version abstraction
URI Library Migration:
- Replace custom Huri.t with Uri.t from uri opam package
- Keep Huri.write for efficient Buf_write serialization
- Remove Uri module shadowing from requests and apubt libraries
- Use Uri.* functions directly throughout codebase
Requests Library Reorganization:
- core/: fundamental types (body, headers, status, method, error)
- features/: optional functionality (auth, cache, retry, signature)
- h1/: HTTP/1.1 client implementation
- h2/: HTTP/2 client implementation
- parsing/: header and structured field parsers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
matrix_proto changes:
- Add pp functions to all matrix_id modules (User_id, Room_id, etc.)
- Add make constructors and accessor functions to event content types
- Add pp functions to Msgtype, Event_type, and message content types
- Add doc comments with @see links to Matrix spec
matrix_client changes:
- Create 13 missing .mli files: backup, calls, matrix_client, olm,
push, room_preview, send_queue, sliding_sync, spaces, store,
timeline, uiaa, verification
- Fix type annotation in verification.ml
All tests pass and dune build @doc-full produces no warnings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fixes for "dune build @doc-full" warnings:
- Escape @room as \@room in rooms.mli to avoid unknown tag warning
- Escape {roomId} as \{roomId\} in spaces.ml to fix bad markup
- Fix {!restore_session} -> {!with_session} in client.mli (wrong function name)
- Fix {!Matrix_id} etc. -> {!module-Id} etc. in matrix_proto.ml
- Remove open statements from matrix_event.mli and matrix_sync.mli,
using fully qualified paths (Matrix_id.User_id.t etc.) instead
- Create matrix_proto.mli that re-exports internal modules with
@canonical tags to resolve "Hidden fields" warnings
The hidden fields warnings occurred because types in .mli files
referenced Matrix_id types via open statements, but odoc couldn't
resolve these through the Matrix_proto wrapper. The fix re-exports
the internal modules so odoc can resolve type paths in documentation.
Sources used:
- ocaml-dev:ocaml-docs skill for odoc v3 reference syntax and
hidden fields resolution patterns (@canonical, module re-exports)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Rooms module:
- Add find_dm_rooms to look up m.direct account data
- Add get_or_create_dm for DM room lifecycle management
- Add encrypted parameter to create/create_room for E2E rooms
Client module:
- Extend session handling and HTTP helpers
Auth module:
- Refactor login flow structure
Messages module:
- Minor cleanup
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Redesign send_dm example into a proper omatrix CLI tool with:
- login: authenticate and store session to XDG directories
- logout: clear session with optional server-side invalidation
- whoami: display current session information
- msg: send messages to rooms or DM recipients
Add reusable cmdliner terms in Matrix_client.Cmd module for building
Matrix CLI applications, with support for environment variables and
orthogonal flag design.
Add Session module for XDG-based session persistence with TOML storage
for credentials, sync state, and E2EE key material.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add matrix-spec as git submodule (v1.17) for protocol reference.
Fix type errors in client.ml by using type-safe Requests.Headers
helpers (bearer, user_agent, content_type) instead of string-based set.
Fix simple_bot.ml: ignore Event_id.t return values and use Format.eprintf
for pp_err pretty-printer compatibility.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>