cchat

A set of stabilized interfaces for cchat implementations, joining the backend and frontend together.

ISC License

Stars
22
cchat - v0.6.7 Latest Release

Published by diamondburned over 3 years ago

This release contains breaking changes.

Replace stop callbacks with contexts

This commit removes all stop callbacks in ContainerMethods. The
intention is to have backends disconnect callbacks when the context is
cancelled, rather than when the stop function is called.

This helps get rid of countless race condition flaws caused by the
duration between the context being cancelled on one thread and the stop
callback being set in another, causing the handlers to not disconnect.
cchat - v0.6.6

Published by diamondburned over 3 years ago

This release contains breaking changes.

Configurator to be SetterMethods

This commit changes Configurator's methods to be SetterMethods instead
of IOMethods, as Configurator is specifically made for frontend-managed
settings just for the backend, so no storing/loading is needed on the
backend's side.

This commit also changes SetterMethod to allow methods done to the
backend to error out, in case the setting value is invalid somehow.
Setter methods that are called by the backend (as opposed to the
frontend) must never error.
cchat - v0.6.5

Published by diamondburned over 3 years ago

This release contains breaking changes.

Allow cancels for ContainerMethods and IOMethods

This commit changes several ContainerMethods to take in a context. It
also changes all IOMethods to take in a context.

This addition adds consistency to the API as well as allowing better
graceful cancellation and cleanups if needed when, for example, the user
wants to discard an ongoing process.
cchat - v0.6.4

Published by diamondburned over 3 years ago

This release contains breaking changes. It fixes up mistakes from the previous release.

cchat - v0.6.3

Published by diamondburned over 3 years ago

This release contains breaking changes.

ListMember to no longer use Namer

This commit broke ListMember to remove the Namer interface. This is
because the whole interface should act as a static container with
information to be updated.
cchat - v0.6.2

Published by diamondburned over 3 years ago

This release contains breaking changes.

commit f24feb20024fd003421f8cb15661e542c4a5db03

MessageUpdate should only update the content

This commit changes MessageUpdate so that it only updates the message
content. Updating the username should be up to MessageCreate's Author.

---

commit f8c644fa7ed5f4dead72347bdf1baaed30ca793d

Allow empty texts with segments

This commit allows segments in an empty text segment to account for
segments with only an image.
cchat - v0.6.1

Published by diamondburned over 3 years ago

This release contains breaking changes.

Nicknamer to embed Name instead

This commit breaks Nicknamer to embed Name instead of having its own
ContainerMethod with a similar function signature but different name.
This allows the frontend to reuse the same LabelContainer abstraction
for Nickname as well.
cchat - v0.6.0

Published by diamondburned over 3 years ago

This release contains breaking changes.

Enforce Identifier on all Services

This commit breaks the Service interface to force all services to have a
global unique identifier. The commit does not enforce any particular
format, but the Reverse Domain Name Notation is recommended.

For reference:
https://en.wikipedia.org/wiki/Reverse_domain_name_notation
cchat - v0.5.6

Published by diamondburned over 3 years ago

This release contains breaking changes.

Columnate to return bool

This commit breaks the previous Columnate API to return booleans instead
of constant integers. This makes handling Columnate API much simpler
with less false values (since all possible boolean values are valid).
cchat - v0.5.5

Published by diamondburned over 3 years ago

This release contains breaking changes.

Move Columnate to Lister

This commit broke Lister to add Columnate, and the method is removed
from Server, because only Lister gets nested.
cchat - v0.5.4

Published by diamondburned over 3 years ago

Added missing return in Columnate.

cchat - v0.5.3

Published by diamondburned over 3 years ago

This release contains a commit that removes an unused function after the previous release.

cchat - v0.5.2

Published by diamondburned over 3 years ago

This release contains breaking changes.

Enforce Columnate in Server

This commit breaks the API to enforce all servers to have a Columnate
method.

This commit also changes some of the documentation to be more obvious.
cchat - v0.5.1

Published by diamondburned over 3 years ago

This release contains breaking changes.

Force ContainerMethod stop funcs

This commit breaks ContainerMethod to enforce explicit destructors. This
gives the frontend explicit control over when the container is
unsubscribed, but it also eases unsubscription implementations in the
backend.

With this new change, the backend can now add the container into a
global repository and unsubscribe from it explicitly from the callback.
cchat - v0.5.0

Published by diamondburned over 3 years ago

This release contains breaking changes.

Rename Author to Namer; Namer to use LabelContainer

This commit breaks more of the API to force all implementations of Namer
to use a LabelContainer instead of just returning a text. This is done
to allow updating of all labels instead of having to update the whole
parent context. This allows the backend to do book-keeping of labels and
images and trivially update them simultaneously without updating the
parent context.

The Author interface is also renamed to User. This allows the user
interface to be used everywhere else outside of Message.
cchat - v0.4.0

Published by diamondburned over 3 years ago

This release contains breaking changes.

This commit introduced a big breaking change of changing Author and
Namer to no longer have any reference to Icon or Image containers and
interfaces.

Instead, in the case of Author and Namer, it relies on the label being
updated by either an update setter or LabelContainer. The frontend
should get the first image/avatar to display that instead.

This commit also added ReadIndicator and related interfaces to support
the read receipts feature seen in Matrix, Telegram, Messenger and co.

The UnreadIndicator interface was broken to add the MarkRead method,
which hands explicit control of setting read messages for the current
user to the frontend instead.
cchat - v0.3.21

Published by diamondburned over 3 years ago

Added Columnator

This commit added the Columnator interface. This interface accommodates
the fact that some services (such as Discord) stylizes certain nested
servers in the same column.

This commit also fixed a minor test case.
cchat - v0.3.20

Published by diamondburned almost 4 years ago

No API changes.

cchat - v0.3.19

Published by diamondburned almost 4 years ago

Allow IOMethods to be explicit disposers.

This commit changes IOMethods and clarifies stop functions that they
will act as destructors or disposers for whatever interface that
implements the methods, and that both the backend and frontend should
free that interface when they're called.

This commit is added as part of the IPC protocol.
cchat - v0.3.18

Published by diamondburned almost 4 years ago

No significant changes.