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.
Files changed (106) hide show
  1. {topicforge-0.5.1 → topicforge-0.5.2}/CHANGELOG.md +29 -1
  2. {topicforge-0.5.1 → topicforge-0.5.2}/PKG-INFO +3 -1
  3. {topicforge-0.5.1 → topicforge-0.5.2}/README.md +2 -0
  4. {topicforge-0.5.1 → topicforge-0.5.2}/pyproject.toml +1 -1
  5. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/__init__.py +1 -1
  6. {topicforge-0.5.1 → topicforge-0.5.2}/.gitignore +0 -0
  7. {topicforge-0.5.1 → topicforge-0.5.2}/LICENSE +0 -0
  8. {topicforge-0.5.1 → topicforge-0.5.2}/docs/DDS_QUICKSTART.md +0 -0
  9. {topicforge-0.5.1 → topicforge-0.5.2}/docs/MIGRATION_v0.1_to_v0.2.md +0 -0
  10. {topicforge-0.5.1 → topicforge-0.5.2}/docs/MIGRATION_v0.2_to_v0.3.md +0 -0
  11. {topicforge-0.5.1 → topicforge-0.5.2}/docs/MIGRATION_v0.3_to_v0.4.md +0 -0
  12. {topicforge-0.5.1 → topicforge-0.5.2}/docs/TESTING.md +0 -0
  13. {topicforge-0.5.1 → topicforge-0.5.2}/docs/TROUBLESHOOTING.md +0 -0
  14. {topicforge-0.5.1 → topicforge-0.5.2}/docs/TUTORIEL.md +0 -0
  15. {topicforge-0.5.1 → topicforge-0.5.2}/docs/dds-interop-matrix.md +0 -0
  16. {topicforge-0.5.1 → topicforge-0.5.2}/docs/pro.md +0 -0
  17. {topicforge-0.5.1 → topicforge-0.5.2}/docs/product-plan.md +0 -0
  18. {topicforge-0.5.1 → topicforge-0.5.2}/examples/README.md +0 -0
  19. {topicforge-0.5.1 → topicforge-0.5.2}/scripts/integration/README.md +0 -0
  20. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/__main__.py +0 -0
  21. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/__init__.py +0 -0
  22. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/base.py +0 -0
  23. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/__init__.py +0 -0
  24. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/cdr_decoder.py +0 -0
  25. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/dds_helpers.py +0 -0
  26. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/dds_introspection.py +0 -0
  27. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/lifecycle.py +0 -0
  28. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/metrics_buffer.py +0 -0
  29. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/qos_analyzer.py +0 -0
  30. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/qos_endpoints.py +0 -0
  31. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/qos_normalize.py +0 -0
  32. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/common/xtypes.py +0 -0
  33. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/composite.py +0 -0
  34. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_cyclone/__init__.py +0 -0
  35. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_cyclone/adapter.py +0 -0
  36. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_dust/__init__.py +0 -0
  37. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_dust/adapter.py +0 -0
  38. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_fast/__init__.py +0 -0
  39. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_fast/adapter.py +0 -0
  40. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_opendds/__init__.py +0 -0
  41. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/dds_opendds/adapter.py +0 -0
  42. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/ros2_live/__init__.py +0 -0
  43. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/ros2_live/adapter.py +0 -0
  44. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/ros2_mock/__init__.py +0 -0
  45. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/ros2_mock/adapter.py +0 -0
  46. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/adapters/ros2_mock/fixtures.py +0 -0
  47. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/config/__init__.py +0 -0
  48. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/config/settings.py +0 -0
  49. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/constants.py +0 -0
  50. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/models/__init__.py +0 -0
  51. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/models/schemas.py +0 -0
  52. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/server/__init__.py +0 -0
  53. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/server/app.py +0 -0
  54. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/services/__init__.py +0 -0
  55. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/services/bag_service.py +0 -0
  56. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/services/factory.py +0 -0
  57. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/services/health.py +0 -0
  58. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/services/inspector.py +0 -0
  59. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/telemetry/__init__.py +0 -0
  60. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/telemetry/client.py +0 -0
  61. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/tools/__init__.py +0 -0
  62. {topicforge-0.5.1 → topicforge-0.5.2}/src/topicforge/tools/handlers.py +0 -0
  63. {topicforge-0.5.1 → topicforge-0.5.2}/tests/__init__.py +0 -0
  64. {topicforge-0.5.1 → topicforge-0.5.2}/tests/conftest.py +0 -0
  65. {topicforge-0.5.1 → topicforge-0.5.2}/tests/fixtures/csv_echo_imu.txt +0 -0
  66. {topicforge-0.5.1 → topicforge-0.5.2}/tests/fixtures/csv_echo_pose_multi.txt +0 -0
  67. {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/__init__.py +0 -0
  68. {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/conftest.py +0 -0
  69. {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/lifecycle_tracking.json +0 -0
  70. {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/multi_vendor_basic.json +0 -0
  71. {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/qos_mismatch_detection.json +0 -0
  72. {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/topic_metrics_frequency.json +0 -0
  73. {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/topic_metrics_sequence_gaps.json +0 -0
  74. {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/scenarios/xtypes_decode.json +0 -0
  75. {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/test_real_bus.py +0 -0
  76. {topicforge-0.5.1 → topicforge-0.5.2}/tests/integration/test_scenarios_schema.py +0 -0
  77. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_analyze_bag_multi_format.py +0 -0
  78. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_bag_service.py +0 -0
  79. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_cdr_decoder.py +0 -0
  80. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_composite_adapter.py +0 -0
  81. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_config.py +0 -0
  82. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_cyclone_adapter.py +0 -0
  83. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_dds_cross_vendor.py +0 -0
  84. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_dds_helpers.py +0 -0
  85. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_dds_introspection.py +0 -0
  86. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_dds_qos_normalization.py +0 -0
  87. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_dds_schemas.py +0 -0
  88. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_dust_adapter.py +0 -0
  89. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_factory.py +0 -0
  90. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_fast_adapter.py +0 -0
  91. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_health.py +0 -0
  92. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_inspector.py +0 -0
  93. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_lifecycle_buffer.py +0 -0
  94. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_live_adapter_parse.py +0 -0
  95. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_live_adapter_subprocess.py +0 -0
  96. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_metrics_buffer.py +0 -0
  97. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_mock_adapter.py +0 -0
  98. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_opendds_adapter.py +0 -0
  99. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_peek_bag_samples.py +0 -0
  100. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_pro_hook.py +0 -0
  101. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_qos_analyzer.py +0 -0
  102. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_qos_endpoints.py +0 -0
  103. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_telemetry.py +0 -0
  104. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_tools_integration.py +0 -0
  105. {topicforge-0.5.1 → topicforge-0.5.2}/tests/test_topic_metrics.py +0 -0
  106. {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.1...HEAD
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.1
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
  [![PyPI version](https://img.shields.io/pypi/v/topicforge.svg)](https://pypi.org/project/topicforge/)
75
77
  [![CI](https://github.com/yaniswav/TopicForge/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/yaniswav/TopicForge/actions/workflows/ci.yml)
76
78
  [![Python versions](https://img.shields.io/pypi/pyversions/topicforge.svg)](https://pypi.org/project/topicforge/)
@@ -1,5 +1,7 @@
1
1
  # TopicForge
2
2
 
3
+ <!-- mcp-name: io.github.yaniswav/topicforge -->
4
+
3
5
  [![PyPI version](https://img.shields.io/pypi/v/topicforge.svg)](https://pypi.org/project/topicforge/)
4
6
  [![CI](https://github.com/yaniswav/TopicForge/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/yaniswav/TopicForge/actions/workflows/ci.yml)
5
7
  [![Python versions](https://img.shields.io/pypi/pyversions/topicforge.svg)](https://pypi.org/project/topicforge/)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "topicforge"
7
- version = "0.5.1"
7
+ version = "0.5.2"
8
8
  description = "ROS Topic Inspector & Bag Analyzer MCP server for AI agents"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,5 +1,5 @@
1
1
  """TopicForge — ROS Topic Inspector & Bag Analyzer MCP server."""
2
2
 
3
- __version__ = "0.5.1"
3
+ __version__ = "0.5.2"
4
4
 
5
5
  __all__ = ["__version__"]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes