Rename Installation to Instance
Follows the portal: the noun is "instance" everywhere the app says it — UI strings, CLI output, error details, docs and comments. The wire keys (`instance_id`, `instance_token`) and the hub route this calls move with it. An existing cloud.json is adopted rather than refused: without the key alias the dataclass fails to parse, which the caller swallows and reads as "never enrolled" instead of "reconnect". `instance_key` on a node type becomes `target_key`. It means the outside thing a node points at, which is a different sense of the word, and keeping both would put two meanings of "instance" in one codebase. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015YrQnKV3bnQd4K342y8tKj
This commit is contained in:
@@ -98,7 +98,7 @@ HOOK_PREFIX = "/hooks"
|
||||
NODE_STOP_TIMEOUT = 5.0
|
||||
|
||||
# How long a rebuild asked for by a request waits for one already running.
|
||||
# Generous on purpose: a rebuild of a populated installation reconnects every
|
||||
# Generous on purpose: a rebuild of a populated instance reconnects every
|
||||
# node and takes the better part of ten seconds, and a caller queued behind a
|
||||
# healthy one of those should not be turned away. Past that the controller is
|
||||
# wedged rather than busy, and an error the caller can act on beats a request
|
||||
@@ -106,7 +106,7 @@ NODE_STOP_TIMEOUT = 5.0
|
||||
REBUILD_WAIT = 15.0
|
||||
|
||||
# How long a caller waits for a *flow* rebuild that is already running. A
|
||||
# per-flow rebuild reconnects one flow's nodes rather than the installation's,
|
||||
# per-flow rebuild reconnects one flow's nodes rather than the instance's,
|
||||
# so this is a queueing budget — several of them back to back, which is what
|
||||
# seeding does — not the room a single one needs. Fifteen seconds was sized for
|
||||
# the whole-pipeline rebuild and would let a wedge sit unreported.
|
||||
@@ -680,7 +680,7 @@ class FlowController:
|
||||
another flow owns — but the wiring is derived from message names, so
|
||||
swapping one flow's nodes into the graph and deriving the edges again
|
||||
is enough. What that saves is the reconnecting: the cost of a rebuild
|
||||
on a populated installation is every node opening its socket again,
|
||||
on a populated instance is every node opening its socket again,
|
||||
and only one flow's have changed.
|
||||
|
||||
A flow the store no longer has is taken out instead of replaced.
|
||||
@@ -1522,12 +1522,12 @@ class FlowController:
|
||||
key = None
|
||||
if node_type is not None:
|
||||
try:
|
||||
key = node_type.cls.instance_key(node_def.params)
|
||||
key = node_type.cls.target_key(node_def.params)
|
||||
except Exception:
|
||||
# A plugin's own grouping is not worth the whole graph;
|
||||
# this node just stands on its own.
|
||||
logger.exception(
|
||||
"instance_key failed for node type '%s'", node_def.type
|
||||
"target_key failed for node type '%s'", node_def.type
|
||||
)
|
||||
gid = f"{node_def.type}:{key}" if key else member
|
||||
gid_of[member] = gid
|
||||
|
||||
Reference in New Issue
Block a user