Enhance logging in FdsSqlOptions and related classes

- Updated FdsSqlOptions to accept an optional ILogger parameter for improved error logging.
- Modified FdsMfr and FdsMfrClient classes to pass the logger instance to FdsSqlOptions.
- Added detailed error logging in various methods to capture SQL execution issues and file handling errors.
- Improved documentation for FdsSqlOptions to clarify logging behavior.
- Updated Archive class to log compression errors, enhancing traceability of failures.
- Adjusted project configuration to suppress specific warnings related to transitive dependencies.
- Added NuGet.config to define package sources for dependency management.
- Updated submodule references for OCORE and related projects.
This commit is contained in:
Stefan
2026-07-03 20:22:05 +02:00
parent 1a3bf30442
commit 882e97509a
57 changed files with 2121 additions and 106 deletions
+71
View File
@@ -0,0 +1,71 @@
# Decisions
This folder holds **Architecture Decision Records (ADRs)** — short, immutable
records of a specific technical choice, why it was made, and what it implies
going forward.
## What belongs here
A decision, not a how-to. If it answers "why do we do X this way, and what
else did we consider," it's a decision. If it explains "how subsystem X
currently works," that belongs in [`../Concepts`](../Concepts/README.md)
instead (and a decision often triggers a concept doc to be created/updated).
## File naming
`NNNN-kebab-case-title.md`, four-digit zero-padded, sequential across the
whole folder (`0001-...`, `0002-...`). Never reuse or renumber.
## Required YAML frontmatter
Every decision file starts with:
```yaml
---
status: Accepted # Proposed | Accepted | Superseded
date: 2026-07-03 # date the decision was accepted
applyTo: # glob(s) — files/areas this decision governs
- "Fuchs/Notifications/**"
supersededBy: "" # filename of the decision that replaced this one, if any
---
```
**Agents (Claude, Copilot, Codex) must scan the YAML frontmatter of every file
in this folder first** (cheap — no need to read the body) and only read the
full body of decisions whose `applyTo` glob matches the files they're about
to touch, or whose subject is otherwise clearly relevant to the task. This
keeps decision-following cheap even as the folder grows.
## Body template
```markdown
# NNNN — Title
## Context
What problem/situation forced a choice.
## Decision
What was decided, stated plainly.
## Consequences
What this implies for future code — constraints, follow-ups, trade-offs
accepted knowingly.
## Alternatives considered
Options that were rejected and why (optional but preferred).
```
## Rules
- **Decisions are immutable once `Accepted`.** Do not edit the Decision/
Consequences of an existing file to reverse it. Instead, write a new
decision, set its `applyTo`/subject accordingly, and set the old file's
`status: Superseded` + `supersededBy: NNNN-new-file.md`.
- **Follow existing decisions.** Before implementing anything in an area
covered by an `Accepted` decision, read it and conform to it. If you
believe a decision is wrong, raise it with the user rather than silently
deviating.
- **Capture new decisions as they happen.** Whenever the user (or the code
you're writing) settles a non-obvious architectural or cross-cutting
choice — not a routine implementation detail — add a decision here in the
same change, and create/update the matching concept doc in `../Concepts`.