Skip to content

Mechanical cleanup: single-source checksum, exit_status, run layout, timestamps, version #31

Description

@qinhaihong-red

Parent

#2

What to build

Verified small redundancies from the walking-skeleton review, batched as one cleanup pass. Each item should be resolved or explicitly declined in the PR description:

  • definition checksum is computed twice per run (and the workflow is model-dumped three times); build the snapshot once and reuse its checksum
  • exit_status is persisted twice in the same attempt record (column + inside the normalized output JSON); keep a single durable source
  • Run-directory layout literals are split across the CLI (runs root) and executor (file names) with tests re-hardcoding both; give the layout one owner
  • UTC-ISO timestamp construction is duplicated between the events module and the executor; share one helper
  • The event log reopens its file on every append; hold one append handle for the log's lifetime
  • Workflow.version is required, unconstrained (any int validates), and never read; constrain it to known versions or drop it
  • The package is fully typed but ships no py.typed marker, so downstream type-checkers degrade caw types to Any
  • version duplicates the project version from pyproject and is never read; single-source it (e.g. importlib.metadata) or remove it

Acceptance criteria

  • Snapshot/checksum computed once per run
  • exit_status has a single durable source
  • Run-directory layout owned in one place
  • Shared UTC timestamp helper
  • Event log holds one append handle
  • Workflow.version constrained or removed
  • py.typed shipped
  • version single-sourced or removed

Blocked by

None - can start immediately

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

    enhancementNew feature or requestready-for-agentFully specified, ready for an AFK agent

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions