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
309 changes: 289 additions & 20 deletions artifacts/compiled/traj-example-grafana-login-nav.bundle.json
Original file line number Diff line number Diff line change
@@ -1,36 +1,41 @@
{
"schema_version": "1.0.0",
"bundle_kind": "compiled_trajectory",
"source_trajectory_id": "traj-example-grafana-login-nav",
"site_key": "grafana-oss@example",
"task_key": "open-dashboards-list",
"source_trajectory_id": "traj-gate-fixture-login-dashboards",
"site_key": "grafana-oss@fixture",
"task_key": "login-open-dashboards-list",
"compiled_at": "2026-07-25T00:00:00.000Z",
"compiler": {
"version": "0.1.0-b3",
"notes": "One CacheRow per step; locator_fallback_chain in B2 preference order; assertions synthesized from post_state (+ hints). pool_eligible fail-closed.",
"input_path": "contracts/examples/trajectory.example.json"
"input_path": "experiments/gate-v1/trajectories/grafana-fixture-login-dashboards.json"
},
"rows": [
{
"schema_version": "1.0.0",
"row_id": "cache-grafana-oss@example-open-dashboards-list-0",
"site_key": "grafana-oss@example",
"task_key": "open-dashboards-list",
"row_id": "cache-grafana-oss@fixture-login-open-dashboards-list-0",
"site_key": "grafana-oss@fixture",
"task_key": "login-open-dashboards-list",
"step_index": 0,
"program": {
"program_id": "prog-traj-gate-fixture-login-dashboards",
"steps_total": 6,
"compiled_at": "2026-07-25T00:00:00.000Z"
},
"compiled_action": {
"type": "navigate",
"locator_fallback_chain": [],
"param_refs": [
"host",
"port"
],
"url_template": "http://{host}:{port}/login"
"url_template": "http://{host}:{port}/grafana-gate-login.html"
},
"assertion": {
"schema_version": "1.0.0",
"assertion_id": "assert-open-dashboards-list-step-0",
"assertion_id": "assert-login-open-dashboards-list-step-0",
"type": "element-visible",
"strength": "strong",
"strength": "weak",
"target": {
"locator": {
"strategy": "role_name",
Expand All @@ -42,7 +47,7 @@
},
"timeout_ms": 5000,
"failure_classification": "assertion_failed",
"notes": "Presence of the login/control surface after navigate is strong evidence we reached the intended page (chrome locator, not tenant content)."
"notes": "New landmark(s) in post_state are coarse structural signals — consistent with success but not unambiguous proof. Labelled weak."
},
"confidence": 0,
"success_count": 0,
Expand All @@ -57,23 +62,28 @@
},
{
"schema_version": "1.0.0",
"row_id": "cache-grafana-oss@example-open-dashboards-list-1",
"site_key": "grafana-oss@example",
"task_key": "open-dashboards-list",
"row_id": "cache-grafana-oss@fixture-login-open-dashboards-list-1",
"site_key": "grafana-oss@fixture",
"task_key": "login-open-dashboards-list",
"step_index": 1,
"program": {
"program_id": "prog-traj-gate-fixture-login-dashboards",
"steps_total": 6,
"compiled_at": "2026-07-25T00:00:00.000Z"
},
"compiled_action": {
"type": "fill",
"locator_fallback_chain": [
{
"strategy": "role_name",
"role": "textbox",
"name": "Username",
"tenant_scoped": false
"tenant_scoped": true
},
{
"strategy": "label",
"label": "Username",
"tenant_scoped": false
"tenant_scoped": true
},
{
"strategy": "testid",
Expand All @@ -82,7 +92,7 @@
},
{
"strategy": "structural",
"structural_path": "main > form > input:nth-of-type(1)",
"structural_path": "body > main > section:nth-of-type(1) > form > input:nth-of-type(1)",
"tenant_scoped": false
}
],
Expand All @@ -92,14 +102,83 @@
},
"assertion": {
"schema_version": "1.0.0",
"assertion_id": "assert-open-dashboards-list-step-1",
"assertion_id": "assert-login-open-dashboards-list-step-1",
"type": "element-visible",
"strength": "weak",
"target": {
"locator": {
"strategy": "testid",
"testid": "username-input"
}
},
"expected": {
"visible": true
},
"timeout_ms": 5000,
"failure_classification": "assertion_failed",
"notes": "Fill/select cannot assert the typed value (values are param slots, never stored). Visibility of the target control is only weakly consistent with a successful fill."
},
"confidence": 0,
"success_count": 0,
"failure_count": 0,
"last_verified_at": "2026-07-25T00:00:00.000Z",
"pool_eligible": true,
"pool_ineligible_reason": null,
"flow_topology": {
"prev_action_type": "navigate",
"next_action_type": "fill",
"landmark": "main"
}
},
{
"schema_version": "1.0.0",
"row_id": "cache-grafana-oss@fixture-login-open-dashboards-list-2",
"site_key": "grafana-oss@fixture",
"task_key": "login-open-dashboards-list",
"step_index": 2,
"program": {
"program_id": "prog-traj-gate-fixture-login-dashboards",
"steps_total": 6,
"compiled_at": "2026-07-25T00:00:00.000Z"
},
"compiled_action": {
"type": "fill",
"locator_fallback_chain": [
{
"strategy": "role_name",
"role": "textbox",
"name": "Username"
"name": "Password",
"tenant_scoped": true
},
{
"strategy": "label",
"label": "Password",
"tenant_scoped": true
},
{
"strategy": "testid",
"testid": "password-input",
"tenant_scoped": false
},
{
"strategy": "structural",
"structural_path": "body > main > section:nth-of-type(1) > form > input:nth-of-type(2)",
"tenant_scoped": false
}
],
"param_refs": [
"password"
]
},
"assertion": {
"schema_version": "1.0.0",
"assertion_id": "assert-login-open-dashboards-list-step-2",
"type": "element-visible",
"strength": "weak",
"target": {
"locator": {
"strategy": "testid",
"testid": "password-input"
}
},
"expected": {
Expand All @@ -116,7 +195,197 @@
"pool_eligible": true,
"pool_ineligible_reason": null,
"flow_topology": {
"prev_action_type": "navigate",
"prev_action_type": "fill",
"next_action_type": "click",
"landmark": "main"
}
},
{
"schema_version": "1.0.0",
"row_id": "cache-grafana-oss@fixture-login-open-dashboards-list-3",
"site_key": "grafana-oss@fixture",
"task_key": "login-open-dashboards-list",
"step_index": 3,
"program": {
"program_id": "prog-traj-gate-fixture-login-dashboards",
"steps_total": 6,
"compiled_at": "2026-07-25T00:00:00.000Z"
},
"compiled_action": {
"type": "click",
"locator_fallback_chain": [
{
"strategy": "role_name",
"role": "button",
"name": "Log in",
"tenant_scoped": true
},
{
"strategy": "testid",
"testid": "login-button",
"tenant_scoped": false
},
{
"strategy": "structural",
"structural_path": "body > main > section:nth-of-type(1) > form > button",
"tenant_scoped": false
}
]
},
"assertion": {
"schema_version": "1.0.0",
"assertion_id": "assert-login-open-dashboards-list-step-3",
"type": "url-matches",
"strength": "strong",
"target": {
"url_template": "http://{host}:{port}/grafana-gate-login.html#home"
},
"expected": {
"template": "http://{host}:{port}/grafana-gate-login.html#home",
"regex_template": "^http://[^/?#]+:[^/?#]+/grafana-gate-login\\.html#home$",
"param_types": {
"host": "string",
"port": "integer"
}
},
"timeout_ms": 5000,
"failure_classification": "assertion_failed",
"notes": "URL template changed (or navigate completed); matching post_state.url_template is strong evidence the step reached the intended surface."
},
"confidence": 0,
"success_count": 0,
"failure_count": 0,
"last_verified_at": "2026-07-25T00:00:00.000Z",
"pool_eligible": false,
"pool_ineligible_reason": "literal_in_assertion",
"flow_topology": {
"prev_action_type": "fill",
"next_action_type": "click",
"landmark": "main"
}
},
{
"schema_version": "1.0.0",
"row_id": "cache-grafana-oss@fixture-login-open-dashboards-list-4",
"site_key": "grafana-oss@fixture",
"task_key": "login-open-dashboards-list",
"step_index": 4,
"program": {
"program_id": "prog-traj-gate-fixture-login-dashboards",
"steps_total": 6,
"compiled_at": "2026-07-25T00:00:00.000Z"
},
"compiled_action": {
"type": "click",
"locator_fallback_chain": [
{
"strategy": "role_name",
"role": "link",
"name": "Dashboards",
"tenant_scoped": true
},
{
"strategy": "testid",
"testid": "nav-dashboards",
"tenant_scoped": false
},
{
"strategy": "structural",
"structural_path": "body > main > section:nth-of-type(2) > header > nav > a:nth-of-type(2)",
"tenant_scoped": false
}
]
},
"assertion": {
"schema_version": "1.0.0",
"assertion_id": "assert-login-open-dashboards-list-step-4",
"type": "url-matches",
"strength": "strong",
"target": {
"url_template": "http://{host}:{port}/grafana-gate-login.html#dashboards"
},
"expected": {
"template": "http://{host}:{port}/grafana-gate-login.html#dashboards",
"regex_template": "^http://[^/?#]+:[^/?#]+/grafana-gate-login\\.html#dashboards$",
"param_types": {
"host": "string",
"port": "integer"
}
},
"timeout_ms": 5000,
"failure_classification": "assertion_failed",
"notes": "URL template changed (or navigate completed); matching post_state.url_template is strong evidence the step reached the intended surface."
},
"confidence": 0,
"success_count": 0,
"failure_count": 0,
"last_verified_at": "2026-07-25T00:00:00.000Z",
"pool_eligible": false,
"pool_ineligible_reason": "literal_in_assertion",
"flow_topology": {
"prev_action_type": "click",
"next_action_type": "click",
"landmark": "main"
}
},
{
"schema_version": "1.0.0",
"row_id": "cache-grafana-oss@fixture-login-open-dashboards-list-5",
"site_key": "grafana-oss@fixture",
"task_key": "login-open-dashboards-list",
"step_index": 5,
"program": {
"program_id": "prog-traj-gate-fixture-login-dashboards",
"steps_total": 6,
"compiled_at": "2026-07-25T00:00:00.000Z"
},
"compiled_action": {
"type": "click",
"locator_fallback_chain": [
{
"strategy": "role_name",
"role": "button",
"name": "Dismiss",
"tenant_scoped": true
},
{
"strategy": "testid",
"testid": "dismiss-notice",
"tenant_scoped": false
},
{
"strategy": "structural",
"structural_path": "body > main > section:nth-of-type(2) > div:nth-of-type(1) > button",
"tenant_scoped": false
}
]
},
"assertion": {
"schema_version": "1.0.0",
"assertion_id": "assert-login-open-dashboards-list-step-5",
"type": "element-visible",
"strength": "strong",
"target": {
"locator": {
"strategy": "testid",
"testid": "dismiss-notice"
}
},
"expected": {
"visible": false
},
"timeout_ms": 5000,
"failure_classification": "assertion_failed",
"notes": "Recorder observed the acted-on control was no longer visible after the action (ADR-0007 post_action_target_visible=false). Asserts only that: the control is gone. Proves the step was not a no-op; proves nothing about downstream state."
},
"confidence": 0,
"success_count": 0,
"failure_count": 0,
"last_verified_at": "2026-07-25T00:00:00.000Z",
"pool_eligible": false,
"pool_ineligible_reason": "literal_in_assertion",
"flow_topology": {
"prev_action_type": "click",
"landmark": "main"
}
}
Expand Down
Loading
Loading