Skip to content

refactor: compose the host from a bootstrap context - #982

Merged
albertospelta merged 3 commits into
mainfrom
refactor/bootstrap
Oct 20, 2026
Merged

albertospelta merged 3 commits into
mainfrom
refactor/bootstrap

Conversation

@albertospelta

Copy link
Copy Markdown
Member

BootstrapContext owns the logger factory, policies, user settings and telemetry, created before the host and registered in the container as instances, so the container never disposes them. Settings and telemetry failures degrade to defaults and NullTelemetryService.

Global exception handling covers AppDomain unhandled exceptions and unobserved task exceptions: the report is saved to ErrorReport.txt and shown in a task dialog that can send it through telemetry. The single instance is created by the container with its logger and telemetry.

BootstrapContext owns the logger factory, policies, user settings and
telemetry, created before the host and registered in the container as
instances, so the container never disposes them. Settings and telemetry
failures degrade to defaults and NullTelemetryService.

Global exception handling covers AppDomain unhandled exceptions and
unobserved task exceptions: the report is saved to ErrorReport.txt and
shown in a task dialog that can send it through telemetry. The single
instance is created by the container with its logger and telemetry.
Remove the application overview and the startup walkthrough, which repeat
AGENTS.md and Program. Replace the logging-sink and flush-timeout tables,
which copy code, with the behavior they cause, and drop generic advice from
the handled-exception rules. State the uncovered startup failures, including
a policy read failure, and the ProblemDetails mapping order constraint.
Align the consent wording with the current behavior and wrap at 120 columns.
ADR 0003: fatal exceptions end the process after a saved report and a
dialog. ADR 0004: bootstrap services are created outside the container.
ADR 0005: a policy read failure stops the startup. ADR 0006: telemetry
is sent through a persistent channel. The design documents link them.
@albertospelta
albertospelta merged commit d92bc6c into main Oct 20, 2026
1 check passed
@albertospelta
albertospelta deleted the refactor/bootstrap branch October 20, 2026 09:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant