Skip to content

chore: auto-sync develop → main (merge conflict)#96

Open
tomasz-blasz wants to merge 49 commits into
mainfrom
auto-sync/develop-to-main
Open

chore: auto-sync develop → main (merge conflict)#96
tomasz-blasz wants to merge 49 commits into
mainfrom
auto-sync/develop-to-main

Conversation

@tomasz-blasz

Copy link
Copy Markdown
Contributor

Automatic sync of developmain could 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

brendanobra and others added 19 commits June 16, 2026 10:21
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
Copilot AI review requested due to automatic review settings June 23, 2026 14:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 via getResponseHeader().
  • Extended public IGateway (and tests/mocks) to expose response header lookup; added Config.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 thread src/transport.h
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 thread src/transport.cpp
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 thread LICENSE
Comment on lines +206 to +209
MIT License

Copyright (c) YEAR COPYRIGHT HOLDER

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.

4 participants