Skip to content

Feature/cr 011 unified lifecycle - #12

Merged
itercharles merged 49 commits into
mainfrom
feature/cr-011-unified-lifecycle
Jan 1, 2026
Merged

itercharles merged 49 commits into
mainfrom
feature/cr-011-unified-lifecycle

Conversation

@itercharles

Copy link
Copy Markdown
Owner

Change Request

CR ID: CR-011

Description

Changes

  • Source code changes
  • Tests added/updated
  • Documentation updated

Testing

Checklist

  • Documentation updated
  • Manual testing completed

Note: Always use squash merge when merging this PR.

- Add LifecycleState model for state definitions
- Add LifecycleAction model for action definitions
- Add GlobalLifecycle model to hold states and actions
- Add global_lifecycle field to ProjectConfig

Part of CR-011: Unified lifecycle status management
- Add 10 common lifecycle states (draft to closed)
- Add 10 lifecycle actions with state transitions
- Each state has icon, color, and metadata
- Actions define from/to state mappings

Part of CR-011: Unified lifecycle status management
- Remove from_state from LifecycleAction model
- Remove from_state from global lifecycle actions
- Actions now only define action_id -> target_state
- Each doc_type will configure which actions are supported from which states

This matches the CR-011 design where:
- Global: defines actions and target states
- Per-doc-type: defines from_state for each action

Part of CR-011: Unified lifecycle status management
Schema changes:
- Merged LifecycleState and LifecycleAction into single LifecycleState
- Added action_label field to states (action to reach that state)
- Removed separate actions list from GlobalLifecycle

Configuration changes:
- Each state now has action_label (e.g., 'Approve' for approved state)
- Per-doc-type uses current_state -> allowed_next_states
- Actions are implicitly defined by target state's action_label

Example per-doc-type config:
  transitions:
    - current_state: draft
      allowed_next_states: [in_review, closed]

This is much simpler and more intuitive!

Part of CR-011: Unified lifecycle status management
Status is now managed by the lifecycle system, no need for
separate status property in doc type configuration.

Part of CR-011: Unified lifecycle status management
Per-doc-type transitions can now specify criteria for each target state:

transitions:
  - current_state: draft
    allowed_next_states:
      - state: in_review
        criteria:
          - id: content_complete
            check_type: field_not_empty
            field: content
      - state: closed  # No criteria

This allows fine-grained validation per transition while keeping
the configuration simple and readable.

Part of CR-011: Unified lifecycle status management
Changed from:
  current_state: draft
  allowed_next_states:
    - state: in_review
      criteria: [...]

To:
  from_states: [draft]
  to_state: in_review
  criteria: [...]

Benefits:
- More concise and readable
- One set of criteria per transition
- Can specify multiple from_states for same target
- Matches standard transition definition pattern

Example:
  from_states: [draft, in_review, approved]
  to_state: closed

Part of CR-011: Unified lifecycle status management
Per-doc-type can now specify initial_state:
  lifecycle:
    initial_state: draft

This works together with global lifecycle states:
- is_initial: true (in global states)
- is_stable: true (in global states)

System behavior:
- Initial state: Use doc-type's initial_state or first transition from null
- Stable states: Check global state's is_stable flag before allowing edits

Part of CR-011: Unified lifecycle status management
The transition with from_states: [null] already indicates
the initial state, so no need for separate initial_state field.

Simpler and less redundant!

Part of CR-011: Unified lifecycle status management
Added methods:
- get_available_transitions(): Get valid transitions from current state
- execute_transition(): Execute transition with audit trail
- is_item_editable(): Check if item is in stable state
- get_initial_state(): Get initial state for doc type
- _get_state_info(): Get state metadata from global lifecycle
- _validate_criteria(): Validate transition criteria

Features:
- Automatic audit trail in status_history field
- Criteria validation (field_not_empty, manual, relationship_field)
- Returns blocking criteria if transition not allowed
- Uses global lifecycle configuration

Part of CR-011: Unified lifecycle status management
create_item() now automatically sets the initial status
based on the doc type's lifecycle configuration.

Uses get_initial_state() to find the transition from null
and sets the item's status to that state.

Part of CR-011: Unified lifecycle status management
UI already sets status via workflow_engine.get_initial_state()
before calling create_item(), so auto-init was redundant.

Part of CR-011
Status is now automatically set by create_item() in the backend,
not passed from the UI. This ensures:
- Backend controls lifecycle state management
- UI doesn't need to know about lifecycle details
- Consistent status initialization across all callers

Changes:
- create_item() auto-sets initial status using get_initial_state()
- UI no longer sets status field when creating items
- Status is purely backend-managed

Part of CR-011: Unified lifecycle status management
Removed condition check - backend always sets initial status
based on lifecycle config, regardless of what caller passes.

This ensures status is always correct and controlled by backend.

Part of CR-011
If get_initial_state() returns None, that's a configuration error
and should fail loudly rather than silently continue.

