Skip to content

Cu 86evxtxeu cap nhat logic chay runtime multiple process cho phien ban tiep theo sang pham#81

Open
dev-pnsang wants to merge 42 commits intodevelopfrom
CU-86evxtxeu_Cap-nhat-logic-chay-runtime-multiple-process-cho-phien-ban-tiep-theo_Sang-Pham
Open

Cu 86evxtxeu cap nhat logic chay runtime multiple process cho phien ban tiep theo sang pham#81
dev-pnsang wants to merge 42 commits intodevelopfrom
CU-86evxtxeu_Cap-nhat-logic-chay-runtime-multiple-process-cho-phien-ban-tiep-theo_Sang-Pham

Conversation

@dev-pnsang
Copy link
Collaborator

No description provided.

- SubprocessInstanceManager: merge config into cache and save to storage
  before syncing worker so PATCH and POST /lines/batch return 200 and
  GET /lines shows new data even when worker fails or times out
- updateInstance (PATCH) and updateInstanceFromConfig: persist first,
  then sync worker best-effort; return true when persist succeeds
- Add mergeConfigIntoCacheAndSave(); treat saveInstance failure as
  non-fatal (cache already updated)
- Worker hotSwapPipeline: use mergeJsonInto for tempConfig to avoid
  overwriting full AdditionalParams when PATCH sends only CrossingLines
- CrossingLines ID: normalize on write - generate UUID once for lines
  without id, store in config for whole instance lifecycle; user-
  provided ids are kept as-is (normalizeCrossingLinesIds in merge path)
- lines_handler: comment loadLinesFromConfig id behavior; saveLinesToConfig
  already normalizes ids before save
- support/: add rtmp_fin_wrapper (close_fin)

Made-with: Cursor
- Allow type 'File' in POST /v1/core/instance/{instanceId}/input (same as SecuRT)
- Set Input.media_type=File, Input.uri and AdditionalParams.FILE_PATH
- Update instance_handler_input_stream.cpp and ai_handler.cpp
- OpenAPI: document File type, add examples, extend SetInputRequest enum

Made-with: Cursor
…al test

- Add bind_mode in system_config: 'local' -> 127.0.0.1, 'public' -> 0.0.0.0
- config.json.example and ENVIRONMENT_VARIABLES: bind vs public docs
- OpenAPI (en/vi): bind_mode in examples, Server bind & restart in info
- Manual test: CONFIG_BIND_AND_RESTART_MANUAL_TEST.md for non-dev (curl, Swagger)
- README manual + api-specs: link to bind/restart guide

Made-with: Cursor
…I guide

- System log config: GET/PUT /v1/core/log/config (enabled, log_level, api_enabled, instance_enabled, sdk_output_enabled)
- Per-instance log: GET/PUT /v1/core/instance/{id}/log/config, logs in logs/instance/<id>/
- apply_logging_config, InstanceLoggingConfig, LogManager instance dirs
- config.json.example: system.logging; docs/LOGGING.md
- tests/manual: LOG_CONFIG_MANUAL_TEST.md, LOG_CONFIG_API_GUIDE.md; README updated

Made-with: Cursor
…verification

- LogManager: add getBaseDir() for actual runtime log directory
- GET/PUT /v1/core/log/config: add current_log_dir (actual path in use), keep log_dir (configured); _description for both
- Docs: LOG_CONFIG_API_GUIDE.md, LOG_CONFIG_MANUAL_TEST.md mention current_log_dir and how to verify log location

Made-with: Cursor
…-status

- Add system.monitoring.max_cpu_percent, max_ram_percent (0=disabled);
  reject new instance creation with 503 when system CPU or RAM >= limit
- Add GET /v1/core/system/resource-status: limits (instance, cpu%, ram%,
  thread_num, min_threads, max_threads), current usage, over_limits
- Add SystemMetrics (getSystemCpuUsagePercent, getSystemRamUsagePercent)
  and use in create/quick instance handlers for limit check
- Expose thread limits in resource-status; SystemInfoHandler.setInstanceManager
- Docs: SERVER_SETTINGS_AND_MONITORING_API.md, API_document.md,
  OpenAPI core_system_resource_status.yaml
- Manual test: SERVER_SETTINGS_MONITORING_MANUAL_TEST.md with config,
  resource-status, max thread steps; README updated

Made-with: Cursor
- Add manual test scenarios for: Health/Version/License, Instance FPS, Model,
  Log list, Node, Solution, SecuRT Area/Lines/Instance, Core Instance API
- Add GROUPS_MANUAL_TEST, VIDEO_MANUAL_TEST, FONT_MANUAL_TEST, CORE_AI_MANUAL_TEST
- All docs use concrete URLs (http://localhost:8080/...) without shared variables
- Update README with full API index and mapping to manual test files

Made-with: Cursor
…sdk, config.json fallback, fix .PHONY

Made-with: Cursor
…_EXECUTION_MODE=subprocess

Made-with: Cursor
…vxtxeu_Cap-nhat-logic-chay-runtime-multiple-process-cho-phien-ban-tiep-theo_Sang-Pham_2
…ate exit

- jams/lines/securt_line/stops handlers: align subprocess/worker flow
- frame_processor, instance_storage, subprocess_instance_manager updates
- worker_supervisor, worker_handler_handlers: retry/stop logic
- main: EDGE_AI_SIGABRT_IMMEDIATE_EXIT=1 to exit on heap corruption (dev)
- docs: ARCHITECTURE, DEVELOPMENT troubleshooting, ENVIRONMENT_VARIABLES

Made-with: Cursor
…ne_demo'

- en/vi paths core_instance_instanceid.yaml: instanceId example
- Regenerated en/vi openapi.yaml via merge_openapi

Made-with: Cursor
…untime-multiple-process-cho-phien-ban-tiep-theo_Sang-Pham_2

Cu 86evxtxeu cap nhat logic chay runtime multiple process cho phien ban tiep theo sang pham 2
@phongpham663
Copy link
Contributor

@dev-pnsang dev-pnsang requested a review from pnsang-goads March 12, 2026 12:21
Copy link
Collaborator

@pnsang-goads pnsang-goads left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

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.

3 participants