Skip to content

Slice: Host Jim.edict as an active observer #301

Description

@flyingrobots

Slice

Host the smallest Jim.edict application as an Echo-realized active observer
and move production input from frontend operation calls to canonical event
delivery.

Parent: #295.

Minimum state machine

state:
  mode
  cursor
  active_buffer
  pending_action

on KeyEvent:
  request TextWindow

on TextWindow Reading:
  derive a Jim-owned operation intent

on operation Outcome:
  advance Jim state
  emit render projection

Acceptance criteria

  • edict/jim/src/Jim.edict owns the minimal persistent editor state and
    transition law.
  • Jedit/Bijou/native code normalizes terminal input to a canonical KeyEvent
    without interpreting command meaning.
  • Echo delivers the event to the installed observer at an explicit Jim
    basis and budget.
  • Jim.edict requests TextWindow.edict, receives a basis-bound Reading,
    and derives any ReplaceRange intent from Jim state.
  • Echo executes the compiler-produced generic child program and returns one
    outcome or typed obstruction.
  • Jim.edict alone advances mode, cursor, registers, and pending-action
    state, then emits a disposable render projection.
  • Jedit renders only the returned projection and performs no optimistic text
    mutation.
  • WAL, receipt, reading, Tick, Jim-state transition, and restart evidence
    form one inspectable worldline.
  • Negative gates reject TypeScript command-to-operation mapping, native Jim
    planners, handwritten packages, caller patches, and compatibility fallback.

Non-goals

  • No broad Vim parity. Prove one canonical event sequence first.
  • No application vocabulary or rope intrinsic in Echo.
  • No terminal/process/filesystem authority inside Edict.

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

    causal-ropeCausal rope text authority roadmapenhancementNew feature or requestsliceImplementable roadmap slicetext-authorityText authority and storage invariants

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions