Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,6 @@
rivet-cli/assets/wasm/*.wasm
rivet-cli/assets/wasm/js/
vscode-rivet/node_modules/
vscode-rivet/bin/rivet
vscode-rivet/out/
vscode-rivet/*.vsix
6 changes: 3 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ members = [
]

[workspace.package]
version = "0.2.0"
version = "0.3.0"
authors = ["PulseEngine <https://github.com/pulseengine>"]
edition = "2024"
license = "Apache-2.0"
Expand Down
61 changes: 61 additions & 0 deletions artifacts/decisions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -879,3 +879,64 @@ artifacts:
missing optional WASM assets.
alternatives: Serve from filesystem at runtime. Rejected because it
requires deploying assets separately from the binary.

- id: DD-040
type: design-decision
title: Status-driven traceability enforcement
status: draft
description: >
Traceability rule enforcement is gated on artifact status. Draft
artifacts get info-level diagnostics for missing links; active and
approved artifacts get errors. The schema defines which statuses
enforce traceability via "enforce-links-for-status" (default:
["active", "approved"]). This separates "not yet done" from
"structurally broken" without requiring a separate completeness
field or workflow state machine.
tags: [validation, workflow, architecture]
links:
- type: satisfies
target: REQ-039
- type: implements
target: FEAT-070
fields:
rationale: >
Projects always have work-in-progress artifacts where links are not
yet established. Treating these as errors forces teams to either
suppress warnings globally (losing signal) or add placeholder links
(creating noise). Using the existing status field avoids new concepts
while giving clear semantics: draft = aspirational tracing,
active/approved = enforced tracing.
alternatives: >
(1) Separate completeness field (rejected: adds a new dimension to
every artifact for a single validation behavior). (2) Baseline-scoped
enforcement (rejected: baselines are release markers, not workflow
state). (3) Per-rule severity override (rejected: too granular,
rule-level config does not match the artifact-level intent).

- id: DD-041
type: design-decision
title: Shared render module for serve, LSP, and export
status: active
description: >
HTML rendering extracted from serve/views.rs into a render/ module
with pure functions taking RenderContext and returning HTML strings.
Serve wraps in page/embed/print layouts. LSP returns via custom
rivet/render request for VS Code WebViews. Future HTML export calls
the same functions for static site generation.
tags: [architecture, rendering, vscode]
links:
- type: implements
target: FEAT-066
- type: satisfies
target: REQ-007
fields:
rationale: >
Three consumers need the same rendered output: serve (browser),
VS Code (WebView via LSP), and export (static HTML). Duplicating
rendering logic is unmaintainable. Pure functions with a shared
RenderContext allow each consumer to construct the context from
its own data source while sharing all HTML generation.
alternatives: >
(1) VS Code embeds serve via iframe (rejected: fails over SSH Remote).
(2) Separate TypeScript renderer (rejected: duplicates rendering).
(3) Template engine (rejected: string building is sufficient).
89 changes: 89 additions & 0 deletions artifacts/features.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1142,3 +1142,92 @@ artifacts:
fields:
phase: phase-2
baseline: v0.1.0

- id: FEAT-066
type: feature
title: VS Code LSP-based WebView rendering
status: active
description: >
VS Code extension renders dashboard views via custom LSP requests
(rivet/render, rivet/treeData, rivet/css) instead of embedding a web
server. Shell document pattern loads assets once, content updates via
postMessage. Works in local and SSH Remote environments without port
forwarding. Tree view with expandable artifact files and documents.
tags: [vscode, lsp, rendering, phase-3]
links:
- type: satisfies
target: REQ-007
fields:
phase: phase-3
baseline: v0.3.0

- id: FEAT-067
type: feature
title: SysML v2 parser (spar-sysml2 crate)
status: draft
description: >
Rowan-based lossless parser for SysML v2 textual notation. Same
architecture as spar-parser (AADL): grammar definition, lexer,
parser with error recovery, rowan CST. Covers KerML kernel library
and SysML v2 language constructs including requirements, constraints,
use cases, and allocations.
tags: [sysml, parser, future]
links:
- type: satisfies
target: REQ-037
fields:
phase: future
baseline: v0.3.0

- id: FEAT-068
type: feature
title: SysML v2 to AADL model lowering
status: draft
description: >
Transform SysML v2 system architecture models into AADL execution
platform models. Maps SysML v2 parts/ports to AADL components/features,
SysML v2 allocations to AADL bindings, and SysML v2 timing constraints
to AADL properties. Based on SEI's SysML v2 + AADL mapping rules.
tags: [sysml, aadl, lowering, future]
links:
- type: satisfies
target: REQ-038
fields:
phase: future
baseline: v0.3.0

- id: FEAT-069
type: feature
title: SysML v2 requirement adapter for rivet
status: draft
description: >
Adapter that extracts requirement elements from parsed SysML v2 files
and generates rivet artifact YAML. Maps SysML v2 satisfy/verify
relationships to rivet link types. Enables tracing through
SysML v2 (system) → AADL (deployment) → code (implementation).
tags: [sysml, adapter, future]
links:
- type: satisfies
target: REQ-037
fields:
phase: future
baseline: v0.3.0

- id: FEAT-070
type: feature
title: Draft-aware validation severity
status: draft
description: >
Validation engine downgrades traceability rule violations from error
to info for artifacts with status "draft". Missing required links on
draft artifacts produce informational diagnostics ("link not yet
established") rather than errors. Active/approved artifacts enforce
full traceability. Configurable via schema field
"enforce-links-for-status" with default ["active", "approved"].
tags: [validation, workflow, phase-3]
links:
- type: satisfies
target: REQ-039
fields:
phase: phase-3
baseline: v0.3.0
49 changes: 49 additions & 0 deletions artifacts/requirements.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -613,3 +613,52 @@ artifacts:
category: functional
priority: should
baseline: v0.2.0-dev

- id: REQ-037
type: requirement
title: SysML v2 artifact import
status: draft
description: >
Import requirement and constraint elements from SysML v2 textual notation
files (.sysml) as rivet artifacts. Parse SysML v2 using a rowan-based
lossless parser (same pattern as spar's AADL parser). Extract requirement
elements with their attributes, rationale, and satisfy/verify relationships,
mapping them to rivet artifact YAML.
tags: [sysml, adapter, future]
fields:
priority: should
category: functional
baseline: v0.3.0

- id: REQ-038
type: requirement
title: SysML v2 to AADL model lowering
status: draft
description: >
Lower SysML v2 system models to AADL execution platform models where
timing, scheduling, and resource binding semantics exist. Implements
the mapping rules specified by SEI's "Extending SysML v2 with AADL
Concepts" research. Enables multi-level architecture analysis:
SysML v2 (system-level) to AADL (deployment-level) to implementation.
tags: [sysml, aadl, architecture, future]
fields:
priority: could
category: functional
baseline: v0.3.0

- id: REQ-039
type: requirement
title: Draft-aware validation severity
status: draft
description: >
Validation diagnostics for traceability rules (missing required links,
incomplete coverage) must respect artifact maturity. Artifacts with
status "draft" produce info-level diagnostics for unfulfilled links
instead of errors. Only "active" or "approved" artifacts are held to
full traceability enforcement. This distinguishes "not yet done" from
"broken" in projects with work-in-progress artifacts.
tags: [validation, workflow, core]
fields:
priority: must
category: functional
baseline: v0.3.0
5 changes: 5 additions & 0 deletions deny.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
[advisories]
# Vulnerabilities are denied by default in cargo-deny >=0.16.
# Yanked crates produce warnings by default.
ignore = [
# `instant` is unmaintained (RUSTSEC-2024-0384) but pulled in transitively
# by notify 7.0.0 → notify-types. No fix available upstream yet.
"RUSTSEC-2024-0384",
]

[licenses]
# Confidence threshold for license detection
Expand Down
Loading
Loading