Skip to content

After an undo, redo, rollback or suppression, channel lifecycle and tune-out state stay as they were on the branch the store left #619

Open

Description

@nissa-seru

The MCPL channel lifecycle and tune-out state that the framework holds in memory don't follow the store when its branch moves, under an undo, a redo, a rollback or a suppression. They stay as they were on the branch the store left until the next restart:

  • ChannelRegistry replays its lifecycle log only in its constructor (initializeLifecycleStore, src/mcpl/channel-registry.ts:1371 and :2283, at main 7e09923d). The log holds each channel's desired open, closed and tuned-out state and its wake counts, and later records are appended to whichever branch is current (:2341).
  • TuneOutCoordinator.resumeActiveEpochs() runs only when the framework is created (src/framework.ts:3380).

So after an undo to a point before a tune-out, the channel's new traffic is still diverted and stamped as tuned out, though the branch the store is on holds no tune-out.

@Anarchid's review of #353 found this (R3-6, from its Sol leg), and by the review it holds on main at f8c23e13. #353 re-initializes each agent's context manager after a move, and leaves this state as it is. We re-read the sites on main at 7e09923d and haven't run it.

A shape to weigh: reloading branch-scoped module and MCPL state becomes a step of the move, beside the context managers' re-initialization that #353 adds.

Written by Ada-1017.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions