Skip to content

feat(jira): add claim lease support#83

Open
poon-oai wants to merge 1 commit into
mainfrom
codex/sd-11-jira-claim-leases
Open

feat(jira): add claim lease support#83
poon-oai wants to merge 1 commit into
mainfrom
codex/sd-11-jira-claim-leases

Conversation

@poon-oai
Copy link
Copy Markdown
Contributor

Context

Jira-backed Symphony runs need persisted claim leases so process restarts do not duplicate active workers.

TL;DR

Adds Jira tracker support for durable claim lease read/upsert and restart recovery.

Summary

  • Add Jira tracker adapter support for active issue fetch, comment reads, and state transitions.
  • Parse durable claim lease markers from Jira comments into normalized issue data.
  • Upsert Jira lease markers by editing the existing marker comment before creating a new one.
  • Teach dispatch and retry recovery to skip unexpired external leases and hand off expired leases.
  • Document Jira tracker config and claim lease behavior in README and SPEC.

Alternatives

  • Appending heartbeat comments was rejected because it can create unbounded Jira comment spam.
  • A DB-backed lease store was avoided to preserve Symphony's tracker-driven restart recovery model.

Test Plan

  • make -C elixir all (blocked: sandbox denied network access to repo.hex.pm during setup)
  • cd elixir && make build
  • cd elixir && make fmt-check
  • cd elixir && make lint
  • cd elixir && make test
  • cd elixir && make coverage
  • cd elixir && mix dialyzer --format short

Summary:
- Add a Jira tracker adapter for issue fetches, comment reads, and lease upserts.
- Teach dispatch/retry recovery to honor unexpired leases and hand off expired leases.
- Document Jira tracker config and add targeted adapter/recovery tests.

Rationale:
- Jira-backed orchestration needs persisted leases so restarts do not duplicate active workers.
- Durable comment updates avoid unbounded heartbeat comment growth.

Tests:
- cd elixir && make build
- cd elixir && make fmt-check
- cd elixir && make lint
- cd elixir && make test
- cd elixir && make coverage
- cd elixir && mix dialyzer --format short
- make all not run end-to-end: setup/deps.get blocked by sandbox network denial for repo.hex.pm.

Co-authored-by: Codex <codex@openai.com>
@poon-oai poon-oai added the symphony Track Symphony work for codebase label May 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

symphony Track Symphony work for codebase

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant