已关闭
[SESSION-07] Add frontend-neutral session listing and history API #26
urandon创建于  8月3日关闭于  26 天前
urandon
urandon成员
8月3日 创建

Parent and architecture

Outcome

Expose a frontend-neutral, tenant-authorized session listing/history API that can support a Codex/Hermes-style web UI without scanning tenant payloads.

Estimate

  • 8 SP / 5 engineering days
  • Risk: medium

Scope

  • Add authenticated application/API operations to:
    • create a session;
    • bind/switch an authorized frontend;
    • list active sessions by owner/recent activity;
    • list archived sessions;
    • open session metadata;
    • page ordered canonical events;
    • page runs for a session;
    • archive and unarchive.
  • Return bounded display metadata: title, preview, creation time, last activity, status, frontend origin, provider/harness observations and current run state.
  • Use fixed-fan-out owner/status activity indexes and opaque continuation tokens.
  • Resolve event payload references only after tenant/participant authorization.
  • Add a synthetic second-frontend adapter used by integration/E2E tests.
  • Keep Telegram commands on the same application operations rather than a parallel session implementation.
  • Document API authorization, pagination, consistency and error contracts.
  • Add admin-safe metadata views without granting ordinary workers tenant-wide listing rights.

Non-goals

  • Production web frontend.
  • Full-text/semantic search.
  • Cross-tenant admin payload search.
  • Shared/group session product UX beyond participant authorization contracts.

Verification

  • Active and archived lists paginate in deterministic recent-activity order across fixed buckets.
  • Continuation tokens cannot be replayed for another tenant/owner/status.
  • Event pages preserve strict event order and never return another tenant's payload.
  • Archive/unarchive updates lists without deleting history.
  • Telegram and the synthetic frontend open the same authorized canonical session.
  • No hot API path performs a full-table scan.

Acceptance criteria

  • The API supports the required future session UI without exposing storage implementation details.
  • Every read is tenant and participant scoped.
  • Listing complexity is bounded by configured index fan-out and page size.
  • Archived sessions remain openable and unarchivable.
  • Provider/harness metadata is clearly execution observation, not session identity.
likedislike
urandon
urandon成员
26 天前 评论:

Implementation started after SESSION-06 / #25 merged. I am working from merge commit cf7cfccb16e5d4bf9617ec267631ce078c9f074e on branch codex/session-07-session-api.

Initial slice: frontend-neutral application/API contracts, fixed-fan-out owner/status activity indexes with scoped continuation tokens, participant-authorized metadata/event/run reads, archive/unarchive integration, and synthetic frontend coverage. A PR will be opened after the documented local verification suite passes.

likedislike
urandonurandon成员
26 天前 关联了pull request:SESSION-07: add frontend-neutral session API
urandon
urandon成员
26 天前 评论:

Completed in merged MR !33.

Delivered:

  • participant-authorized frontend-neutral session create/list/metadata/history/run/archive APIs
  • atomic frontend bind/switch with idempotency and revision fencing
  • bounded YDB indexes and opaque scoped pagination
  • authorization-before-blob-resolution and separate admin-safe metadata
  • Telegram plus synthetic second-frontend interoperability tests
  • API, consistency, authorization, pagination, and migration documentation

Verification:

  • local make test, make ci, and make terraform-ci passed
  • focused repeatable SESSION-07 YDB integration tests passed
  • GitHub mirror CI passed all jobs for exact head ea4467da156f29d5adfbdbd9db2f13a8ac6cb30a
  • independent review cycle completed with no actionable findings

Merged to main as 48af703df753a2910b8655c709226c7c092433d7.

likedislike
urandonurandon成员
26 天前 关闭了 issue
urandonurandon成员
19 天前 添加了label:mvpsession
urandonurandon成员
19 天前 关联了里程碑:MVP — Core platform (#6)