Skip to content

chore: add documentation for infinites - #1692

Merged
justandras merged 4 commits into
Sofie-Automation:mainfrom
SuperFlyTV:infinites-documentation
Apr 1, 2026
Merged

chore: add documentation for infinites#1692
justandras merged 4 commits into
Sofie-Automation:mainfrom
SuperFlyTV:infinites-documentation

Conversation

@justandras

Copy link
Copy Markdown
Member

About the Contributor

This pull request is posted on behalf of the CBC

Type of Contribution

This is a documentation improvement

Current Behavior

There is no clear documentation on how infinites work in Sofie

New Behavior

This PR adds documentation detailing infinite behavior and edge cases.

Testing

  • I have added one or more unit tests for this PR
  • I have updated the relevant unit tests
  • No unit test changes are needed for this PR

Affected areas

  • This PR affects the developer documentation

Time Frame

Not urgent, but we would like to get this merged into the in-development release.

Status

  • PR is ready to be reviewed.
  • The functionality has been tested by the author. (docs build)
  • Relevant unit tests has been added / updated.
  • Relevant documentation (code comments, system documentation) has been added / updated.

@justandras
justandras requested review from Julusian and nytamin March 18, 2026 18:02
@justandras justandras self-assigned this Mar 18, 2026
@justandras justandras added the Contribution from CBC/Radio-Canada Contributions sponsored by CBC/Radio-Canada (cbc.radio-canada.ca) label Mar 18, 2026
@coderabbitai

coderabbitai Bot commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 92b8e9d8-7c3b-4537-a60e-4bd251dafeaa

📥 Commits

Reviewing files that changed from the base of the PR and between 219ba89 and e8360cb.

📒 Files selected for processing (2)
  • .github/workflows/node.yaml
  • .github/workflows/trivy.yml
💤 Files with no reviewable changes (2)
  • .github/workflows/node.yaml
  • .github/workflows/trivy.yml

Walkthrough

Adds a new "Infinites" documentation page, fixes a demo import and adds a link in the part-and-piece-timings index, and removes scheduled Trivy scanning steps/workflow from CI.

Changes

Cohort / File(s) Summary
Index update
packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/index.mdx
Fixed demo import path from ./_part-timings-demo to ../_part-timings-demo and added an inline link to the new infinites.md doc.
New documentation
packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md
Added comprehensive "Infinites" doc: definition, lifecycle types (OnEnd, OnChange), activation/propagation rules, hierarchy/priority interactions, AdLib behavior, diagrams, and a cheat-sheet pointer.
CI workflows / Trivy removal
.github/workflows/node.yaml, .github/workflows/trivy.yml
Removed Trivy scanning steps from node.yaml and deleted the scheduled trivy.yml workflow (removed image scan steps, outputs, and summary reporting).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

Contribution

Suggested reviewers

  • Julusian
  • nytamin
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'chore: add documentation for infinites' clearly and concisely describes the main change: adding documentation for infinites, which aligns with the primary objective of the PR.
Description check ✅ Passed The description clearly explains the purpose (lack of documentation on infinites), the change (adds documentation detailing infinite behavior), affected areas (developer documentation), and testing status, all relevant to the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov

codecov Bot commented Mar 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md`:
- Line 39: Fix the possessive misuse in the sentence inside the infinites.md
content: replace "it's default behavior" with the correct possessive "its
default behavior" so the sentence reads "then it behaves identically to its
default behavior." Target the sentence that currently reads "The infinite
activates when it's entered in the AdLib part, then it behaves identically to
it's default behavior."
- Line 3: The sentence defining the Infinite uses the contraction "it's"
incorrectly and is a bit unclear: update the line containing "An **Infinite** is
a timeline object that has no predefined end in the context of the piece, rather
it's context determines when they are terminated." — change "it's" to the
possessive "its" and rephrase for clarity, e.g. "An **Infinite** is a timeline
object that has no predefined end within the piece; its context determines when
it is terminated," ensuring the term "Infinite" remains emphasized.
- Around line 22-30: Fix the typos and possessive errors in the Infinites
section: change "form NRCS" to "from NRCS" in the "Resolved at ingest" bullet,
change "It's resulting state" to "Its resulting state" and "it's content level"
to "its content level" in the same block, change "form AdLibs" to "from AdLibs"
in the "OnChange" bullet, and change "it's lifecycle" and "it's resulting state"
to "its lifecycle" and "its resulting state" in the "OnChange (also referred to
as playhead tracking infinite)" block so all instances use the correct "from"
and possessive "its".
- Around line 44-48: Edit the sentence starting "Normal pieces or lower level
infinit can..." to hyphenate compound adjectives: change "lower level" to
"lower-level" and "higher level" to "higher-level" (and hyphenate "higher
priority" to "higher-priority" if present), and correct the possessive on line
48 by replacing "it's starting point" with "its starting point".

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d47fb4ae-1fc1-49f9-a1f9-6e08083be590

📥 Commits

Reviewing files that changed from the base of the PR and between 23b7ecc and aa464a7.

⛔ Files ignored due to path filters (7)
  • packages/documentation/static/img/docs/for-developers/timing/infinites/cheat-sheet.png is excluded by !**/*.png
  • packages/documentation/static/img/docs/for-developers/timing/infinites/infinite-adlibs.png is excluded by !**/*.png
  • packages/documentation/static/img/docs/for-developers/timing/infinites/infinite-hierarchy.png is excluded by !**/*.png
  • packages/documentation/static/img/docs/for-developers/timing/infinites/infinite-lifecycle-levels.png is excluded by !**/*.png
  • packages/documentation/static/img/docs/for-developers/timing/infinites/infinite-lifecycle.png is excluded by !**/*.png
  • packages/documentation/static/img/docs/for-developers/timing/infinites/infinite-priority.png is excluded by !**/*.png
  • packages/documentation/static/img/docs/for-developers/timing/infinites/infinite-termination.png is excluded by !**/*.png
📒 Files selected for processing (3)
  • packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/index.mdx
  • packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md
  • packages/documentation/static/img/docs/for-developers/timing/infinites/drawings.excalidraw

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (2)
packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md (2)

44-48: ⚠️ Potential issue | 🟡 Minor

Hyphenate compound modifiers for readability and consistency.

“lower level”, “higher level”, and “higher priority” are compound modifiers before nouns and should be hyphenated.

📝 Suggested edit
-- Normal pieces or lower level infinites can temporarily override a higher level infinite.
+- Normal pieces or lower-level infinites can temporarily override a higher-level infinite.
   - OnEnd behavior:
-    - After the higher priority pieces end the higher level infinite resumes.
+    - After the higher-priority pieces end the higher-level infinite resumes.
   - OnChange behavior:
-    - After the higher priority pieces end the infinite is terminated until its starting point is entered again.
+    - After the higher-priority pieces end the infinite is terminated until its starting point is entered again.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md`
around lines 44 - 48, Hyphenate the compound modifiers in the paragraph so the
pre-nominal compounds read "lower-level infinit", "higher-level infinite", and
"higher-priority pieces"; update every occurrence in the block describing OnEnd
and OnChange behavior to use "lower-level", "higher-level", and
"higher-priority" for consistency and readability.

3-3: ⚠️ Potential issue | 🟡 Minor

Fix singular agreement and sentence structure in the definition.

Line 3 uses singular subject (“An Infinite”) but plural pronoun (“they”) and reads as a comma splice. Rephrase to singular and split/structure the clause for clarity.

📝 Suggested edit
-An **Infinite** is a timeline object that has no predefined end in the context of the piece, rather its context determines when they are terminated.
+An **Infinite** is a timeline object that has no predefined end in the context of a piece; its context determines when it is terminated.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md`
at line 3, The sentence "An **Infinite** is a timeline object that has no
predefined end in the context of the piece, rather its context determines when
they are terminated." mixes singular and plural and is a comma splice; change it
to a singular, well-structured sentence such as: reword the definition for "An
**Infinite**" to use singular pronouns and split the clause (e.g., "An
**Infinite** is a timeline object that has no predefined end in the context of
the piece. Its context determines when it is terminated."). Update the line
containing the phrase "An **Infinite** is a timeline object that has no
predefined end in the context of the piece, rather its context determines when
they are terminated." accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md`:
- Line 30: Fix the missing space before the reference marker by inserting a
space between "will be." and "(6, 8)" in the sentence "This means that it can
propagate before and after the triggering piece depending on where the next take
will be.(6, 8)"; update the text so it reads "...will be. (6, 8)" to improve
readability.

---

Duplicate comments:
In
`@packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md`:
- Around line 44-48: Hyphenate the compound modifiers in the paragraph so the
pre-nominal compounds read "lower-level infinit", "higher-level infinite", and
"higher-priority pieces"; update every occurrence in the block describing OnEnd
and OnChange behavior to use "lower-level", "higher-level", and
"higher-priority" for consistency and readability.
- Line 3: The sentence "An **Infinite** is a timeline object that has no
predefined end in the context of the piece, rather its context determines when
they are terminated." mixes singular and plural and is a comma splice; change it
to a singular, well-structured sentence such as: reword the definition for "An
**Infinite**" to use singular pronouns and split the clause (e.g., "An
**Infinite** is a timeline object that has no predefined end in the context of
the piece. Its context determines when it is terminated."). Update the line
containing the phrase "An **Infinite** is a timeline object that has no
predefined end in the context of the piece, rather its context determines when
they are terminated." accordingly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c1600813-0a07-4a3a-9063-ac9a842ae1e3

📥 Commits

Reviewing files that changed from the base of the PR and between aa464a7 and c81f700.

📒 Files selected for processing (1)
  • packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md

@justandras
justandras force-pushed the infinites-documentation branch from c81f700 to 219ba89 Compare March 19, 2026 09:16

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

♻️ Duplicate comments (2)
packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md (2)

44-46: ⚠️ Potential issue | 🟡 Minor

Hyphenate compound adjectives.

When compound terms modify a noun, they should be hyphenated. "lower level" and "higher level" should be "lower-level" and "higher-level" when used as adjectives.

📝 Suggested fix
-- Normal pieces or lower level infinites can temporarily override a higher level infinite.
+- Normal pieces or lower-level infinites can temporarily override a higher-level infinite.
   - OnEnd behavior:
-    - After the higher priority pieces end the higher level infinite resumes.
+    - After the higher priority pieces end the higher-level infinite resumes.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md`
around lines 44 - 46, The compound adjectives in the sentence "Normal pieces or
lower level infinit can temporarily override a higher level infinite." and the
subordinate line "After the higher priority pieces end the higher level infinite
resumes." need hyphenation; update the text to use "lower-level", "higher-level"
(e.g., change "lower level infinit" → "lower-level infinit" and "higher level
infinite" → "higher-level infinite") so compound modifiers are correctly
hyphenated in both occurrences.

3-3: ⚠️ Potential issue | 🟡 Minor

Fix pronoun agreement.

The sentence uses the singular "An Infinite" as the subject but "they are terminated" as the predicate, creating a pronoun disagreement. Use "it is terminated" to maintain singular agreement.

📝 Suggested fix
-An **Infinite** is a timeline object that has no predefined end in the context of the piece, rather its context determines when they are terminated.
+An **Infinite** is a timeline object that has no predefined end in the context of the piece, rather its context determines when it is terminated.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md`
at line 3, The sentence defining "Infinite" has a singular subject but uses a
plural pronoun; update the sentence in the "Infinite" definition so pronouns
agree—either change "An **Infinite** ... they are terminated" to "An
**Infinite** ... it is terminated" or make the subject plural (e.g., "Infinites
... they are terminated"); target the sentence containing the term "An
**Infinite**" in infinites.md and apply the singular-pronoun fix.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In
`@packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md`:
- Around line 44-46: The compound adjectives in the sentence "Normal pieces or
lower level infinit can temporarily override a higher level infinite." and the
subordinate line "After the higher priority pieces end the higher level infinite
resumes." need hyphenation; update the text to use "lower-level", "higher-level"
(e.g., change "lower level infinit" → "lower-level infinit" and "higher level
infinite" → "higher-level infinite") so compound modifiers are correctly
hyphenated in both occurrences.
- Line 3: The sentence defining "Infinite" has a singular subject but uses a
plural pronoun; update the sentence in the "Infinite" definition so pronouns
agree—either change "An **Infinite** ... they are terminated" to "An
**Infinite** ... it is terminated" or make the subject plural (e.g., "Infinites
... they are terminated"); target the sentence containing the term "An
**Infinite**" in infinites.md and apply the singular-pronoun fix.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3918e19e-c612-4faa-97cb-8e2c4c5495e6

📥 Commits

Reviewing files that changed from the base of the PR and between c81f700 and 219ba89.

📒 Files selected for processing (1)
  • packages/documentation/docs/for-developers/for-blueprint-developers/part-and-piece-timings/infinites.md

@justandras
justandras merged commit 347bab6 into Sofie-Automation:main Apr 1, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Contribution from CBC/Radio-Canada Contributions sponsored by CBC/Radio-Canada (cbc.radio-canada.ca)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants