Skip to content

[OpenSpec] session-schema-declaration #327

Description

@github-actions

⚠️ OpenSpec-managed issue — this content is automatically synced
from the openspec/ directory. Manual edits will be overwritten on next sync.

Artifacts

Summary

hermiq calls the same thing three different names. The user-facing surface says "conversation", the OpenRegister schema is conversation, parts of the codebase and the agent-memory routes say "session", and the page itself is called "Chat". This change declares the canonical session schema in hermiq's schema register and is the head of a four-spec chain that retires the other two words end to end.

This spec is kind: config — it edits lib/Settings/hermiq_register.json and nothing else. The migration, the API rename and the frontend rename are the three code specs that follow.

Tasks

  • 1.1 Verify OpenRegister's register-scoped-schema-slug-resolution is merged AND released to this instance. It lives in another repo, so nothing gates this automatically — this is the human gate.
  • 1.2 Prove the fix is live before declaring anything: resolve slug session with register hermiq in context and confirm it does NOT return schema id 1286 (scholiq's "a scheduled occurrence of a Cohort meeting"). If it returns 1286, STOP — the fix is not in and declaring the schema now walks into the collision this chain exists to avoid.
  • 2.1 Read the CURRENT conversation schema from the instance and list its properties. Do not transcribe from memory or from the Vue components — the migration copies field-by-field, and a property that exists on one schema and not the other drops data silently.
  • 2.2 Record that list in design.md as the contract the migration spec will assert against.
  • 3.1 Add the session schema to lib/Settings/hermiq_register.json carrying every property from task 2.1, with the same types, titles and descriptions.
  • 3.2 Add the trigger-origin property (human | cron | event | flow) with human as the default — it is what all 282 existing objects are, and it is what the Chat page needs in order to split human sessions from automated ones.
  • 3.3 Give every property a title AND a description. The Skills page needs header tooltips sourced from property descriptions; a schema that ships without them makes that impossible later.
  • 3.4 Leave the conversation schema declared and untouched. Nothing is removed in this chain until the migration is verified in production.
  • 4.1 Add two illustrative session objects to the seed data — one human, one cron — so the automated/human split has something to render against on a fresh install. The 282 migrated objects are all human, so without a seeded automated session the split cannot be verified anywhere.
  • 5.1 Confirm nothing reads the new schema yet — this spec is inert by design and safe to merge alone.
  • 5.2 Record the property list and the trigger-origin default in design.md for session-data-migration to assert against.

Design

See design.md for technical design details.


Synced from openspec/changes/session-schema-declaration by OpenSpec workflow
App: hermiq

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

    Labels

    openspecManaged by OpenSpec workflowopenspec:tasksOpenSpec phase: Tasks

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions