Repository navigation
feat: report retired components in lfx upgrade and the editor - #15910
Draft
ogabrielluiz wants to merge 1 commit into
Draft
ogabrielluiz wants to merge 1 commit into
ogabrielluiz wants to merge 1 commit into
Conversation
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
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. Comment |
ogabrielluiz
added this pull request to stack #15912
October 21, 2026 13:28
This comment has been minimized.
This comment has been minimized.
A component can now declare retired_in next to replacement. The attribute is serialized into its template like replacement, so the editor's templates and the lfx upgrade registry both carry it. Chroma DB, Local DB and ALTK Agent declare retired_in = "1.13.0"; Chroma DB and Local DB point to the Knowledge component, ALTK Agent to the Agent. lfx upgrade reports such a component with a new retired status, ahead of every code comparison: it prints [RETIRED] with the release and the replacement, leaves the component alone with --write, and exits non-zero. --upgrade-flow refuses it in both check and safe mode. The help of lfx upgrade, run and serve says so. The editor check returns a retired flag with retired_in and the replacement, with the same early exits as lfx upgrade: a node without code or of an ignored type is never retired. A retired component shows a bar that replaces the Legacy bar, says it fails when the flow runs, keeps the replacement links and cannot be dismissed. Update All, Review All and Dismiss leave retired components out, and neither the toolbar nor the update shortcut offers to update one. A retired component fails when the flow runs, so it is named with its release and replacement instead of being sent to an update, whether or not its code drifted and whether or not custom components are allowed. The editor refuses to build a flow with one, the build error carries a note about it, the v2 workflow warning names it, and with substitution off the restricted-mode refusal names it instead of asking for an update. The Python messages name the replacement by its registry reference, as lfx upgrade does. This holds for a component whose code the user edited too. An edit usually keeps the retired imports or base class, and a dismissed update keeps shipped code that the runtime maps to the retired class, so the editor shows its retired bar and refuses the build in every mode. The shared case table gains retired cases, and the hand-built flows for v1.12.6 gain one flow per retired component, saved with lfx-bundles installed. The compatibility docs describe the retired status and what each --upgrade-flow mode refuses, and the docs on blocking custom components describe the restricted-mode refusal.
ogabrielluiz
force-pushed
the
feat/upgrade-rule-retired
branch
from
October 22, 2026 12:28
c74f025 to
06d58ff
Compare
This comment has been minimized.
This comment has been minimized.
1 similar comment
Contributor
|
Build successful! ✅ |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Chroma DB, Local DB and ALTK Agent were retired in 1.13. Flows that use them still load but fail when they run, and
lfx upgradecalled them safe, because their registry entries look like any other legacy component.Components can now declare
retired_innext toreplacement. The three retired ones declareretired_in = "1.13.0". Chroma DB and Local DB point to Knowledge, and ALTK Agent points to Agent.lfx upgradeprints[RETIRED]with the replacement and exits 1.--writeleaves the component alone, and both--upgrade-flowmodes refuse it.This holds in every mode, and also when the user edited the component's code. An edit usually keeps the retired imports or base class, and a dismissed update keeps shipped code that the runtime maps to the retired class, so both still fail when the flow runs.
These components come from lfx-bundles at run time, so a plain
lfxinstall without it still reports them as[BLOCKED]. A retired component inside a group isn't shown in the editor yet, since the editor only checks top-level components today. The real-flow test builds their templates from the lfx classes, and the v1.12.6 hard flows gain four flows that use them.