Arbitrary post metadata
Every post and topic in LOGOS must support arbitrary key-value
metadata — structured data attached to content beyond the built-in
fields the platform provides.
Why It's Needed
Talkyard posts have a fixed schema. There is no way to attach
additional structured data to a post — no custom fields, no
key-value store, no extension point. This became a concrete
problem in two situations:
When designing the chat import pipeline, Claude conversation
exports do not include the AI model version that generated each
response. Even if Anthropic adds this in future, LOGOS needs
somewhere to store it per imported post — model version,
temperature, context size, thinking block presence, import
source, and any other generation metadata.
More broadly, any content in LOGOS may need domain-specific
metadata that cannot be anticipated at platform design time.
A spec topic might carry an event model reference ID. An
imported post might carry its original external ID for
deduplication. A requirement topic might carry a priority
score. The platform should not limit what can be attached.
The Requirement
Every post and topic supports an arbitrary set of key-value
metadata pairs. Metadata is:
- Typed — values have a type (string, number, date,
boolean, reference) - Indexable — metadata fields can be searched and
filtered - Displayable — metadata can be shown in topic listings
and post views, configurable per field - API accessible — metadata is fully readable and
writable through the API with the same fidelity as
built-in fields
No predefined schema is required. Fields are added as needed.
Acceptance
An imported conversation post carries model version, import
timestamp, and source conversation ID as metadata. A user
can filter the Chat Import Pipeline category to show only
posts imported from a specific model. The metadata is
returned in full when the post is accessed via the API.
Sources
- LOGOS → Chat Import Pipeline → Claude export does not include model version (concrete case: model version needs somewhere to live per post)
- LOGOS → Chat Import Pipeline → Claude export does not include project membership (concrete case: project context needs to be preserved as metadata)
Linked from: