| style: switch to Linux kernel coding style with clang-format
- IndentWidth: 8 with UseTab: Always (tab indentation)
- BreakBeforeBraces: Linux (function brace on new line)
- InsertBraces: true (mandatory braces on control statements)
- ColumnLimit: 100
- Continuation uses tab-aligned indentation
- Trailing comments aligned within structs
| 1 天前 |
| feat: add admin topology/profiler endpoints and route collection API
- Add csilk_router_collect_routes to dump registered routes as JSON
- Add csilk_server_get_router accessor for router lookup from server
- Add /admin/topology endpoint returning route graph
- Add /admin/profile placeholder endpoint for CPU flamegraph data
| 7 小时前 |
| feat: wire up HTTP/2 session init and data processing
- Include h2.h in server.c for HTTP/2 integration
- Call csilk_h2_free_streams in pool_put to clean up on client reuse
- Initialize nghttp2 session after ALPN negotiation completes
- Route decrypted TLS data to h2_process_data for HTTP/2 connections
- Use CSILK_DEFAULT_ARENA_SIZE constant instead of config field
| 6 小时前 |
| style: switch to Linux kernel coding style with clang-format
- IndentWidth: 8 with UseTab: Always (tab indentation)
- BreakBeforeBraces: Linux (function brace on new line)
- InsertBraces: true (mandatory braces on control statements)
- ColumnLimit: 100
- Continuation uses tab-aligned indentation
- Trailing comments aligned within structs
| 1 天前 |
| style: switch to Linux kernel coding style with clang-format
- IndentWidth: 8 with UseTab: Always (tab indentation)
- BreakBeforeBraces: Linux (function brace on new line)
- InsertBraces: true (mandatory braces on control statements)
- ColumnLimit: 100
- Continuation uses tab-aligned indentation
- Trailing comments aligned within structs
| 1 天前 |
| fix: resolve ASan memory leaks across library and tests
- logger.c: free csilk_json_marshal result in build_json_entry
- sqlite.c: free row->values and strdup'd strings in sqlite_free_result
- mq.c: null-terminate payload in _mq_enqueue to prevent buffer overread
- workflow.c: free csilk_ai_config_t (user_data) via node_free callback
- free output_schema in node_free
- close node_work_t timers before free to avoid use-after-free
- reorder mutex destroy after context cleanup in csilk_wf_free
- test_jwt.c: free old arena before overwriting
- test_metrics.c: free response body (test bypasses framework lifecycle)
- test_ws.c: avoid dummy uv_tcp_t that triggers unprocessed uv_write
- test_mq*.c: save router pointer for explicit cleanup after server_free
- test_mq_monitor.c: use sizeof(csilk_ctx_t) instead of hardcoded 1024
- test_workflow_distributed.c: use %.*s for non-null-terminated payload
| 22 小时前 |
| fix: resolve ASan memory leaks across library and tests
- logger.c: free csilk_json_marshal result in build_json_entry
- sqlite.c: free row->values and strdup'd strings in sqlite_free_result
- mq.c: null-terminate payload in _mq_enqueue to prevent buffer overread
- workflow.c: free csilk_ai_config_t (user_data) via node_free callback
- free output_schema in node_free
- close node_work_t timers before free to avoid use-after-free
- reorder mutex destroy after context cleanup in csilk_wf_free
- test_jwt.c: free old arena before overwriting
- test_metrics.c: free response body (test bypasses framework lifecycle)
- test_ws.c: avoid dummy uv_tcp_t that triggers unprocessed uv_write
- test_mq*.c: save router pointer for explicit cleanup after server_free
- test_mq_monitor.c: use sizeof(csilk_ctx_t) instead of hardcoded 1024
- test_workflow_distributed.c: use %.*s for non-null-terminated payload
| 22 小时前 |
| feat: add csilk_file API for serving specific files
Add csilk_file() to serve an arbitrary file path with thread pool
offloading, reusing the existing static file serving work callback.
| 8 小时前 |
| cleanup: remove debug printfs from ws_room and update PLAN.md
| 7 小时前 |
| style: switch to Linux kernel coding style with clang-format
- IndentWidth: 8 with UseTab: Always (tab indentation)
- BreakBeforeBraces: Linux (function brace on new line)
- InsertBraces: true (mandatory braces on control statements)
- ColumnLimit: 100
- Continuation uses tab-aligned indentation
- Trailing comments aligned within structs
| 1 天前 |
| feat: architecture optimization and opaque context refactoring
- Refactored csilk_ctx_t to be an opaque structure in the public API to ensure ABI stability.
- Moved context_internal.h from include/csilk/core/ to src/core/ to hide implementation details.
- Added comprehensive accessor and setter APIs for csilk_ctx_t in csilk.h.
- Refactored all internal middlewares (Logger, Gzip, Auth, CORS, CSRF, etc.) to use public APIs.
- Updated all unit tests and examples to use new opaque API and test helpers from csilk/test/test.h.
- Implemented optimization plan (Track 1):
- Completed csilk_config_free logic and added TLS field support.
- Added boundary protection and tests for URL parameters and context storage.
- Fixed a critical stack-use-after-return bug in connection rejection logic (heap-allocated rejected handles).
- Improved robustness of csilk_next with NULL checks.
- Enhanced OOM resilience and connection limit handling in the server.
- Updated PLAN.md with the new v1.0 evolution roadmap.
- Fixed various race conditions and memory leaks discovered during validation.
| 13 小时前 |