Commit Graph

  • a300f35f9d chore(rig): ScriptTrace retention override; verify-delmia-notifier step H = Flow Debugger live run + replay Joseph Doherty 2026-09-06 00:38:41 -04:00
  • 0a9ef87b54 docs: Flow Debugger — component specs, CLAUDE.md, CLI README, register row 110 Joseph Doherty 2026-09-06 00:38:41 -04:00
  • 66d5a67e4f feat(central-ui): Flow Debugger drill-ins from Audit Log + Execution Chain; TraceAllCalls checkbox on the method form Joseph Doherty 2026-09-06 00:33:37 -04:00
  • 254118a467 feat(central-ui): Flow Debugger page (predict, live run, replay, step detail) + nav entry Joseph Doherty 2026-09-06 00:31:55 -04:00
  • ba15a38327 feat(central-ui): FlowGraphView SVG swimlane renderer Joseph Doherty 2026-09-06 00:25:54 -04:00
  • f9b8a2cf8f feat(central-ui): FlowDebugService — management-command bridge + predicted graph Joseph Doherty 2026-09-06 00:20:22 -04:00
  • b73d6b5e2e feat(script-analysis): FlowShapePredictor — predicted flow graph from script syntax Joseph Doherty 2026-09-06 00:15:42 -04:00
  • 0fb7e16ced feat(cli): flow-debug run-method|run-value-change|replay Joseph Doherty 2026-09-06 00:11:42 -04:00
  • f783d4efc4 chore(plans): flow debugger task ledger — tasks 0-15 complete Joseph Doherty 2026-09-06 00:04:49 -04:00
  • d11dcb77c5 feat(management): FlowDebug run-method / run-value-change / replay commands (Deployer, active-node gated, inline trace) Joseph Doherty 2026-09-06 00:04:18 -04:00
  • 9300bc1a4f feat(audit): GetTraceEventsAsync returns the ScriptTrace chain for Replay Joseph Doherty 2026-09-05 23:59:08 -04:00
  • 981deed0fd feat(inbound-api): executor threads the trace flag; endpoint honours ApiMethod.TraceAllCalls Joseph Doherty 2026-09-05 23:59:08 -04:00
  • 3f582a278c feat(inbound-api): RouteHelper writes an always-on RouteCall audit row, propagates Trace, exposes an inline trace sink Joseph Doherty 2026-09-05 23:59:08 -04:00
  • 7e61552d82 feat(wire): attribute updates carry source_execution_id/trace; PullTraceEvents RPC + site read-by-execution-ids Joseph Doherty 2026-09-05 23:52:50 -04:00
  • f15d0db0ad feat(wire): route_to_call trace flag + child_execution_id + trace_events; route_to_set_attributes trace (additive proto + mapper) Joseph Doherty 2026-09-05 23:52:50 -04:00
  • 2c86adb782 feat(site-runtime): route handlers forward Trace and return child ExecutionId + trace events Joseph Doherty 2026-09-05 23:43:33 -04:00
  • 01be39019e feat(site-runtime): InstanceActor trace arm stamps the device echo of a traced write; Trace rides on published changes Joseph Doherty 2026-09-05 23:43:33 -04:00
  • eca1434160 feat(site-runtime): traced runs emit ScriptRun rows, return ExecutionId + trace events; traced value-change runs inherit the parent Joseph Doherty 2026-09-05 23:43:33 -04:00
  • 93489cd7a2 feat(site-runtime): ScriptRuntimeContext emits ScriptTrace AttributeWrite/AttributeWait rows and inherits the Trace flag Joseph Doherty 2026-09-05 23:43:32 -04:00
  • 23157d2bcf feat(inbound-api): ApiMethod.TraceAllCalls (entity, migration, mgmt command, CLI --trace-all-calls) Joseph Doherty 2026-09-05 23:42:52 -04:00
  • febb268d89 feat(site-runtime): FlowTraceCollector Joseph Doherty 2026-09-05 23:42:39 -04:00
  • ec7b5b2ea3 feat(commons): FlowStep/FlowGraph projection + FlowGraphBuilder for the Flow Debugger Joseph Doherty 2026-09-05 23:41:50 -04:00
  • 24e595d6d9 feat(commons): additive Trace flag + ChildExecutionId/TraceEvents on route/call/write/change records Joseph Doherty 2026-09-05 23:41:50 -04:00
  • 352e0bfa37 feat(audit): ScriptTrace channel + RouteCall/ScriptRun/AttributeWrite/AttributeWait kinds Joseph Doherty 2026-09-05 23:41:50 -04:00
  • 61d1785fcb docs(plans): flow debugger design — trace steps are audit events; mgmt-command execution path; context-emitted write/wait rows Joseph Doherty 2026-09-05 23:26:28 -04:00
  • 2e3eb94d38 docs(plans): Flow Debugger implementation plan — 24 tasks, TDD, additive contracts first, rig step H last Joseph Doherty 2026-09-05 23:22:55 -04:00
  • 7fa916e2c7 docs(plans): Flow Debugger design — visual swimlane debugger for inbound API + value-change flows Joseph Doherty 2026-09-05 22:51:52 -04:00
  • d2bfd8340c chore(deps): bump ZB.MOM.WW.MxGateway.Client/Contracts 0.2.0->0.2.1 Joseph Doherty 2026-09-03 12:23:10 -04:00
  • 59813da508 docs(claude): note index row length convention + sister-project-history split Joseph Doherty 2026-09-03 10:48:04 -04:00
  • e45c4af91d docs(plans): inbound-api-key-shared-store task ledger — all 14 tasks complete Joseph Doherty 2026-09-02 23:39:06 -04:00
  • 551f753580 docs(deployment): planned record for moving QA (vq03/vq04) and prod (vd03) central inbound key stores to SQL Server; plan doc no longer spells out the dev sa password Joseph Doherty 2026-09-02 23:33:38 -04:00
  • f47ceb55b1 docs: inbound API key store — shared SQL Server provider on central pairs (spec, runbook + central-pairs procedure, DBA DDL copy, topology, env inventory, CLAUDE.md, register row 108 closed with rig proof, row 109 Secrets backoff follow-up, Delmia spec §8) Joseph Doherty 2026-09-02 23:31:21 -04:00
  • a83cc8613d chore(docker): both rigs' centrals on the shared SQL Server inbound key store; delete sync-inbound-api-keys.sh (superseded); verify-delmia-notifier.sh preflight is now the proof that both nodes see a key minted on one — drill green with no file copy, takeover 28 s Joseph Doherty 2026-09-02 23:31:21 -04:00
  • d6fd8c400c feat(host): StartupValidator warns when a clustered central keeps per-node inbound API keys; rejects an unknown ApiKeyStore:Provider at boot; Program.cs logs CollectWarnings once Serilog is up Joseph Doherty 2026-09-02 23:26:34 -04:00
  • 06be0b9e64 feat(host): inbound API key store provider — SqlServer shares one zbauth row set across the central pair; one-shot SQLite import at boot (file renamed .imported, one retry on a concurrent-peer PK race, failure never blocks boot) Joseph Doherty 2026-09-02 23:26:03 -04:00
  • afe59a5518 chore(host): pin ZB.MOM.WW.Auth 0.3.0 + ApiKeys.SqlServer; InboundApiKeyStoreOptions (Provider Sqlite|SqlServer, ReadProvider fails the boot on an unknown value) Joseph Doherty 2026-09-02 22:46:11 -04:00
  • 08405c1ca1 chore(gitignore): fix worktree ignore typo (.claire/ -> .claude/worktrees/) Joseph Doherty 2026-09-02 14:02:35 -04:00
  • 081e57f166 docs: Delmia rig stand-in + notifier verification results (A-G incl. active-central kill/takeover 27 s, rejoin); register rows 107 (prod DelmiaRecv path) + 108 (per-node inbound API key store breaks central failover); CLAUDE.md bullet; plan + task file Joseph Doherty 2026-09-02 12:54:58 -04:00
  • f4363e0b4b fix(delmia-notifier)+chore(docker): review follow-ups — trim the env key like the file key, log which source supplied the key (never the key), hoist the not-configured message; README warns never to commit a filled-in appsettings.json; design-doc body lines updated; seed-delmia-api.sh no longer hides CLI errors and notes key names are not unique Joseph Doherty 2026-09-02 12:52:56 -04:00
  • 83f7bbfb50 test(docker): verify-delmia-notifier.sh — notifier end-to-end on the rig incl. standby relay, active-central kill/takeover and rejoin; sync-inbound-api-keys.sh mirrors the per-node key store Joseph Doherty 2026-09-02 12:52:56 -04:00
  • 27eb598987 chore(docker): seed-delmia-api.sh — DelmiaRecipeDownload inbound method (prod script) + scoped delmia-notifier API key Joseph Doherty 2026-09-02 12:43:21 -04:00
  • 5466cab920 chore(docker): seed-delmia-sim.sh — in-memory SimMachine + composed DelmiaReceiver stand-in on site-a with a ValueChange simulator playing the Galaxy side Joseph Doherty 2026-09-02 12:43:21 -04:00
  • 8adb09a083 feat(delmia-notifier): optional ScadaBridge:ApiKey in appsettings.json as a fallback to SCADABRIDGE_API_KEY (env still wins); README/env inventory/design row updated Joseph Doherty 2026-09-02 12:43:21 -04:00
  • 7dc30085be docs(api-specs): capture the as-deployed DelmiaRecipeDownload contract from prod vd03 (method, site handshake, keys, observed calls); link from the legacy dnc spec Joseph Doherty 2026-09-02 12:43:21 -04:00
  • afb5180ce0 docs+test(site-runtime): Lever 1 final-review polish — document that the Good reset does not release an in-flight request and that the guard is inert once interval ≥ ceiling; FlappingGood asserts the retry landed during the burst instead of timing Thread.Sleep; NativeAlarmActor (same unguarded amplifier) + cancel-race residue recorded as follow-ups Joseph Doherty 2026-08-28 15:10:21 -04:00
  • c52f14afca docs(plans): Lever 1 live gate PASS on the docker rig (one request per 45 s ceiling, backoff 5→9.4→20.4 s, Good within ~95 s of restore); plan tasks 1-8 completed Joseph Doherty 2026-08-28 15:06:22 -04:00
  • 0589486f4e fix(site-runtime): ConnectionQualityChanged(Good) only resets the tag-subscribe backoff while it is stretched — a flapping connection can no longer defer the retry it was meant to hasten Joseph Doherty 2026-08-28 14:57:30 -04:00
  • 150c3f60d8 docs: tag-subscribe in-flight guard + backoff (Lever 1) — spec, CLAUDE.md, design-doc status Joseph Doherty 2026-08-28 14:53:23 -04:00
  • ab08ecd3d3 feat(site-runtime): ConnectionQualityChanged(Good) resets tag-subscribe backoff to the floor (Lever 1); lock in superseded-reply drop Joseph Doherty 2026-08-28 14:50:04 -04:00
  • b6b401c879 feat(site-runtime): tag-subscribe failure reply frees the in-flight slot, backs off (×2 ±20%, capped) and Success resets to floor (Lever 1) Joseph Doherty 2026-08-28 14:36:22 -04:00
  • 029d39fca2 feat(site-runtime): tag-subscribe in-flight guard — one outstanding request per connection until TagSubscribeInFlightCeilingMs (Lever 1) Joseph Doherty 2026-08-28 14:24:35 -04:00
  • 2f471dd7a1 feat(site-runtime): pure NextTagSubscribeInterval backoff step (double, ±20% jitter, clamp) Joseph Doherty 2026-08-28 14:20:07 -04:00
  • 6f7c6ad877 feat(site-runtime): TagSubscribeRetryMaxIntervalMs + TagSubscribeInFlightCeilingMs options (Lever 1, validated) Joseph Doherty 2026-08-28 14:19:50 -04:00
  • e39cca093b docs(plans): Lever 1 implementation plan — tag-subscribe in-flight guard + exponential backoff in InstanceActor (8 tasks, TDD) Joseph Doherty 2026-08-28 14:17:51 -04:00
  • dce52ad087 docs(plans): MxGateway subscribe-storm prevention design — reviewed against both repos; Lever 3 re-scoped to the gateway's per-session command_timeout (no per-invoke override exists), da0bfe2b attributed to the ScadaBridge DCL, line refs refreshed Joseph Doherty 2026-08-28 14:13:02 -04:00
  • a9b23556eb feat(inbound-api): standby central node relays POST /api/* to the active peer instead of 503 Joseph Doherty 2026-08-28 13:34:20 -04:00
  • f07ba5cff5 docs(deployment): QA vq03/vq04 + prod vd03 upgraded to afb27e77 (template picker) — binary-only, no migrations; all six health endpoints Healthy Joseph Doherty 2026-08-21 08:34:49 -04:00
  • afb27e7780 docs: CLAUDE.md — template picker on Create Instance (RevealKeys, ?templateId, Deployer-gated New Instance…) + the Single-mode SelectedKey/SelectedKeys trap Joseph Doherty 2026-08-21 08:24:05 -04:00
  • 7a77d38abf test(playwright): key the Configure bulk-Apply click by data-test (strict-mode collision with the grouped 'Apply to n' button) Joseph Doherty 2026-08-21 08:22:03 -04:00
  • d6a31f1cd0 docs(plans): template picker — live rig gate PASS (New Instance…, ?templateId prefill, picker reveal/search/cancel, Disable verb) + task status Joseph Doherty 2026-08-21 08:07:22 -04:00
  • 4bb77cf0f7 docs(centralui): template picker on Create Instance, New Instance… from the Templates tree Joseph Doherty 2026-08-21 08:01:37 -04:00
  • 1790f67ebd test(centralui): pin Topology Disable/Delete confirm verbs (register row 28) Joseph Doherty 2026-08-21 07:45:46 -04:00
  • 7c2582d105 feat(centralui): Templates tree context menu — "New Instance…" (Deployer-gated) Joseph Doherty 2026-08-21 07:44:15 -04:00
  • 5b4a27b23e feat(centralui): Create Instance picks its template from the folder tree (+ ?templateId preselect) Joseph Doherty 2026-08-21 07:42:14 -04:00
  • 4bd2651925 feat(centralui): TemplatePickerDialog — folder-tree template picker hosted by IDialogService Joseph Doherty 2026-08-21 07:08:37 -04:00
  • 8df6bcb6e0 feat(centralui): TemplateFolderTree.RevealKeys — expand to a preselected node Joseph Doherty 2026-08-21 06:55:03 -04:00
  • 9261fa09fa feat(centralui): TemplatePathFormatter — folder-path label for template pickers Joseph Doherty 2026-08-21 06:53:40 -04:00
  • 22468c1548 docs(plans): template picker design + 8-task plan — Create Instance picks from the Templates folder tree (TemplatePickerDialog, ?templateId preselect), Templates tree gains Deployer-gated 'New Instance…', Topology Disable confirm verb pinned (already fixed by 0db253b5) Joseph Doherty 2026-08-21 06:51:27 -04:00
  • a3e2df325c docs(deployment): QA vq03/vq04 + prod vd03 upgraded to 691a2f2f (create-time bindings) — binary-only, no migrations; healthy; outgoing-process stop-timeout FTL noted Joseph Doherty 2026-08-21 06:36:24 -04:00
  • 691a2f2f80 docs(plans): create-time bindings — live rig gate PASS (Object-node pick, prefill, 30/30 bound, deploy-gate A/B) + task status Joseph Doherty 2026-08-21 06:20:50 -04:00
  • a26edffd4c docs: create-time connection bindings (Central UI, DeploymentManager preview flatten, CLI cross-ref) Joseph Doherty 2026-08-21 06:14:55 -04:00
  • 80b9ab2d57 feat(centralui): Create saves bindings (upsert) and lands on Configure with a created/bound/bindError notice Joseph Doherty 2026-08-21 06:12:53 -04:00
  • 74c7bd2fa8 feat(centralui): Create Instance — Connection Bindings card (preview flatten, per-group connection/Object/Browse, Bind-all prefill) Joseph Doherty 2026-08-21 06:11:53 -04:00
  • ab6e3432bd feat(centralui): NodeBrowserDialog.SelectableNodeClasses — opt-in Object node selection (default unchanged) Joseph Doherty 2026-08-21 06:07:12 -04:00
  • 8d17af37ac feat(centralui): CreateBindingPlanner — prefill/tail-strip/binding-list logic for create-time bindings Joseph Doherty 2026-08-21 06:05:41 -04:00
  • 6257c9e20e feat(deploymentmanager): IFlatteningPipeline.PreviewAsync — flatten a template+site without an instance row (create-page bindings) Joseph Doherty 2026-08-21 06:04:13 -04:00
  • a7301bb638 docs(plans): create-time connection bindings — design (inline card on Create Instance, object-node Browse, land on Configure) + 9-task plan Joseph Doherty 2026-08-21 05:59:00 -04:00
  • 8beee522a3 docs(deployment): prod vd03 hotfix da0bfe2b (binary-only swap via WinRM, app.bak.20260820T170309) — healthy, boot-time advise retries match the a24fa38e boot Joseph Doherty 2026-08-20 17:08:27 -04:00
  • 50f7439e33 docs(deployment): QA hotfix da0bfe2b — MxGateway graceful-stream-end disconnect; incident root cause (dashboard session close 15:29:03) Joseph Doherty 2026-08-20 16:57:45 -04:00
  • da0bfe2be1 fix(dcl): MxGateway adapter treats a graceful end of the event stream as a disconnect — a dashboard 'close session' (or graceful gateway shutdown) completes the stream with OK, leaving the adapter Connected on a dead session: values frozen at last GOOD quality, every write 'Session … was not found' until restart (QA vq03 Z28061 MoveIn, 2026-08-20). Pinned: signals once while connected, silent for superseded loops / own teardown Joseph Doherty 2026-08-20 16:51:13 -04:00
  • f5a74db3de docs(deployment): record prod upgrade of wonder-app-vd03 to a24fa38e (via WinRM from vq04) — 6 EF migrations, AuditLog:SiteWriter path, System32 auditlog.db relocated; Z28061 270 rows / 8 groups Joseph Doherty 2026-08-20 16:40:00 -04:00
  • 5b9cf772db docs(deployment): record QA upgrade of wonder-app-vq03 + vq04 (all 4 nodes) to a24fa38e — 6 EF migrations, AuditLog:SiteWriter path added, System32 auditlog.db relocated; grouped bindings verified on Z28061 (264 rows / 8 groups) Joseph Doherty 2026-08-20 16:31:57 -04:00
  • a24fa38eae docs(plans): grouped connection bindings — all 9 tasks complete Joseph Doherty 2026-08-20 16:12:13 -04:00
  • 546250096d fix(centralui): grouped bindings review fixes — Apply with the header at none/mixed keeps each member's connection (never unbinds; upsert Save could not persist it), object inference runs over effective references (bare-default members make an overridden group mixed, default-only prefixes infer), bindings to a deleted connection count as unbound, 'n changed · unsaved' diffs against last-saved state; bUnit behaviour tests for fallback banner, grouping and mixed-group Apply+Save Joseph Doherty 2026-08-20 16:09:34 -04:00
  • 5e04e81ba0 docs: grouped connection bindings — Central UI Configure page, ResolvedAttribute.DefaultDataSourceReference, CLI instance bind-module; correct the stale 'set-bindings REPLACES all' claim (server upserts) in README + help text Joseph Doherty 2026-08-20 16:01:33 -04:00
  • 77f4af0d64 feat(centralui): grouped Connection Bindings panel — rows sourced from the flattened config (composed module members were invisible; flatten failure falls back to direct attributes with a banner), per-module connection + Object apply, unbound/mixed pills, show-only-unbound filter, Test Bindings covers composed rows, per-row Browse retained Joseph Doherty 2026-08-20 15:59:51 -04:00
  • 02a374259b feat(cli): instance bind-module — rebind one composed module's members to a new object path via GetInstance → SetConnectionBindings upsert; --dry-run Joseph Doherty 2026-08-20 15:54:27 -04:00
  • 2fb1c8ee14 feat(centralui): BindingGroupBuilder.ApplyObject — per-module bulk rewrite to <object>.<member>, blank clears Joseph Doherty 2026-08-20 15:54:47 -04:00
  • 5da7003e88 feat(centralui): BindingGroupBuilder — group flattened binding rows by module, infer the shared MxAccess object prefix, count unbound Joseph Doherty 2026-08-20 15:53:59 -04:00
  • 3acb79d97e feat(templateengine): ResolvedAttribute.DefaultDataSourceReference — pre-binding default for the Configure page; excluded from the revision hash (pinned) Joseph Doherty 2026-08-20 15:53:05 -04:00
  • 4cfd9337a3 docs(plans): grouped connection bindings implementation plan (9 tasks) Joseph Doherty 2026-08-20 15:49:36 -04:00
  • eef77b6654 docs(plans): grouped connection bindings design — Configure page sources binding rows from the flattened config (composed members were invisible), per-module Object bulk apply, CLI instance bind-module parity Joseph Doherty 2026-08-20 15:44:40 -04:00
  • 4388fa41e4 deps(localdb)+docs: consume LocalDb 0.3.4 — snapshot as_of_seq floors at last_acked_seq, ending the full-snapshot-on-every-reconnect loop (register row 106 closed, live-proven on the rig: second pair restart exchanged zero snapshots) Joseph Doherty 2026-08-20 10:00:37 -04:00
  • 25c15dd164 ops(docker)+test(host)+docs: close register rows 104 + 105 — offline VACUUM recipe applied to the rig; build-time pin that no replicated table is a cascading-FK parent; record row 106 (LocalDb as_of_seq=0 full-snapshot loop) Joseph Doherty 2026-08-20 09:37:48 -04:00
  • 09989fdf32 deps(localdb)+docs: consume LocalDb 0.3.3 (FK-parent registration guard + atomic per-entry apply, arch-review P4-7); Low-wave integration docs — register rows 103 closed / 104 auto_vacuum legacy files / 105 FK-parent constraint; CLAUDE.md bulk-deploy up-to-date filter + --force, 0.3.3 line, infra/LDAP correction (P8-7); plan doc status Joseph Doherty 2026-08-20 08:56:50 -04:00
  • bbc1b55cc4 test(siteeventlog): make P4-5's ExecuteAsync-yield test deterministic — park the purge on the isActiveNode gate instead of racing the pool thread Joseph Doherty 2026-08-20 08:56:50 -04:00
  • 57c8973b0d fix(centralui)+test(centralui): Low-wave integration — T12 Topology race fixture gains T13's IStaleInstanceProbe dependency; T11 sandbox-run continuation skips StateHasChanged after Dispose Joseph Doherty 2026-08-20 08:42:56 -04:00
  • 3bf1537ea0 docs(docker)+docs(docker-env2)+infra: close P8-7 + P8-10 — LDAP doc drift + env2 gRPC port/teardown parity Joseph Doherty 2026-08-19 16:17:49 -04:00
  • 428b8db024 test(dcl+communication+storeandforward+kpihistory+host): close register row-40-class sleeps + row-32 provider leak (arch-review 2026-08-19 P8-8 + P8-9) Joseph Doherty 2026-08-19 16:33:24 -04:00
  • b34ec10f8b fix(deploymentmanager): bulk site deploy skips up-to-date instances and un-poisons the shared DbContext (arch-review Low P7-5 + P7-6) Joseph Doherty 2026-08-19 16:37:42 -04:00