Member Junction
    Preparing search index...

    Runs one MJ: User Routines row now, on the user's request, without touching its schedule.

    This is what a "Wake Now" button should call. Writing NextRunAt = now instead makes the dispatcher CLAIM the routine on its next sweep, and a claimed one-shot is spent: the reminder the user wanted tomorrow fires today and is then Disabled. This action hands the routine to UserRoutineDispatcherDriver.RunRoutineNow, which skips the claim and the wake gate, so a one-shot keeps its time and a recurring routine keeps its cadence.

    Security:

    • Declares AuthorizesCaller: the ownership check below is the authorization, so no MJ: Action Authorizations row is needed for a user to run their own routine.
    • Runs under params.ContextUser; a non-Owner-type user may run only routines they own.
    • Bookkeeping (run row, routine roll-up) is saved as the scheduler's system user when the engine is polling in this process, exactly as a scheduled run would be; the target still executes as the routine's owner. Without a polling engine it falls back to the caller, whose role then needs write access to MJ: User Routine Runs.
    • The run is started and left to complete in the background; the result lands on the routine's run row, its conversation and its notification, where the UI already looks for it.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Accessors

    Methods

    Constructors

    Properties

    AuthorizesCaller: true

    The action authorizes its caller itself: it loads the routine with the caller's own read permission and runs only a routine the caller owns (or any routine for an Owner-type user). Without this marker a UI-role user's Wake Now is refused for lack of an Action Authorization.

    Accessors

    • get SupportsAudience(): boolean

      Whether this action can bound what it returns to an audience (RunActionParams.Audience): everyone besides the caller who will see its output, such as the other participants of a shared conversation.

      false by default, and the engine enforces it: when a run's audience adds a reader beyond the caller, ActionEngineServer.RunAction refuses the action with result code AUDIENCE_UNSUPPORTED, without running it. Override to return true only when the action honours the audience in full — every record, snippet and count it returns is something every reader may see (pass the audience to the search engine, check each reader's entitlement to anything it scopes by, and leave out aggregates computed before that filtering).

      Returns boolean

    Methods