Skip to content

Plan #26: helpers for detecting open-ended activations - #64

Merged
craigmcchesney merged 2 commits into
mainfrom
plan/26-open-activation-helpers
Sep 26, 2026
Merged

craigmcchesney merged 2 commits into
mainfrom
plan/26-open-activation-helpers

Conversation

@craigmcchesney

Copy link
Copy Markdown
Collaborator

Plan for #26, submitted for review before implementation. This PR adds only plan/tickets/26/plan.md.

The ticket is AI-drafted. Triage kept its intent and changed its shape:

  • Module-level helpers, not a result property. activation_is_open() and activation_end_time() work on activations from get, query, iterate, and getActive. The drafted GetConfigurationActivationApiResult.is_open would cover only get, and finding the open activation for a live bridge is usually a query.
  • activation_end_time() returns None for an open activation. Reading .endTime directly on an open record silently gives a 1970 Timestamp.
  • Cookbook fixes. One recipe currently prints 0 as the end of an open interval.

Open questions Q1–Q3 are resolved in the plan. The issue title and body have been updated to match.

Refs #26

🤖 Generated with Claude Code

https://claude.ai/code/session_01PgJ3cRwMrh8UzxzZwraLCT

Triage found the premise holds on every read path, but a result property
would cover only the get path, and the real hazard is silent: reading
endTime on an open activation yields a 1970 Timestamp.  Plan adds
activation_is_open() and activation_end_time() as module-level helpers
and fixes the cookbook recipe that prints 0 for open intervals.

Refs #26

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PgJ3cRwMrh8UzxzZwraLCT
Copilot AI lite review requested due to automatic review settings September 24, 2026 23:13

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Address the two moderate test-coverage gaps and correct the stale T6 statement in the plan.

Review effort: Lite
Findings: None

What changed in this PR

This PR proposes the implementation plan for helpers that detect open-ended configuration activations and safely handle absent end times.

Changes:

  • Defines activation_is_open() and activation_end_time().
  • Plans API exports, tests, documentation, cookbook updates, and release notes.
  • Documents protobuf presence semantics and the zero-timestamp hazard.
File Description
plan/​tickets/​26/​plan.md Detailed design, implementation tasks, tests, and documentation plan for issue #26.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

- D3 and the cookbook tasks now cover carrying end_time forward in a
  full-replace re-save: end_time=current.endTime on an open record
  sends a zero Timestamp, which the server rejects as "endTime must be
  after startTime"; activation_end_time() is the correct carry-forward.
- T6 no longer contradicts T1: the integration suite does assert
  endTime presence on responses; those assertions stay.
- The find-the-open-activation recipe now settles the zero / one /
  many cases, grounded in dp-service's per-name-or-category overlap
  check and its documented non-atomic race.
- Open questions carry their context and recommendation, per the
  plan template in CLAUDE.md.

Refs #26

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PgJ3cRwMrh8UzxzZwraLCT
@craigmcchesney
craigmcchesney merged commit fbb9e80 into main Sep 26, 2026
6 checks passed
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