Part of CR-011
Changes:
- Use from_states/to_state instead of from/to
- Get state info from global_lifecycle instead of per-doc-type states
- Get action labels from global lifecycle
- Find initial state from transition with from_states: [null]
- Maintain backward compatibility with 'from' and 'to' fields

The workflow engine now works with the new unified lifecycle system
while maintaining backward compatibility for existing UI code.

Part of CR-011: Unified lifecycle status management
- Changed from workflow_engine.get_available_transitions(state) to core.get_available_transitions(item)
- Updated button rendering to use action_label and to_state
- Changed session state to use transition_to_state instead of transition_config
- Updated render_transition_workflow signature

Still need to update render_transition_workflow implementation.

Part of CR-011
- Changed signature to accept to_state instead of transition dict
- Gets transition info from core.get_available_transitions()
- Uses core.execute_transition() instead of workflow_engine.perform_transition()
- Simplified criteria display using blocking_criteria list
- Updated session state cleanup to use transition_to_state

Part of CR-011: Unified lifecycle status management
Use core.is_item_editable() instead of checking lifecycle.states

Part of CR-011
Rely on Git history for audit trail instead of status_history field.
This matches the original system behavior.

Part of CR-011
Migrated 10 document types from old format (states + from/to transitions)
to new format (from_states/to_state transitions).

Changes:
- CRS, RISK, RCM, SYS, SRS, SYSARCH, SWDD, CR, RELEASE, SOUP
- Removed per-doc-type states (now use global_lifecycle)
- Converted from/to to from_states/to_state
- Preserved criteria

Part of CR-011: Unified lifecycle status management
The status filter was using per-doc-type lifecycle.states which
no longer exists after migration. Now uses global_lifecycle.states.

This fixes the bug where no items were displayed in the table
because the status filter had no options and filtered out all items.

Part of CR-011
Each doc type should only show states that are used in its
transitions, not all global states.

Extracts unique to_state values from the doc type's transitions.

Part of CR-011
Renamed _get_state_info to get_state_info to make it part of the
public API. This allows UI code to call it directly.

Part of CR-011 cleanup
Removed all workflow_engine dependencies from UI code:
- Removed workflow_engine parameter from all functions
- Replaced workflow_engine.get_initial_state() with core.get_initial_state()
- Replaced workflow_engine.get_state_info() with core.get_state_info()
- Replaced workflow_engine.get_available_transitions() with core.get_available_transitions()
- Removed DynamicWorkflowEngine import

All lifecycle operations now go through core methods directly.

Part of CR-011 cleanup
Removed methods that are now handled by core:
- check_transition_criteria() → core.get_available_transitions()
- validate_transition() → core.get_available_transitions()
- _check_single_criterion() → core._validate_criteria()
- perform_transition() → core.execute_transition()

DynamicWorkflowEngine now only provides:
- get_initial_state() - delegates to core
- get_available_transitions() - delegates to core
- get_state_info() - delegates to core

Part of CR-011 cleanup
Removed 6 type hint references that were causing NameError.

Part of CR-011 cleanup
@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-475/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-475/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-475/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-475/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-478/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-478/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-478/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-478/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-483/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-483/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-483/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-483/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-486/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-486/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-486/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-486/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-491/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-491/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-491/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-491/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-494/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-494/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-494/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-494/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-498/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-498/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-498/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-498/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-500/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-500/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-500/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-500/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-501/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-501/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-501/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-501/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-504/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-504/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-504/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-504/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-506/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-506/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-506/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-506/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-508/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-508/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-508/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-508/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-514/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-514/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-514/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-514/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-520/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-520/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-520/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-520/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-521/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-521/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-521/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-521/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-523/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-523/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-523/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-523/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-525/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-525/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-525/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-525/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-527/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-527/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-527/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-527/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-529/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-529/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-529/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-529/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-532/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-532/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-532/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-532/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-535/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-535/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-535/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-535/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-544/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-544/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-544/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-544/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-547/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-547/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-547/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-547/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-559/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-559/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-559/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-559/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-561/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-561/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-561/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-561/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-562/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-562/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-562/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-562/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-565/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-565/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-565/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-565/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-567/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-567/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-567/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-567/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-573/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-573/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-573/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-573/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

@itercharles

Copy link
Copy Markdown
Owner Author

⚠️ Warnings for CR-056:

  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-577/test_revision_mode_uses_pr_fee0/DHF for DHF context: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-577/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • dhf_context_unavailable: Cannot load DHF at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-577/test_revision_mode_uses_pr_fee0/DHF for the design review: global.yaml not found at /private/var/folders/9l/n5s_hxdd4gb5nt29kfqfpg1h0000gn/T/pytest-of-charles/pytest-577/test_revision_mode_uses_pr_fee0/DHF/config/global.yaml
  • review_not_approved: The design review's last verdict is 'unknown', not approved. Read the review before merging.

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.

1 participant