chore: auto-sync develop → main (merge conflict)#96
Open
tomasz-blasz wants to merge 49 commits into
Open
Conversation
…nto feature/openspec
This reverts commit 6fe772c.
…t into openspec-guidelines
…port into openspec-guidelines
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
- Pin _project_template_ Slidev deps to semver ranges (was 'latest') - Fix scan_code_for_spec_comments() docstring to match actual return type (set of file paths) - Expand header_support_spec.md to full openspec template (add Architecture/Design, External Interfaces, Performance, Security, Versioning & Compatibility, Conformance Testing & Validation, Covered Code, Open Queries, Change History sections) - Regenerate spec_coverage.md (was stale; now shows 6/6 specs complete)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…ext, add OpenSpec attribution - Remove presentations/openspec-with-copliot-experience/openspec-ssd-dark.pdf (binary files not stored per RDLM policy; markdown slides are sufficient) - Append MIT License boilerplate to LICENSE (generic YEAR/COPYRIGHT HOLDER per reviewer request) - Append OpenSpec attribution to NOTICE
feat: Openspec guidelines
Contributor
There was a problem hiding this comment.
Pull request overview
This PR syncs develop into main and brings in a header-support feature for the WebSocket transport (custom request headers + response header retrieval), along with OpenSpec documentation/automation assets and Slidev presentation materials.
Changes:
- Added custom header injection during
Transport::connect()and cached response header retrieval viagetResponseHeader(). - Extended public
IGateway(and tests/mocks) to expose response header lookup; addedConfig.headers. - Added OpenSpec specs/skills/prompts plus Slidev presentation projects and generated coverage/report artifacts.
Reviewed changes
Copilot reviewed 44 out of 46 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| test/unit/transportTest.cpp | Adds an integration test for header injection/response header retrieval. |
| test/unit/helperTest.cpp | Updates MockGateway to satisfy new IGateway::getResponseHeader() API. |
| src/transport.h | Extends Transport::connect() to accept headers; stores response headers + mutex; declares getResponseHeader(). |
| src/transport.cpp | Injects headers into websocketpp handshake; caches response headers on open; implements getResponseHeader(). |
| src/gateway.cpp | Forwards Config.headers into transport connect; exposes getResponseHeader() via IGateway impl. |
| spec_coverage.md | Adds generated OpenSpec coverage report output. |
| README.md | Documents header support usage and API examples. |
| presentations/transport-slides/slides.md | Adds Slidev deck content for transport overview. |
| presentations/transport-slides/package.json | Adds Slidev project configuration for transport slides. |
| presentations/openspec-with-copliot-experience/slides.md | Adds Slidev deck describing OpenSpec + Copilot workflow. |
| presentations/openspec-with-copliot-experience/package.json | Adds Slidev project configuration for OpenSpec deck. |
| package.json | Adds root Node dev dependency (Playwright Chromium). |
| openspec/specs/transport_recommendations_spec.md | Adds OpenSpec recommendations spec. |
| openspec/specs/transport_layer_spec.md | Adds OpenSpec transport layer spec. |
| openspec/specs/json_rpc_handling_spec.md | Adds OpenSpec JSON-RPC handling spec. |
| openspec/specs/header_interfaces_spec.md | Adds OpenSpec header-interfaces spec. |
| openspec/specs/cpp_specifics_spec.md | Adds OpenSpec C++ specifics spec. |
| openspec/config.yaml | Adds OpenSpec project configuration and artifact rules. |
| openspec/changes/archive/2026-03-16-add-header-support/tasks.md | Archives tasks for the header-support change. |
| openspec/changes/archive/2026-03-16-add-header-support/specs/header_support_spec.md | Archives the header-support specification. |
| openspec/changes/archive/2026-03-16-add-header-support/design.md | Archives design notes for header support. |
| openspec/changes/archive/2026-03-16-add-header-support/add_header_support_proposal.md | Archives proposal for header support. |
| NOTICE | Adds third-party notice for OpenSpec material under MIT. |
| LICENSE | Appends MIT license text (currently with placeholder copyright line). |
| include/firebolt/gateway.h | Extends public IGateway API with getResponseHeader(). |
| include/firebolt/config.h.in | Adds Config.headers and <map> include. |
| .gitignore | Ignores pnpm-lock.yaml files. |
| .github/skills/openspec-templater/spec_template.md | Adds standard spec template used by OpenSpec tooling. |
| .github/skills/openspec-templater/SKILL.md | Adds skill definition for templating specs. |
| .github/skills/openspec-propose/SKILL.md | Adds skill definition for proposing OpenSpec changes. |
| .github/skills/openspec-explore/SKILL.md | Adds skill definition for OpenSpec explore mode. |
| .github/skills/openspec-coverage/SKILL.md | Adds skill definition for coverage scoring. |
| .github/skills/openspec-coverage/openspec_coverage.py | Adds Python implementation for generating spec coverage report. |
| .github/skills/openspec-archive-change/SKILL.md | Adds skill definition for archiving OpenSpec changes. |
| .github/skills/openspec-apply-change/SKILL.md | Adds skill definition for applying OpenSpec changes. |
| .github/skills/init-slidedev-project/SKILL.md | Adds skill definition for initializing Slidev projects. |
| .github/skills/export-presentation/SKILL.md | Adds skill definition for exporting Slidev presentations. |
| .github/skills/add-slide/SKILL.md | Adds skill definition for inserting slides. |
| .github/skills/add-diagram/SKILL.md | Adds skill definition for inserting Mermaid diagrams. |
| .github/release/package-lock.json | Updates release lockfile metadata (package name field). |
| .github/prompts/opsx-propose.prompt.md | Adds prompt for proposing OpenSpec changes. |
| .github/prompts/opsx-explore.prompt.md | Adds prompt for OpenSpec explore mode. |
| .github/prompts/opsx-archive.prompt.md | Adds prompt for archiving OpenSpec changes. |
| .github/prompts/opsx-apply.prompt.md | Adds prompt for applying OpenSpec changes. |
| project_template/slides.md | Adds Slidev project template slides. |
| project_template/package.json | Adds Slidev project template package config. |
Files not reviewed (1)
- .github/release/package-lock.json: Generated file
Comment on lines
50
to
+53
| Firebolt::Error connect(std::string url, MessageCallback onMessage, ConnectionCallback onConnectionChange, | ||
| std::optional<unsigned> transportLoggingInclude = std::nullopt, | ||
| std::optional<unsigned> transportLoggingExclude = std::nullopt); | ||
| std::optional<unsigned> transportLoggingExclude = std::nullopt, | ||
| const std::map<std::string, std::string>& headers = {}); |
Comment on lines
+381
to
+390
| std::optional<std::string> Transport::getResponseHeader(const std::string& headerName) | ||
| { | ||
| std::lock_guard<std::mutex> lock(responseHeadersMutex_); | ||
| auto it = responseHeaders_.find(headerName); | ||
| if (it != responseHeaders_.end()) | ||
| { | ||
| return it->second; | ||
| } | ||
| return std::nullopt; | ||
| } |
Comment on lines
+303
to
+306
| auto customHeader = transport.getResponseHeader("X-Test-Header"); | ||
| // Custom header may not be echoed by server, but should not crash | ||
| EXPECT_TRUE(customHeader == std::nullopt || customHeader.has_value()); | ||
|
|
Comment on lines
+136
to
+140
| --- | ||
|
|
||
| # Connection Protocol | ||
|
|
||
| The Firebolt Transport Layer uses WebSocket as its underlying transport, with JSON-RPC layered on top for structured messaging and event notifications. |
| @@ -0,0 +1,18 @@ | |||
| { | |||
| "name": "openspec-with-copliot-experience", | |||
Comment on lines
+206
to
+209
| MIT License | ||
|
|
||
| Copyright (c) YEAR COPYRIGHT HOLDER | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automatic sync of
develop→maincould not complete via direct workflow push.Action required: resolve the conflicts in this PR, then merge it.
Detected reason: merge conflict
Triggered by: c959eb3 on develop