40088a2123
fix(notifications): validate Twilio AccountSid format at save — closes the un-escaped URI interpolation door
Joseph Doherty
2026-07-10 04:36:19 -04:00
37cf7c1a44
fix(esg): cancellation-aware ErrorClassifier.IsTransient overload — caller-cancelled work can never classify transient
Joseph Doherty
2026-07-10 04:32:51 -04:00
eb7a913d22
feat(esg): {param} path-template substitution with consumed-param removal — implements the spec'd /recipes/{id} form
Joseph Doherty
2026-07-10 04:14:13 -04:00
d0b27b8957
feat(inbound-api): InvalidateMethod seam purging handler + known-bad — consumer entry point for the script-artifact invalidation contract (plan 05)
Joseph Doherty
2026-07-10 04:12:57 -04:00
9e60347bde
feat(notifications): configurable OAuth2 authority + scope per SMTP configuration (defaults preserve M365) — entity + EF + migration + token service
Joseph Doherty
2026-07-10 04:07:13 -04:00
178ae35308
feat(notifications): SMS notifications retry under SmsConfiguration.MaxRetries/RetryDelay (SMTP policy remains the Email + fallback policy) — wires the dead fields
Joseph Doherty
2026-07-10 04:07:03 -04:00
f0dd016207
feat(esg): TimeoutSeconds in ExternalSystem UI form + Component-ExternalSystemGateway doc sync — closes the spec-drift gap
Joseph Doherty
2026-07-10 04:06:53 -04:00
e3ef320359
feat(esg): TimeoutSeconds travels the artifact pipeline (additive contract) into site SQLite so site-side calls honor it
Joseph Doherty
2026-07-10 04:07:11 -04:00
86d1a5cbf2
feat(esg): honor per-system TimeoutSeconds in InvokeHttpAsync (falls back to DefaultHttpTimeout)
Joseph Doherty
2026-07-10 04:05:27 -04:00
899af63b2a
docs(inbound-api): DB row is authoritative for method scripts — update broken-save warning + Direct SQL Warning for the revision-checked cache
Joseph Doherty
2026-07-10 04:05:23 -04:00
16bab58d85
fix(inbound-api): revision-check compiled handler cache against the fresh ApiMethod row — heals failover/direct-SQL/known-bad staleness
Joseph Doherty
2026-07-10 03:57:13 -04:00
2767e4bca1
feat(esg): per-system TimeoutSeconds column on ExternalSystemDefinition (spec Component-ExternalSystemGateway Timeout) — entity + EF + migration
Joseph Doherty
2026-07-10 03:55:26 -04:00
102f5b60ee
perf(host): compile inbound API methods in parallel at startup
Joseph Doherty
2026-07-10 03:49:53 -04:00
839baa7880
fix(notifications): SMS adapter short-circuits on first transient — kills duplicate amplification and bounds the dispatch sweep
Joseph Doherty
2026-07-10 03:49:18 -04:00
aa1c1093e4
fix(inbound-api): endpoint filter hot-reads MaxRequestBodyBytes via IOptionsMonitor
Joseph Doherty
2026-07-10 03:48:49 -04:00
9b0cf44c02
docs(archreview): sync Status Board — PLAN-05 Complete/merged (ec23db35), PLAN-04 merge confirmed; initiative 128/192
Joseph Doherty
2026-07-10 03:38:07 -04:00
ec23db3551
docs(archreview): sync PLAN-05 tasks.json — PLAN COMPLETE (25/25), terminal verification green (8 Playwright E2E env-only)
Joseph Doherty
2026-07-10 03:30:25 -04:00
8e5631075d
docs: sync Transport/TemplateEngine/DeploymentManager specs + CLAUDE.md with the arch-review fix wave (plan 05)
Joseph Doherty
2026-07-10 03:22:34 -04:00
0642d3b988
chore: low-severity sweep — import session cap, full compile-error lists, leaf-name-fallback validation warning
Joseph Doherty
2026-07-10 02:32:37 -04:00
039cf69cbb
fix(transport): close code-review gaps in the import trust gate + severity split (T19/T20)
Joseph Doherty
2026-07-10 02:32:28 -04:00
92e713f1a1
fix(transport): template diffs resolve folder/base/composition names — unchanged structured templates classify Identical again
Joseph Doherty
2026-07-10 02:22:44 -04:00
523e670579
fix(security): bundle import runs the script trust gate — forbidden-API scripts rejected at import review, not at runtime
Joseph Doherty
2026-07-10 02:18:12 -04:00
c60347c5e7
fix(transport): blocker heuristic no longer hard-blocks valid imports — local declarations excluded, denylist extended, template-script findings downgraded to warnings
Joseph Doherty
2026-07-10 02:12:26 -04:00
7c74bbe4b5
fix(transport): close 5 residual import/export fidelity holes surfaced by the round-trip guard (T8)
Joseph Doherty
2026-07-09 17:44:12 -04:00
e498c6e1bd
test(transport): per-entity reflection round-trip equivalence suite — structural guard against silent import data loss
Joseph Doherty
2026-07-09 17:36:22 -04:00
2c839def33
feat(commons/transport): ScriptArtifactsChanged invalidation contract + post-commit publish from bundle import (consumer lands in plan 06)
Joseph Doherty
2026-07-09 17:27:40 -04:00
38edfefc42
refactor(transport): single-source template child equality — diff and overwrite-sync can no longer drift
Joseph Doherty
2026-07-09 17:17:18 -04:00
d833219920
fix(template-engine): DiffService covers native alarm sources — Deployments diff view no longer blind to native-alarm edits
Joseph Doherty
2026-07-09 16:42:00 -04:00
0302694f9a
fix(template-engine): native alarm sources participate in the revision hash — staleness detection restored (deliberate one-time stale flip for affected instances)
Joseph Doherty
2026-07-09 16:43:23 -04:00
bf17f60a04
fix(transport): transport LockedInDerived on template attributes/alarms/scripts (additive DTO fields)
Joseph Doherty
2026-07-09 16:46:33 -04:00
874e32a93e
fix(template-engine): collision detection sees all slots of a repeatedly-composed template
Joseph Doherty
2026-07-09 16:21:02 -04:00
57f7f65772
fix(security): enforce template locks on native alarm source overrides at flatten and management-command level
Joseph Doherty
2026-07-09 16:28:52 -04:00
ab6077708f
fix(deployment): delete NotDeployed instances centrally without a site round-trip
Joseph Doherty
2026-07-09 16:22:29 -04:00
53ce64ba79
fix(transport): cap LineDiffer input size — oversized script diffs degrade to summary instead of O((N+M)^2) memory
Joseph Doherty
2026-07-09 16:08:15 -04:00
ef59c752ba
perf(template-engine): cache script compile verdicts by code hash — unchanged scripts compile once per process
Joseph Doherty
2026-07-09 16:08:03 -04:00
f40f52950e
fix(transport): export instance AreaName — Area-by-name reconciliation was half-shipped (exporter hardcoded null)
Joseph Doherty
2026-07-09 16:09:56 -04:00
721a2e595f
fix(deployment): audit-write fault can no longer flip a committed Success deployment to Failed
Joseph Doherty
2026-07-09 16:12:56 -04:00
5c52b4c80b
fix(transport): carry script cadence/timeout fields through bundle import (was silently reset to defaults)
Joseph Doherty
2026-07-09 16:09:50 -04:00
aae0a2db3e
fix(transport): reject bundle imports that would persist an inheritance/composition cycle
Joseph Doherty
2026-07-09 15:40:14 -04:00
854a6a8c0b
perf(deployment): staleness/comparison paths no longer Roslyn-compile every script — deploy gate remains the authoritative compile
Joseph Doherty
2026-07-09 15:48:45 -04:00
730bf19162
fix(template-engine): repeated composition no longer drops nested members — cycle guard keyed on recursion path, not global template id
Joseph Doherty
2026-07-09 15:38:20 -04:00
d19ab93d39
fix(security): deny Environment/GC and ADO.NET provider namespaces; close reflection-gateway list (GetTypes/EntryPoint/Declared*/DynamicInvoke)
Joseph Doherty
2026-07-09 15:38:12 -04:00
dbd3ed2fc7
docs(archreview): sync PLAN-04 tasks.json + tracker — Task 26 sweep GREEN, plan COMPLETE (26/26)
Joseph Doherty
2026-07-09 14:59:20 -04:00
22d5239039
test(commons): update AuditKind lock-in test for 15th member (ReconciliationAbandoned)
Joseph Doherty
2026-07-09 14:57:28 -04:00
7f1b59ff84
docs: reconcile design docs with shipped code (enums, Sms, per-channel retention, SiteCalls schema, conventions)
Joseph Doherty
2026-07-09 10:03:13 -04:00
3a21e77c03
docs(archreview): add cross-plan parallelization map for incomplete tasks + sync stale PLAN-04 status
Joseph Doherty
2026-07-09 09:53:05 -04:00
34337a8714
perf(site-call-audit): OPTION (RECOMPILE) on the optional-parameter query page
Joseph Doherty
2026-07-09 09:12:50 -04:00
6f5d60070c
perf(notification-outbox): single-query KPI aggregation; oldest-pending no longer materializes the live queue
Joseph Doherty
2026-07-09 09:12:00 -04:00
71189298a2
perf(kpi-history): time-sliced batched purge replaces the single daily mega-DELETE
Joseph Doherty
2026-07-09 09:06:42 -04:00
bfd2cc7e6f
fix(audit-log): reconciliation pulls fail over to site NodeB when NodeA is unreachable
Joseph Doherty
2026-07-09 08:57:06 -04:00
0385942c3f
feat(audit-log): permanently-abandoned reconciliation rows leave a durable ReconciliationAbandoned audit record
Joseph Doherty
2026-07-09 08:50:44 -04:00
20098c6108
fix(site-call-audit): composite keyset cursor eliminates the single-timestamp reconciliation pin; pinned state now a published event
Joseph Doherty
2026-07-09 08:44:07 -04:00
1dd89d523b
fix(config-db): EnableRetryOnFailure fleet-wide + execution-strategy wrap of the combined-telemetry dual-write
Joseph Doherty
2026-07-09 08:03:30 -04:00
6b06d1efcb
fix(site-call-audit): same-rank freshness tiebreaker — retrying calls no longer freeze RetryCount/LastError at first write
Joseph Doherty
2026-07-09 07:56:39 -04:00
1b53de1933
fix(kpi-history): backlogTotal trend records the real site-backlog aggregate instead of a hardwired zero
Joseph Doherty
2026-07-09 07:51:55 -04:00
5d0fcd4e66
perf(audit-log): bound GetExecutionTreeAsync edge scan to a root-anchored time window (partition elimination)
Joseph Doherty
2026-07-09 07:10:35 -04:00
f1957606ff
perf(site-call-audit): filtered IX_SiteCalls_NonTerminal index — KPI predicates seek the live queue instead of scanning 365 days
Joseph Doherty
2026-07-09 07:06:50 -04:00
eb69b93947
docs(audit-log): document append-only enforcement honestly (CI guard default; DB roles are optional DBA hardening; purger now has CREATE TABLE + scoped DELETE)
Joseph Doherty
2026-07-09 07:03:10 -04:00
7555e65746
fix(config-db): grant CREATE TABLE + scoped DELETE to scadabridge_audit_purger so a segregated maintenance principal can actually run the purge
Joseph Doherty
2026-07-09 06:52:44 -04:00
14c4df54f9
feat(audit-log): surface partition-purge failure as health event + counter
Joseph Doherty
2026-07-09 06:49:28 -04:00
b59aa2d717
fix(audit-log): explicit long CommandTimeout on partition-switch and per-channel purge maintenance paths
Joseph Doherty
2026-07-09 06:43:23 -04:00
1b6b0aab2a
docs(archreview): sync PLAN-04 tasks.json — Tasks 1-3 completed (Batch 1, site retention chain)
Joseph Doherty
2026-07-09 06:22:42 -04:00
74aa872c07
feat(audit-log): daily site SQLite retention purge job (closes unbounded site DB growth)
Joseph Doherty
2026-07-09 06:22:19 -04:00