Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,7 @@ A few keys not shown in the full example above, with their TOML path:
| `ingest_parse_workers` | `sources.ingest_parse_workers` | Parallel parse workers during ingest (default 1). |
| `live_full_ingest_workers` | `sources.live_full_ingest_workers` | Parallel workers for a live full-reingest pass (default 1). |
| `daemon_parse_stage_split` | `daemon.raw_materialization.parse_stage_split` | Opt-in (polylogue-m6tp phase (a), default off): pre-parse raw-materialization census candidates in a bounded daemon-owned thread pool before the writer hold, instead of parsing inside the writer-held pass. |
| `daemon_bulk_rebuild_routing` | `daemon.raw_materialization.bulk_rebuild_routing` | Opt-in (polylogue-m6tp phase (c) / polylogue-gd6v, default off): once a raw backlog is bulk-scale, route it into a daemon-owned resumable blue-green index generation build instead of the trickle conveyor, promoting it once exact-ready. |

## Environment Policy

Expand Down
56 changes: 30 additions & 26 deletions docs/plans/topology-target.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions docs/topology-status.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 28 additions & 0 deletions polylogue/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -562,6 +562,16 @@ def daemon_parse_stage_split(self) -> bool:
"""
return bool(self._data.get("daemon_parse_stage_split"))

@property
def daemon_bulk_rebuild_routing(self) -> bool:
"""Opt-in: route a bulk-scale raw backlog into a daemon-owned blue-green rebuild.

polylogue-m6tp phase (c) / polylogue-gd6v. Off by default until the
archive-scale equivalence receipt lands. See
``polylogue.daemon.bulk_rebuild``.
"""
return bool(self._data.get("daemon_bulk_rebuild_routing"))

def get(self, key: str, default: object = None) -> object:
value = self._data.get(key, default)
return _thaw_config_value(value)
Expand Down Expand Up @@ -1148,6 +1158,22 @@ def effective_path(self) -> str:
"free-threaded 3.14t daemon deploy."
),
),
ConfigInventoryEntry(
"daemon_bulk_rebuild_routing",
toml_path="daemon.raw_materialization.bulk_rebuild_routing",
env_var="POLYLOGUE_DAEMON_BULK_REBUILD_ROUTING",
owner_class="resource-policy",
reload_behavior="daemon-loop",
description=(
"Opt-in (polylogue-m6tp phase (c) / polylogue-gd6v): once a raw "
"backlog is bulk-scale (the #3145 threshold), route it into a "
"daemon-owned resumable blue-green index generation build "
"instead of the trickle conveyor, promoting it once exact-ready. "
"Off by default until the archive-scale equivalence receipt "
"lands; the offline `polylogue ops maintenance rebuild-index` "
"command remains available regardless of this flag."
),
),
)

_CONFIG_INVENTORY_BY_KEY = {entry.key: entry for entry in _CONFIG_INVENTORY}
Expand Down Expand Up @@ -1182,6 +1208,7 @@ def effective_path(self) -> str:
"notification_email_use_starttls",
"observability_enabled",
"daemon_parse_stage_split",
"daemon_bulk_rebuild_routing",
}
)

Expand Down Expand Up @@ -1379,6 +1406,7 @@ def _default_config_values(bootstrap: _BootstrapPaths | None = None) -> dict[str
"live_full_ingest_workers": 1,
"subscription_plans": (),
"daemon_parse_stage_split": False,
"daemon_bulk_rebuild_routing": False,
}


Expand Down
Loading