Skip to content

feat(sla_enforcement): enforce slaStartedAt against issue createdAt baseline#5

Merged
shannonwho merged 1 commit intolinear:mainfrom
shannonwho:feature/sla-created-at-baseline
Apr 14, 2026
Merged

feat(sla_enforcement): enforce slaStartedAt against issue createdAt baseline#5
shannonwho merged 1 commit intolinear:mainfrom
shannonwho:feature/sla-created-at-baseline

Conversation

@shannonwho
Copy link
Copy Markdown
Collaborator

  • Add slaCreatedAtBaseline option to protectedFields config
  • Cache createdAt as immutable baseline on startup (never overwritten by subsequent changes)
  • Detect slaStartedAt drift even when absent from webhook updatedFrom (catches silent resets from priority/workflow triggers)
  • Override slaStartedAt revert target to createdAt in two-step priority revert
  • Add createdAt to getIssuesWithLabel GraphQL query
  • Add 8 unit tests covering: drift detection, silent resets, two-step revert, authorized bypass, dry run, feature flag, cache immutability, and graceful no-cache handling
  • Fix test isolation: use per-test temp directories to prevent disk cache contamination between runs
  • Fix pre-existing test bugs: updatedFrom.labelIds (not labels) for label change detection

Next steps include (but not limited):

  • Add more flexibility into the authorized user list to have more granular control over teams/subteams structure
  • Test it out with larger scale stimulation with multi-layers team structure

…aseline

- Add slaCreatedAtBaseline option to protectedFields config
- Cache createdAt as immutable baseline on startup (never overwritten by subsequent changes)
- Detect slaStartedAt drift even when absent from webhook updatedFrom (catches silent resets from priority/workflow triggers)
- Override slaStartedAt revert target to createdAt in two-step priority revert
- Add createdAt to getIssuesWithLabel GraphQL query
- Add 8 unit tests covering: drift detection, silent resets, two-step revert, authorized bypass, dry run, feature flag, cache immutability, and graceful no-cache handling
- Fix test isolation: use per-test temp directories to prevent disk cache contamination between runs
- Fix pre-existing test bugs: updatedFrom.labelIds (not labels) for label change detection

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@shannonwho
Copy link
Copy Markdown
Collaborator Author

this is tied to my linear issue SOL-239 and SOL-240. Please update that

Copy link
Copy Markdown
Collaborator

@blkinney blkinney left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Great work, Shannon!

@shannonwho shannonwho merged commit 900fc80 into linear:main Apr 14, 2026
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.

2 participants