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
6 changes: 6 additions & 0 deletions devtools/docs_surface.py
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,12 @@ def _entry(title: str, path: str, description: str, tier: DocsTier) -> DocsEntry
"Reference-blob representation for byte-proven superseded revision prefixes.",
"design",
),
_entry(
"Convergence Simplification Inventory",
"design/convergence-simplification-inventory.md",
"Deletion/collapse inventory for the daemon convergence redesign (polylogue-m6tp).",
"design",
),
_entry("Second Brain", "design/second-brain.md", "Vision note for remembered work.", "design"),
_entry("Time Machine", "design/time-machine.md", "Vision note for reconstructing work over time.", "design"),
_entry("Whole Product", "design/whole-product.md", "Product vision and system relationships.", "design"),
Expand Down
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ Start with **Guides** for a task, **Reference** for a surface contract, and **Ar
| [Session Lineage Model](design/session-lineage-model.md) | Fork, resume, compaction, and composition semantics. |
| [Analysis Rigor](design/analysis-rigor.md) | Rigor mechanisms for agent claims: population validity and comparative judgment. |
| [Prefix-Blob Reclamation](design/prefix-blob-reclamation.md) | Reference-blob representation for byte-proven superseded revision prefixes. |
| [Convergence Simplification Inventory](design/convergence-simplification-inventory.md) | Deletion/collapse inventory for the daemon convergence redesign (polylogue-m6tp). |
| [Second Brain](design/second-brain.md) | Vision note for remembered work. |
| [Time Machine](design/time-machine.md) | Vision note for reconstructing work over time. |
| [Whole Product](design/whole-product.md) | Product vision and system relationships. |
Expand Down
1 change: 1 addition & 0 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,7 @@ A few keys not shown in the full example above, with their TOML path:
| `ingest_commit_batch_messages` | `sources.ingest_commit_batch_messages` | Messages per commit batch during ingest (default 8000). |
| `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. |

## Environment Policy

Expand Down
1 change: 1 addition & 0 deletions docs/design/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ domain models rather than plans:
| [Project memory](project-memory.md) · [Second brain](second-brain.md) · [Time machine](time-machine.md) · [Archive storytelling](archive-storytelling.md) · [Whole product](whole-product.md) | Vision statements feeding horizon beads |
| [Query-action workflows](query-action-workflows.md) | Moved pointer to the generated `docs/product/workflows.md` |
| [Prefix-blob reclamation](prefix-blob-reclamation.md) | Reference-blob representation for byte-proven superseded revision prefixes; consent-gated durable-tier reclamation (polylogue-vzn6) |
| [Convergence simplification inventory](convergence-simplification-inventory.md) | Deletion/collapse inventory for the daemon convergence redesign — what phases (b)-(d) remove and why (polylogue-m6tp) |

If a doc here stops matching its owning beads, the beads win — update or
purge the doc.
296 changes: 296 additions & 0 deletions docs/design/convergence-simplification-inventory.md

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions docs/plans/test-clock-allowlist.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ files:
reason: "Metrics endpoint test records a live rebuild-ingest heartbeat timestamp; production readiness and metrics intentionally compare it against the host clock."
- path: tests/unit/daemon/test_daemon_lifecycle.py
reason: "Lifecycle signal-forensics test holds a real SQLite write lock and measures that the terminating handler respects its bounded busy timeout."
- path: tests/unit/daemon/test_parse_prefetch.py
reason: "DaemonParseStage.warm() timeout test measures real elapsed wall-clock against a genuinely hung worker thread to prove the wait is bounded, not merely reordered; frozen_clock cannot substitute for a real ThreadPoolExecutor future's wait timeout."
- path: tests/integration/test_daemon_resilience.py
reason: "Daemon resilience integration tests (#1735) measure real elapsed wall-clock for process lifecycle events (SIGKILL delivery, subprocess startup, concurrency timing). frozen_clock cannot substitute for real time when waiting on OS process state."
- path: tests/integration/test_ingest_pipeline_correctness.py
Expand Down
40 changes: 22 additions & 18 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.

25 changes: 25 additions & 0 deletions polylogue/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -553,6 +553,15 @@ def ingest_parse_workers(self) -> int:
def live_full_ingest_workers(self) -> int:
return max(1, int(str(self._data.get("live_full_ingest_workers", 1))))

@property
def daemon_parse_stage_split(self) -> bool:
"""Opt-in: pre-parse raw-materialization census candidates off the writer hold.

polylogue-m6tp phase (a). Off by default. See
``polylogue.daemon.parse_prefetch.DaemonParseStage``.
"""
return bool(self._data.get("daemon_parse_stage_split"))

def get(self, key: str, default: object = None) -> object:
value = self._data.get(key, default)
return _thaw_config_value(value)
Expand Down Expand Up @@ -1125,6 +1134,20 @@ def effective_path(self) -> str:
description="Subscription plan rows used by cost/outlook reporting.",
toml_kind="array-table",
),
ConfigInventoryEntry(
"daemon_parse_stage_split",
toml_path="daemon.raw_materialization.parse_stage_split",
env_var="POLYLOGUE_DAEMON_PARSE_STAGE_SPLIT",
owner_class="resource-policy",
reload_behavior="daemon-loop",
description=(
"Opt-in (polylogue-m6tp phase (a)): 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. "
"Off by default; proves the parse/apply seam ahead of the "
"free-threaded 3.14t daemon deploy."
),
),
)

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

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


Expand Down
Loading