Skip to content
This repository was archived by the owner on Jun 5, 2026. It is now read-only.

Chat Framework#81

Merged
jazzz merged 13 commits into
masterfrom
jazzz/chat_framework
May 22, 2026
Merged

Chat Framework#81
jazzz merged 13 commits into
masterfrom
jazzz/chat_framework

Conversation

@jazzz

@jazzz jazzz commented Sep 22, 2025

Copy link
Copy Markdown
Contributor

This PR introduces a specification which describes a modular framework for describing Chat protocols.

This provides context on where chat specifications fit in the larger picture, while providing a template for implementation specific specifications. The component model introduced is used to define the boundaries of the other chat protocols and describe how they integrate.

@igor-sirotin igor-sirotin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just dust for now, will leave actual comments next part.

Comment thread standards/application/chat-framework.md Outdated
Comment thread standards/application/chat-framework.md Outdated
Comment thread standards/application/chat-framework.md Outdated
Comment thread standards/application/chat-framework.md Outdated
Comment thread standards/application/chat-framework.md Outdated
Comment thread standards/application/chat-framework.md Outdated
Comment thread standards/application/chat-framework.md Outdated
jazzz and others added 7 commits February 5, 2026 17:13
Co-authored-by: Igor Sirotin <igor.sirotin.1012@gmail.com>
Co-authored-by: Igor Sirotin <igor.sirotin.1012@gmail.com>
Co-authored-by: Igor Sirotin <igor.sirotin.1012@gmail.com>
Co-authored-by: Igor Sirotin <igor.sirotin.1012@gmail.com>
Co-authored-by: Igor Sirotin <igor.sirotin.1012@gmail.com>
Co-authored-by: Igor Sirotin <igor.sirotin.1012@gmail.com>
Comment thread standards/application/chat-framework.md

@igor-sirotin igor-sirotin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I'm happy with it as it is, but left some minor comments where I think it could be improved

Comment thread standards/application/chat-framework.md Outdated

Chat protocols specifications can be long and dense documents. To fully describe a chat protocol there are many layers and operations which are required to be documented. This includes payloads, message transport, encryption as well as user level features such as account registration, typing indicators, content formatting.

With the vast amount of information required to maintain compatibility between applications - protocol documentation is either comprehensive which leads to large monolithic specifications or lacking the required details for interop between implementors.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Either <...> or <...>. Which way are we choosing? 😄
The paragraph finishes here, but it sounds like our choice/solution is missing

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great feedback point.

I was following the paradigm that "Background" describes the problem, "Theory" outlines the proposed solution. Clearly the Problem/Solution relationship is not clear.

I'll rework it in another PR

Comment thread standards/application/chat-framework.md

Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).

## References

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## References
# References

Comment thread standards/application/chat-framework.md Outdated
Comment on lines +26 to +37
The chat protocol is decomposed into 3 distinct phases.

- **Discovery:** How does a Sender learn of other clients.
- **Initialization:** How does a Recipient learn a client wants to communicate with them.
- **Operation:** How do participants exchange content.

and transport details are divided into:

- **Delivery Service:** How are payloads routed and delivered to a client.
- **Framing Strategy:** How are payloads encoded.

Defining these 5 parameters allows for chat protocol implementations to be fully defined, which allows clients from different applications to exchange messages.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What confuses me here is how we juggle with these terms to describe the same thing: components, phases, problem areas, parameters. I'm not sure how would I re-write this. I still get the content, it just feels a bit bumpy while reading.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The lifecycle of a protocol instance is divided into three phases, which are described by a corresponding protocol.
- **Discovery Phase:** Discovery Protocol
- **Initialization Phase:** Initialization Protocol
- **Operation Phase:** Conversation Protocol

Here we say "phases of protocol lifecycle", this makes more sense to me than "phases of protocol".

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Absolutely. Let me think it over.

@jazzz jazzz marked this pull request as ready for review May 22, 2026 22:54
@jazzz jazzz merged commit 2d77a23 into master May 22, 2026
1 check failed
@jazzz jazzz deleted the jazzz/chat_framework branch May 22, 2026 22:54
igor-sirotin added a commit to logos-co/logos-lips that referenced this pull request Jun 2, 2026
…pecs

Pristine copies of the last messaging specs not covered by #315/#331,
imported as-is from logos-messaging/specs so the adaptation diff is
isolated in the following commit:

- chat-framework (logos-messaging/specs#81)
- privatev1 (logos-messaging/specs#93)
- introduction-encoding (logos-messaging/specs#101)
- contentframe (logos-messaging/specs#82)
- tor-push (Waku v2 Tor Push)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
igor-sirotin added a commit to logos-co/logos-lips that referenced this pull request Jun 4, 2026
…pecs

Pristine copies of the last messaging specs not covered by #315/#331,
imported as-is from logos-messaging/specs so the adaptation diff is
isolated in the following commit:

- chat-framework (logos-messaging/specs#81)
- privatev1 (logos-messaging/specs#93)
- introduction-encoding (logos-messaging/specs#101)
- contentframe (logos-messaging/specs#82)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
igor-sirotin added a commit to logos-co/logos-lips that referenced this pull request Jun 4, 2026
Follow-up to #315 (and #331 for segmentation): moves the last messaging
specs that still lived only in `logos-messaging/specs` into
`docs/messaging/raw/`. YAML front matter is converted to the canonical
`| Field | Value |` metadata table (`status: raw`); slugs and timelines
are left to the build-time generators, matching #331.

Split into two commits for review: the first imports each spec
**verbatim** from `logos-messaging/specs`, the second isolates the
logos-lips adaptations (metadata table + cross-reference rewrites).

## Specs moved
| Spec | Source PR in logos-messaging/specs |
| --- | --- |
| `chat-framework.md` |
[#81](logos-messaging/specs#81) Chat Framework |
| `privatev1.md` |
[#93](logos-messaging/specs#93) Chat Private |
| `introduction-encoding.md` |
[#101](logos-messaging/specs#101) Introduction
encoding |
| `contentframe.md` |
[#82](logos-messaging/specs#82) Chat Content
Frames — previously missed |

## Notes
- `contentframe` had an empty `name:` in source; set to "Chat Content
Frames" (per PR #82 title).
- `introduction-encoding` had no `editor:`; populated from its
`contributors:` list.
- Cross-references to the old source repos (`waku-org/specs`,
`vacp2p/rfc-index`) are rewritten to their new logos-lips locations
using repo-relative links.
- `standards/application/tor-push.md` is **not** moved: #315 already
classified it as superseded by the existing
`docs/anoncomms/raw/gossipsub-tor-push.md` (same protocol/editor, far
more developed), so re-adding it would duplicate that spec.
- `standards/core/enr.md` in the source repo is the Waku v2 ENR spec and
already exists here as `docs/messaging/draft/31/enr.md`, so it was
**not** moved.
- The only remaining open PR in logos-messaging/specs is #57 (store-sync
update), which targets an already-migrated spec and is out of scope.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Jazz Turner-Baggs <473256+jazzz@users.noreply.github.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants