topicforge 0.5.1__tar.gz → 0.5.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {topicforge-0.5.1 → topicforge-0.5.2}/CHANGELOG.md +29 -1
- {topicforge-0.5.1 → topicforge-0.5.2}/PKG-INFO +3 -1
- {topicforge-0.5.1 → topicforge-0.5.2}/README.md +2 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/pyproject.toml +1 -1
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/__init__.py +1 -1
- {topicforge-0.5.1 → topicforge-0.5.2}/.gitignore +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/LICENSE +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/docs/DDS_QUICKSTART.md +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/docs/MIGRATION_v0.1_to_v0.2.md +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/docs/MIGRATION_v0.2_to_v0.3.md +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/docs/MIGRATION_v0.3_to_v0.4.md +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/docs/TESTING.md +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/docs/TROUBLESHOOTING.md +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/docs/TUTORIEL.md +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/docs/dds-interop-matrix.md +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/docs/pro.md +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/docs/product-plan.md +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/examples/README.md +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/scripts/integration/README.md +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/__main__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/base.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/cdr_decoder.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/dds_helpers.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/dds_introspection.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/lifecycle.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/metrics_buffer.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/qos_analyzer.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/qos_endpoints.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/qos_normalize.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/xtypes.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/composite.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_cyclone/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_cyclone/adapter.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_dust/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_dust/adapter.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_fast/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_fast/adapter.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_opendds/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_opendds/adapter.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/ros2_live/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/ros2_live/adapter.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/ros2_mock/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/ros2_mock/adapter.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/ros2_mock/fixtures.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/config/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/config/settings.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/constants.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/models/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/models/schemas.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/server/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/server/app.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/services/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/services/bag_service.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/services/factory.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/services/health.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/services/inspector.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/telemetry/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/telemetry/client.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/tools/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/tools/handlers.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/conftest.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/fixtures/csv_echo_imu.txt +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/fixtures/csv_echo_pose_multi.txt +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/__init__.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/conftest.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/lifecycle_tracking.json +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/multi_vendor_basic.json +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/qos_mismatch_detection.json +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/topic_metrics_frequency.json +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/topic_metrics_sequence_gaps.json +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/xtypes_decode.json +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/test_real_bus.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/test_scenarios_schema.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_analyze_bag_multi_format.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_bag_service.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_cdr_decoder.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_composite_adapter.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_config.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_cyclone_adapter.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_dds_cross_vendor.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_dds_helpers.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_dds_introspection.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_dds_qos_normalization.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_dds_schemas.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_dust_adapter.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_factory.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_fast_adapter.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_health.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_inspector.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_lifecycle_buffer.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_live_adapter_parse.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_live_adapter_subprocess.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_metrics_buffer.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_mock_adapter.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_opendds_adapter.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_peek_bag_samples.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_pro_hook.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_qos_analyzer.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_qos_endpoints.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_telemetry.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_tools_integration.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_topic_metrics.py +0 -0
- {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_xtypes.py +0 -0
|
@@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning 2.0.0](https://semver.org/spec/
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.5.2] - 2026-08-22
|
|
11
|
+
|
|
12
|
+
Documentation and metadata only. No code, no schema, and no dependency
|
|
13
|
+
changes — `pip install topicforge` behaves identically to 0.5.1.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **`server.json` — MCP Registry metadata.** Declares the server as
|
|
18
|
+
`io.github.yaniswav/topicforge` (the `io.github.<user>/` prefix is
|
|
19
|
+
required by the registry's GitHub-namespace authentication) and points
|
|
20
|
+
at the PyPI package, with the four user-facing environment variables
|
|
21
|
+
described so MCP clients can render configuration hints. Validated
|
|
22
|
+
against the registry's published JSON schema.
|
|
23
|
+
- **PyPI ownership marker in `README.md`.** The registry verifies
|
|
24
|
+
ownership of a PyPI package by looking for an `mcp-name: <server name>`
|
|
25
|
+
string in the package description, which is generated from the README
|
|
26
|
+
at build time. The marker is an HTML comment, so it does not render.
|
|
27
|
+
|
|
28
|
+
### Why this release exists
|
|
29
|
+
|
|
30
|
+
The marker only reaches PyPI when a distribution is built and published.
|
|
31
|
+
0.5.1 shipped before the marker was added, so its published description
|
|
32
|
+
does not carry it and registry validation would reject the submission.
|
|
33
|
+
Cutting this version is the mechanical prerequisite for listing
|
|
34
|
+
TopicForge in the official MCP Registry — there is no functional change
|
|
35
|
+
to install.
|
|
36
|
+
|
|
10
37
|
## [0.5.1] - 2026-08-22
|
|
11
38
|
|
|
12
39
|
### Fixed (hotfix — MCP SDK 2.0 incompatibility)
|
|
@@ -878,7 +905,8 @@ Initial MVP release of TopicForge — ROS Topic Inspector & Bag Analyzer MCP ser
|
|
|
878
905
|
- The write path (publishing, commanding robots) is intentionally out of scope for the MVP.
|
|
879
906
|
- `analyze_bag` in live mode parses `ros2 bag info` text output; deeper anomaly detection remains mock-only for now.
|
|
880
907
|
|
|
881
|
-
[Unreleased]: https://github.com/yaniswav/TopicForge/compare/v0.5.
|
|
908
|
+
[Unreleased]: https://github.com/yaniswav/TopicForge/compare/v0.5.2...HEAD
|
|
909
|
+
[0.5.2]: https://github.com/yaniswav/TopicForge/compare/v0.5.1...v0.5.2
|
|
882
910
|
[0.5.1]: https://github.com/yaniswav/TopicForge/compare/v0.5.0...v0.5.1
|
|
883
911
|
[0.5.0]: https://github.com/yaniswav/TopicForge/compare/v0.4.0...v0.5.0
|
|
884
912
|
[0.4.0]: https://github.com/yaniswav/TopicForge/compare/v0.3.0...v0.4.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: topicforge
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
4
4
|
Summary: ROS Topic Inspector & Bag Analyzer MCP server for AI agents
|
|
5
5
|
Project-URL: Homepage, https://github.com/yaniswav/TopicForge
|
|
6
6
|
Project-URL: Repository, https://github.com/yaniswav/TopicForge
|
|
@@ -71,6 +71,8 @@ Description-Content-Type: text/markdown
|
|
|
71
71
|
|
|
72
72
|
# TopicForge
|
|
73
73
|
|
|
74
|
+
<!-- mcp-name: io.github.yaniswav/topicforge -->
|
|
75
|
+
|
|
74
76
|
[](https://pypi.org/project/topicforge/)
|
|
75
77
|
[](https://github.com/yaniswav/TopicForge/actions/workflows/ci.yml)
|
|
76
78
|
[](https://pypi.org/project/topicforge/)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# TopicForge
|
|
2
2
|
|
|
3
|
+
<!-- mcp-name: io.github.yaniswav/topicforge -->
|
|
4
|
+
|
|
3
5
|
[](https://pypi.org/project/topicforge/)
|
|
4
6
|
[](https://github.com/yaniswav/TopicForge/actions/workflows/ci.yml)
|
|
5
7
|
[](https://pypi.org/project/topicforge/)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/qos_mismatch_detection.json
RENAMED
|
File without changes
|
{topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/topic_metrics_frequency.json
RENAMED
|
File without changes
|
{topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/topic_metrics_sequence_gaps.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|