Skip to content

Port upstream Symphony reliability PRs#4

Open
SynchronDEV wants to merge 6 commits into
mainfrom
chris/sync-768-port-upstream-symphony-reliability
Open

Port upstream Symphony reliability PRs#4
SynchronDEV wants to merge 6 commits into
mainfrom
chris/sync-768-port-upstream-symphony-reliability

Conversation

@SynchronDEV

Copy link
Copy Markdown
Owner

Context

Port upstream Symphony PRs openai#58, openai#60, and openai#82 into the Synchron fork for workspaceWrite root retention, token usage observability, and claim lease recovery.

TL;DR

Adopt upstream workspace policy, token ledger, and claim lease recovery improvements.

Summary

  • Retains issue workspace roots when explicit workspaceWrite sandbox policies are used.
  • Adds persistent per-issue token usage summaries and observability payloads.
  • Adds claim lease heartbeat, expiry recovery, and retry-safe worker metadata.
  • Keeps Synchron fork budget ledger behavior while adding upstream token observability.
  • Adds integration cleanup for specs, Credo, Dialyzer, and merged API expectations.

Alternatives

Test Plan

  • make -C elixir all
    • Equivalent run: MISE_TRUSTED_CONFIG_PATHS=/tmp/symphony-sync-768/elixir/mise.toml make MIX="mise exec -- mix" all
    • Result: setup/build/fmt-check/lint pass; coverage tests pass, then threshold fails at 91.81% vs configured 100.00%.
  • MISE_TRUSTED_CONFIG_PATHS=/tmp/symphony-sync-768/elixir/mise.toml mise exec -- mix test test/symphony_elixir/workspace_and_config_test.exs test/symphony_elixir/token_usage_ledger_test.exs test/symphony_elixir/extensions_test.exs test/symphony_elixir/orchestrator_status_test.exs - 127 tests, 0 failures.
  • MISE_TRUSTED_CONFIG_PATHS=/tmp/symphony-sync-768/elixir/mise.toml mise exec -- mix test - 274 tests, 0 failures, 2 skipped.
  • MISE_TRUSTED_CONFIG_PATHS=/tmp/symphony-sync-768/elixir/mise.toml mise exec -- mix lint - specs.check and Credo strict passed.
  • MISE_TRUSTED_CONFIG_PATHS=/tmp/symphony-sync-768/elixir/mise.toml mise exec -- mix dialyzer --format short - passed.

danielmcauley and others added 6 commits June 12, 2026 18:02
Summary:
- Track issue claim leases with worker id, workspace, attempt, and expiry.
- Publish tracker-visible lease markers for active, retrying, and blocked claims.
- Requeue expired non-live leases and surface lease state in the dashboard/API.

Rationale:
- Operators need visible and recoverable claim state when worker runs stall.
- The implementation stays tracker-generic because Jira support is adapter-level.

Tests:
- mix build
- mix format --check-formatted
- mix lint
- mix test --cover
- mix dialyzer --format short
- make all (blocked: Hex network/cache writes denied by sandbox)

Co-authored-by: Codex <codex@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants