- load measurement hierarchy and metadata from PostgreSQL
- generate 3 types Redis hashes
- map measurement type enums to TM, TS, TC, TA, and SP
- validate token uniqueness, mode, type, and JSONB fields
- track initialized hashes and clean up stale measurement keys
- initialize measurement data objects during modelRT startup
- resolve component and dynamic parameter attributes through project mappings
- generate full and local parameter token hashes during startup
- validate parameter routes, descriptions, duplicate records, and token ambiguity
- track initialized Redis keys for stale cache cleanup
- centralize supported parameter attribute groups
- distinguish CL3611 phasor and sampled-data identifiers
- add parameter initialization and SQL mapping tests
- replace globalTree startup loading with globalTopologyGraph
- add topologyGraph adjacency cache with in/out edges, start nodes, and end nodes
- remove multiBranchTreeNode and legacy tree-building helpers
- make topology queries independent of the all-zero UUID virtual root
- keep TOPOLOGY_ANALYSIS on per-task DB querying while clarifying point-to-point reachability results
- add coverage for multi-parent topology reachability
- add component as a token6 config recommendation constant
- read component table column names during startup
- bind component config recommendations to component table columns
- add full and local autocomplete terms for component column paths
- regenerate AsyncTask swagger responses, keeping only the documented case
- remove obsolete 200/400/404/500 response entries from docs/swagger
- delete commented-out termsOfService TODO from main.go API annotations
- lowercase first letter of all logger.Info/Warn/Error message strings
in task/worker.go, task/retry_queue.go, task/handler_factory.go,
task/metrics_logger.go, task/retry_manager.go, task/queue_producer.go,
task/initializer.go, task/test_task.go, and main.go
- fix inline comments in main.go that mixed Chinese and uppercase English
- align Dockerfile comment casing with project convention
- add *Skip variants (logSkip, makeLogFieldsSkip, getLoggerCallerInfoSkip)
so wrapper functions report the true call site, not logger internals
- switch GormLogger.Trace to use ErrorSkip/WarnSkip/InfoSkip with extraSkip=1
so SQL log lines point to GORM caller rather than the logger facade
- pass postgresDBClient instead of tx to GetFullMeasurementSet in main
- run 5 independent DB queries concurrently via errgroup.WithContext
- add ctx parameter and bind db with WithContext for cancellation support
- replace silent error swallowing (if err == nil) with wrapped error returns
- promote golang.org/x/sync to direct dependency in go.mod
- add LokiConfig and batching lokiSyncer for dev-mode direct log push
- refactor zap logger to support mode-aware encoding and K8s pod fields
- fix RabbitMQ shutdown race: move CloseRabbitProxy to defer so channel
closes before connection (prevents 504 error on Ctrl+C)
- wrap MsgChan with EventMessage to carry per-cycle trace carrier
- create new root OTel span per computation cycle linked to startup span,
giving each cycle an independent traceID with startup as reference
- add TopologyAnalysisHandler.Execute() with 5-phase BFS reachability
check between start/end component UUIDs; support CheckInService flag
to skip out-of-service nodes during traversal
- carry task params through RabbitMQ message (TaskQueueMessage.Params)
instead of re-querying DB in handler; update TaskHandler.Execute
interface and all handler signatures accordingly
- fix BuildMultiBranchTree UUIDFrom condition bug; return nodeMap for
O(1) lookup; add QueryTopologicByStartUUID for directed traversal
- add QueryBayByUUID/QueryBaysByUUIDs and
QueryComponentsInServiceByUUIDs (two-column select) to database layer
- add diagram.FindPath via LCA algorithm for tree path reconstruction
- move initTracerProvider to middleware.InitTracerProvider; add
OtelConfig struct to ModelRTConfig for endpoint configuration
- update topology analysis params to start/end_component_uuid +
check_in_service; remove dead topology init code
- introduce typed traceCtxKey to prevent context key collisions (staticcheck fix)
- inject B3 trace values into c.Request.Context() in StartTrace middleware
so handlers using c.Request.Context() carry trace info
- create startup trace context in main.go, replacing context.TODO()
- propagate HTTP traceID/spanID through TaskQueueMessage into RabbitMQ
worker, linking HTTP request → publish → execution on the same traceID
- fix GORM logger null traceID by binding ctx to AutoMigrate and queries
via db.WithContext(ctx)
- thread ctx through handler factory to fix null traceID in startup logs
- replace per-request RabbitMQ producer with channel-based
PushTaskToRabbitMQ goroutine; restrict Swagger to non-production