This is an automated email from the ASF dual-hosted git repository.

wankai123 pushed a change to branch feat/first-party-trace-sampler-plugins
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git


    from 969558760 feat(trace-pipeline): add first-party sw/zipkin 
trace-retention sampler plugins
     add b1fc90553 Add TTL to top-k query and add health check for pub (#1221)
     add 8d88629f5 Allow `*` in the BydbQL identifier (#1223)
     add d9e1c18d2 test(stream): add program-generated query test cases (#1222)
     add b81af690e canopy: M4 — Query console + result views, E2E framework 
redesign, WHERE coverage (#1224)
     add f20062c4e fix(deps): close all 22 dependabot alerts, add canopy 
vendor-update target, upgrade React 18 → 19 (#1232)
     add ea04f6728 canopy: Property — collection CRUD + document query console 
(#1233)
     add 6f3b4564a Merge branch 'main' into 
feat/first-party-trace-sampler-plugins

No new revisions were added by this update.

Summary of changes:
 .gitignore                                         |   14 +
 .licenserc.yaml                                    |   26 +-
 CHANGES.md                                         |    5 +
 Makefile                                           |   27 +-
 banyand/liaison/grpc/bydbql.go                     |   33 +-
 banyand/liaison/grpc/bydbql_reparse_test.go        |    2 +-
 banyand/liaison/grpc/bydbql_test.go                |   21 +-
 banyand/liaison/grpc/server.go                     |    8 +-
 banyand/liaison/grpc/topk.go                       |   64 +-
 banyand/liaison/grpc/topk_test.go                  |   95 +-
 banyand/measure/measure_suite_test.go              |    2 +-
 banyand/measure/svc_standalone.go                  |    2 +
 banyand/queue/pub/health_check_wiring_test.go      |   75 +
 banyand/queue/pub/pub.go                           |   62 +-
 banyand/stream/metadata_test.go                    |    8 +-
 banyand/stream/snapshot_tstable_test.go            |   30 +-
 banyand/stream/stream_suite_test.go                |    2 +-
 banyand/stream/svc_standalone.go                   |    2 +
 canopy/.env.example                                |   17 +
 canopy/.gitignore                                  |   12 +-
 canopy/.prettierignore                             |   17 +
 canopy/Makefile                                    |   14 +-
 canopy/docs/property-design.md                     |  262 ++
 canopy/e2e/TESTING.md                              |  300 ++
 canopy/e2e/auth/auth.setup.ts                      |   50 +
 canopy/e2e/fixtures/skywalking/Tracing.proto       |  288 ++
 canopy/e2e/framework/fixtures.ts                   |   80 +
 .../e2e/framework/pages/BasePage.ts                |   40 +-
 canopy/e2e/framework/pages/IndexRulePage.ts        |  161 +
 canopy/e2e/framework/pages/LifecyclePage.ts        |   96 +
 canopy/e2e/framework/pages/LoginPage.ts            |  103 +
 canopy/e2e/framework/pages/PropertyPage.ts         |  164 +
 canopy/e2e/framework/pages/QueryConsolePage.ts     |  139 +
 canopy/e2e/framework/pages/SchemaPage.ts           |  229 ++
 canopy/e2e/framework/pages/ShellPage.ts            |  103 +
 .../dashboard.js => canopy/e2e/framework/paths.ts  |   12 +-
 canopy/e2e/framework/seed/factory.ts               |  281 ++
 canopy/e2e/handoff-server.cjs                      |   69 -
 canopy/e2e/m0-boot.spec.ts                         |   37 -
 canopy/e2e/m1-bff.spec.ts                          |   59 -
 canopy/e2e/m2-login.spec.ts                        |   84 -
 canopy/e2e/m2-shell.spec.ts                        |   96 -
 canopy/e2e/m3-crud.spec.ts                         | 1195 ------
 canopy/e2e/m3-handoff.spec.ts                      |   71 -
 canopy/e2e/m3-indexrule-ui.spec.ts                 |  454 ---
 canopy/e2e/m3-indexrule.spec.ts                    |  288 --
 canopy/e2e/m3-lifecycle.spec.ts                    |  444 ---
 canopy/e2e/m3-metadata.spec.ts                     |  127 -
 canopy/e2e/playwright.config.ts                    |   51 +-
 canopy/e2e/playwright.handoff.config.ts            |   48 -
 canopy/e2e/playwright.reuse.config.ts              |   28 -
 canopy/e2e/screenshots/m2-home-groups.png          |  Bin 82209 -> 0 bytes
 canopy/e2e/screenshots/m2-login-error.png          |  Bin 144161 -> 0 bytes
 canopy/e2e/screenshots/m2-login.png                |  Bin 164477 -> 0 bytes
 canopy/e2e/screenshots/m2-shell.png                |  Bin 78578 -> 0 bytes
 canopy/e2e/screenshots/m3-crud-group-created.png   |  Bin 618882 -> 0 bytes
 canopy/e2e/screenshots/m3-crud-group-error.png     |  Bin 634213 -> 0 bytes
 canopy/e2e/screenshots/m3-crud-measure-detail.png  |  Bin 331924 -> 0 bytes
 canopy/e2e/screenshots/m3-crud-stream-detail.png   |  Bin 389770 -> 0 bytes
 canopy/e2e/screenshots/m3-crud-trace-detail.png    |  Bin 142232 -> 0 bytes
 .../m3-indexrule-ui-binding-created.png            |  Bin 391639 -> 0 bytes
 canopy/e2e/screenshots/m3-indexrule-ui-created.png |  Bin 377787 -> 0 bytes
 canopy/e2e/screenshots/m3-lifecycle-created.png    |  Bin 622010 -> 0 bytes
 canopy/e2e/screenshots/m3-measures-overview.png    |  Bin 53573 -> 0 bytes
 canopy/e2e/setup/global-setup.ts                   |   21 +
 canopy/e2e/tests/auth.spec.ts                      |   68 +
 canopy/e2e/tests/boot.spec.ts                      |   47 +
 canopy/e2e/tests/index-rule.spec.ts                |  299 ++
 canopy/e2e/tests/lifecycle.spec.ts                 |  193 +
 canopy/e2e/tests/properties.spec.ts                |  103 +
 canopy/e2e/tests/query.spec.ts                     |  126 +
 .../m4-chrome-empty-result-chromium-linux.png      |  Bin 0 -> 3178 bytes
 .../m4-chrome-page-header-chromium-linux.png       |  Bin 0 -> 9184 bytes
 .../m4-chrome-sidebar-chromium-linux.png           |  Bin 0 -> 22532 bytes
 canopy/e2e/tests/schema.spec.ts                    |  385 ++
 canopy/e2e/tests/shell.spec.ts                     |   52 +
 canopy/package-lock.json                           | 4195 ++++++++------------
 canopy/package.json                                |   14 +
 canopy/server/package.json                         |   19 +-
 canopy/server/src/plugins/proxy.ts                 |   13 +-
 canopy/server/src/plugins/static.ts                |   20 +-
 canopy/server/test/bff.test.ts                     |    6 +-
 canopy/shared/src/api-dto.ts                       |  298 +-
 canopy/shared/src/schema.ts                        |   16 +-
 canopy/web/package.json                            |   35 +-
 canopy/web/src/App.tsx                             |  102 +-
 canopy/web/src/components/Combobox.tsx             |    6 +-
 canopy/web/src/components/GroupForm.tsx            |   42 +-
 canopy/web/src/components/IndexRuleBindingForm.tsx |    4 +-
 canopy/web/src/components/IndexRuleForm.tsx        |    4 +-
 canopy/web/src/components/MeasureForm.tsx          |   16 +-
 canopy/web/src/components/Pager.tsx                |    2 +-
 canopy/web/src/components/Shell.tsx                |    4 +-
 canopy/web/src/components/Sidebar.tsx              |  186 +-
 canopy/web/src/components/StreamForm.tsx           |   10 +-
 canopy/web/src/components/TraceForm.tsx            |   10 +-
 canopy/web/src/data/DataSource.ts                  |   20 +-
 canopy/web/src/data/api.ts                         |  384 +-
 .../web/src/data/fixtures/query/fixtures.test.ts   |   86 +
 canopy/web/src/data/fixtures/query/manifest.json   |   12 +
 .../fixtures/query/measure-query-response.json     |  164 +
 .../data/fixtures/query/stream-query-response.json |  164 +
 .../data/fixtures/query/topn-data-response.json    |   58 +
 .../data/fixtures/query/trace-query-response.json  |   76 +
 canopy/web/src/data/hooks.ts                       |   52 +
 canopy/web/src/pages/GroupPage.tsx                 |   51 +-
 canopy/web/src/pages/HomePage.tsx                  |    4 +-
 canopy/web/src/pages/IndexPage.tsx                 |   11 +-
 canopy/web/src/pages/LoginPage.test.tsx            |    2 +-
 canopy/web/src/pages/PropertyDetailPage.tsx        |  194 +
 canopy/web/src/pages/ResourceDetailPage.tsx        |    9 +-
 canopy/web/src/pages/TypeOverviewPage.tsx          |    2 +-
 canopy/web/src/query/CodeArea.tsx                  |  137 +
 canopy/web/src/query/CodeEditor.tsx                |   83 +
 canopy/web/src/query/CopyableId.test.tsx           |  130 +
 canopy/web/src/query/CopyableId.tsx                |  201 +
 canopy/web/src/query/PropertyForms.test.tsx        |  209 +
 canopy/web/src/query/PropertyForms.tsx             |  495 +++
 canopy/web/src/query/PropertyQuery.tsx             |  456 +++
 canopy/web/src/query/QueryBuilder.test.tsx         |  106 +
 canopy/web/src/query/QueryBuilder.tsx              | 1025 +++++
 canopy/web/src/query/QueryConsole.tsx              |  886 +++++
 canopy/web/src/query/TraceDecoderModal.tsx         |  227 ++
 canopy/web/src/query/bydbql.test.ts                |  479 +++
 canopy/web/src/query/bydbql.ts                     |  748 ++++
 canopy/web/src/query/property-bydbql.test.ts       |  306 ++
 canopy/web/src/query/property-bydbql.ts            |  336 ++
 canopy/web/src/query/property-util.ts              |   74 +
 canopy/web/src/query/proto-decoder.test.ts         |  190 +
 canopy/web/src/query/proto-decoder.tsx             |  439 ++
 canopy/web/src/query/qb-parts.tsx                  |  104 +
 canopy/web/src/query/results/DocList.test.tsx      |  136 +
 canopy/web/src/query/results/DocList.tsx           |  342 ++
 canopy/web/src/query/results/MeasureResultView.tsx |  444 +++
 .../Shell.tsx => query/results/ResultEmpty.tsx}    |   25 +-
 canopy/web/src/query/results/ResultError.test.tsx  |   55 +
 canopy/web/src/query/results/ResultError.tsx       |  127 +
 canopy/web/src/query/results/ResultPanel.tsx       |  113 +
 canopy/web/src/query/results/StreamResultView.tsx  |  627 +++
 canopy/web/src/query/results/TopNResultView.tsx    |  387 ++
 .../web/src/query/results/TopNTracePanel.tsx       |   46 +-
 canopy/web/src/query/results/TraceResultView.tsx   |  840 ++++
 canopy/web/src/query/results/TraceView.tsx         |  136 +
 canopy/web/src/query/results/result-views.test.tsx |  527 +++
 canopy/web/src/query/role-infer.test.ts            |  215 +
 canopy/web/src/query/role-infer.ts                 |  340 ++
 canopy/web/src/query/time.test.ts                  |  159 +
 canopy/web/src/query/time.tsx                      |  375 ++
 canopy/web/src/query/where.test.ts                 |  193 +
 canopy/web/src/styles/canopy.css                   |  421 +-
 canopy/web/src/validation.test.ts                  |    2 +-
 canopy/web/tsconfig.json                           |    2 +-
 cmd/m4-seed/main.go                                |  680 ++++
 dist/LICENSE                                       |  156 +-
 dist/licenses/ui-licenses/license-sass.txt         |    2 +-
 docs/interacting/bydbql.md                         |   28 +-
 docs/operation/configuration.md                    |   16 +-
 go.mod                                             |   96 +-
 go.sum                                             |  203 +-
 implement-m4-note.md                               |  412 ++
 mcp/LICENSE                                        |   14 +-
 mcp/Makefile                                       |    1 -
 mcp/package-lock.json                              |  918 ++---
 mcp/package.json                                   |    5 +-
 pkg/bydbql/bydbql_test.go                          |   63 +
 pkg/bydbql/parser.go                               |    7 +-
 pkg/query/logical/stream/index_filter.go           |    4 +
 test/cases/init.go                                 |   43 +-
 test/cases/stream/cmd/capture/capture_test.go      |  375 ++
 test/cases/stream/cmd/generate/entry.go            |  120 +
 test/cases/stream/cmd/generate/eval.go             |  325 ++
 test/cases/stream/cmd/generate/eval_test.go        |  131 +
 test/cases/{trace => stream}/cmd/generate/gap.go   |   58 +-
 test/cases/stream/cmd/generate/layer1_leaf.go      |  181 +
 test/cases/stream/cmd/generate/layer2_tree.go      |  134 +
 test/cases/stream/cmd/generate/layer3_features.go  |  235 ++
 test/cases/stream/cmd/generate/main.go             |  127 +
 .../{trace => stream}/cmd/generate/pairwise.go     |   18 +-
 .../{trace => stream}/cmd/generate/ql_renderer.go  |   48 +-
 test/cases/stream/cmd/generate/seed.go             |  322 ++
 test/cases/{trace => stream}/cmd/generate/types.go |   41 +-
 test/cases/stream/data/data.go                     |   45 +
 .../data/input/gen_err_ge_state.ql}                |    4 +-
 .../data/input/gen_err_ge_state.yaml}              |   21 +-
 .../data/input/gen_err_gt_state.ql}                |    4 +-
 .../data/input/gen_err_gt_state.yaml}              |   21 +-
 .../data/input/gen_err_le_state.ql}                |    4 +-
 .../data/input/gen_err_le_state.yaml}              |   21 +-
 .../data/input/gen_err_lt_state.ql}                |    4 +-
 .../data/input/gen_err_lt_state.yaml}              |   21 +-
 .../data/input/gen_err_match_trace_id.ql}          |    4 +-
 .../data/input/gen_err_match_trace_id.yaml}        |   23 +-
 .../data/input/gen_err_ne_service_id.ql}           |    4 +-
 .../data/input/gen_err_ne_service_id.yaml}         |   25 +-
 .../data/input/gen_err_ne_state.ql}                |    4 +-
 .../data/input/gen_err_ne_state.yaml}              |   21 +-
 .../data/input/gen_err_not_in_service_id.ql}       |    4 +-
 .../data/input/gen_err_not_in_service_id.yaml}     |   23 +-
 .../data/input/gen_err_not_in_state.ql}            |    4 +-
 .../data/input/gen_err_not_in_state.yaml}          |   22 +-
 ...nge_limit5_offset3_proj_all_group_single_12.ql} |    4 +-
 ...e_limit5_offset3_proj_all_group_single_12.yaml} |   39 +-
 ...limit2_offset1_proj_explicit_group_single_3.ql} |    2 +-
 ...mit2_offset1_proj_explicit_group_single_3.yaml} |   18 +-
 ..._filter_none_limit2_proj_all_group_single_7.ql} |    3 +-
 ...ilter_none_limit2_proj_all_group_single_7.yaml} |   32 +-
 ...er_service_eq_proj_explicit_group_single_14.ql} |    5 +-
 ..._service_eq_proj_explicit_group_single_14.yaml} |   18 +-
 ...lter_duration_range_proj_all_group_multi_15.ql} |    3 +-
 ...er_duration_range_proj_all_group_multi_15.yaml} |   36 +-
 ..._filter_none_limit2_proj_all_group_single_4.ql} |    3 +-
 ...ilter_none_limit2_proj_all_group_single_4.yaml} |   33 +-
 ...r_none_limit2_proj_explicit_group_single_13.ql} |    3 +-
 ...none_limit2_proj_explicit_group_single_13.yaml} |   20 +-
 ..._filter_none_limit2_proj_all_group_single_8.ql} |    4 +-
 ...ilter_none_limit2_proj_all_group_single_8.yaml} |   33 +-
 ...er_none_limit2_proj_explicit_group_single_0.ql} |    3 +-
 ..._none_limit2_proj_explicit_group_single_0.yaml} |   19 +-
 ...ne_filter_none_proj_explicit_group_single_9.ql} |    3 +-
 ..._filter_none_proj_explicit_group_single_9.yaml} |   18 +-
 ...er_none_limit2_proj_explicit_group_single_5.ql} |    4 +-
 ..._none_limit2_proj_explicit_group_single_5.yaml} |   20 +-
 ...none_limit5_offset1_proj_all_group_single_1.ql} |    5 +-
 ...ne_limit5_offset1_proj_all_group_single_1.yaml} |   36 +-
 ..._service_eq_limit2_proj_all_group_single_10.ql} |    5 +-
 ...ervice_eq_limit2_proj_all_group_single_10.yaml} |   31 +-
 ...sc_filter_state_eq_proj_all_group_single_16.ql} |    4 +-
 ..._filter_state_eq_proj_all_group_single_16.yaml} |   34 +-
 ...none_limit2_offset3_proj_all_group_single_2.ql} |    4 +-
 ...ne_limit2_offset3_proj_all_group_single_2.yaml} |   36 +-
 ...er_none_limit2_proj_explicit_group_single_6.ql} |    3 +-
 ..._none_limit2_proj_explicit_group_single_6.yaml} |   21 +-
 ...imit5_offset1_proj_explicit_group_single_11.ql} |    4 +-
 ...it5_offset1_proj_explicit_group_single_11.yaml} |   21 +-
 .../data/input/gen_leaf_eq_duration.ql             |    3 +-
 .../data/input/gen_leaf_eq_duration.yaml}          |   21 +-
 .../data/input/gen_leaf_eq_service_id.ql}          |    4 +-
 .../data/input/gen_leaf_eq_service_id.yaml}        |   25 +-
 .../data/input/gen_leaf_eq_state.ql}               |    4 +-
 .../data/input/gen_leaf_eq_state.yaml}             |   21 +-
 .../data/input/gen_leaf_ge_duration.ql             |    3 +-
 .../data/input/gen_leaf_ge_duration.yaml}          |   21 +-
 .../data/input/gen_leaf_gt_duration.ql             |    3 +-
 .../data/input/gen_leaf_gt_duration.yaml}          |   21 +-
 .../data/input/gen_leaf_having_extended_tags.ql}   |    4 +-
 .../data/input/gen_leaf_having_extended_tags.yaml} |   27 +-
 .../data/input/gen_leaf_in_service_id.ql}          |    4 +-
 .../data/input/gen_leaf_in_service_id.yaml}        |   25 +-
 .../data/input/gen_leaf_in_state.ql}               |    4 +-
 .../data/input/gen_leaf_in_state.yaml}             |   23 +-
 .../data/input/gen_leaf_le_duration.ql             |    3 +-
 .../data/input/gen_leaf_le_duration.yaml}          |   21 +-
 .../data/input/gen_leaf_lt_duration.ql             |    3 +-
 .../data/input/gen_leaf_lt_duration.yaml}          |   21 +-
 .../data/input/gen_leaf_match_db.instance.ql}      |    4 +-
 .../data/input/gen_leaf_match_db.instance.yaml}    |   22 +-
 .../data/input/gen_leaf_ne_duration.ql}            |    4 +-
 .../data/input/gen_leaf_ne_duration.yaml}          |   23 +-
 .../input/gen_leaf_not_having_extended_tags.ql}    |    4 +-
 .../input/gen_leaf_not_having_extended_tags.yaml}  |   28 +-
 ...d_order_by_index.ql => gen_tree_depth1_leaf.ql} |    3 +-
 .../data/input/gen_tree_depth1_leaf.yaml}          |   16 +-
 ...ed_order_by_index.ql => gen_tree_depth2_and.ql} |    3 +-
 .../data/input/gen_tree_depth2_and.yaml}           |   27 +-
 ..._index.ql => gen_tree_depth2_contradict_and.ql} |    3 +-
 .../input/gen_tree_depth2_contradict_and.yaml}     |   24 +-
 ...ted_order_by_index.ql => gen_tree_depth2_or.ql} |    3 +-
 .../data/input/gen_tree_depth2_or.yaml}            |   27 +-
 ...order_by_index.ql => gen_tree_depth3_and_or.ql} |    3 +-
 .../data/input/gen_tree_depth3_and_or.yaml}        |   42 +-
 ...order_by_index.ql => gen_tree_depth3_or_and.ql} |    3 +-
 .../data/input/gen_tree_depth3_or_and.yaml}        |   42 +-
 ...der_by_index.ql => gen_tree_depth5_deep_and.ql} |    3 +-
 .../data/input/gen_tree_depth5_deep_and.yaml}      |  111 +-
 ...rder_by_index.ql => gen_tree_depth5_deep_or.ql} |    3 +-
 .../data/input/gen_tree_depth5_deep_or.yaml}       |  111 +-
 ...mit2_offset1_proj_explicit_group_single_3.yaml} |   25 +-
 ...ilter_none_limit2_proj_all_group_single_7.yaml} |  158 +-
 ..._service_eq_proj_explicit_group_single_14.yaml} |   65 +-
 ...ter_duration_range_proj_all_group_multi_15.yaml |  245 ++
 ...ilter_none_limit2_proj_all_group_single_4.yaml} |  143 +-
 ...none_limit2_proj_explicit_group_single_13.yaml} |   25 +-
 ...ilter_none_limit2_proj_all_group_single_8.yaml} |  143 +-
 ..._none_limit2_proj_explicit_group_single_0.yaml} |   25 +-
 ..._filter_none_proj_explicit_group_single_9.yaml} |   65 +-
 ..._none_limit2_proj_explicit_group_single_5.yaml} |   25 +-
 ...one_limit5_offset1_proj_all_group_single_1.yaml |  321 ++
 ...ervice_eq_limit2_proj_all_group_single_10.yaml} |  143 +-
 ..._filter_state_eq_proj_all_group_single_16.yaml} |  143 +-
 ...ne_limit2_offset3_proj_all_group_single_2.yaml} |  143 +-
 ..._none_limit2_proj_explicit_group_single_6.yaml} |   25 +-
 ...it5_offset1_proj_explicit_group_single_11.yaml} |   18 +-
 .../{offset.yaml => gen_leaf_eq_duration.yaml}     |   18 +-
 ...icated_all.yaml => gen_leaf_eq_service_id.yaml} |   65 +-
 ...ed_index_filter.yaml => gen_leaf_eq_state.yaml} |   25 +-
 ...er_by_filter.yaml => gen_leaf_ge_duration.yaml} |   46 +-
 ...er_by_filter.yaml => gen_leaf_gt_duration.yaml} |   46 +-
 ...ter.yaml => gen_leaf_having_extended_tags.yaml} |   48 +-
 ...icated_all.yaml => gen_leaf_in_service_id.yaml} |   65 +-
 ...{duplicated_all.yaml => gen_leaf_in_state.yaml} |   65 +-
 ...plicated_all.yaml => gen_leaf_le_duration.yaml} |   65 +-
 ...plicated_all.yaml => gen_leaf_lt_duration.yaml} |   77 +-
 ...filter.yaml => gen_leaf_match_db.instance.yaml} |   24 +-
 ...plicated_all.yaml => gen_leaf_ne_duration.yaml} |   75 +-
 ...yaml => gen_leaf_not_having_extended_tags.yaml} |   25 +-
 ...plicated_all.yaml => gen_tree_depth1_leaf.yaml} |   63 +-
 ...entity_filter.yaml => gen_tree_depth2_and.yaml} |   46 +-
 ...duplicated_all.yaml => gen_tree_depth2_or.yaml} |   63 +-
 ...icated_all.yaml => gen_tree_depth3_and_or.yaml} |   63 +-
 ...icated_all.yaml => gen_tree_depth3_or_and.yaml} |   63 +-
 ...y_filter.yaml => gen_tree_depth5_deep_and.yaml} |   46 +-
 ...cated_all.yaml => gen_tree_depth5_deep_or.yaml} |   63 +-
 test/cases/stream/stream.go                        |  117 +
 ui/LICENSE                                         |   46 +-
 ui/package-lock.json                               | 1394 +++----
 ui/package.json                                    |    6 +-
 316 files changed, 26896 insertions(+), 9394 deletions(-)
 create mode 100644 banyand/queue/pub/health_check_wiring_test.go
 create mode 100644 canopy/docs/property-design.md
 create mode 100644 canopy/e2e/TESTING.md
 create mode 100644 canopy/e2e/auth/auth.setup.ts
 create mode 100644 canopy/e2e/fixtures/skywalking/Tracing.proto
 create mode 100644 canopy/e2e/framework/fixtures.ts
 copy ui/src/assets/main.css => canopy/e2e/framework/pages/BasePage.ts (63%)
 create mode 100644 canopy/e2e/framework/pages/IndexRulePage.ts
 create mode 100644 canopy/e2e/framework/pages/LifecyclePage.ts
 create mode 100644 canopy/e2e/framework/pages/LoginPage.ts
 create mode 100644 canopy/e2e/framework/pages/PropertyPage.ts
 create mode 100644 canopy/e2e/framework/pages/QueryConsolePage.ts
 create mode 100644 canopy/e2e/framework/pages/SchemaPage.ts
 create mode 100644 canopy/e2e/framework/pages/ShellPage.ts
 copy ui/src/router/modules/dashboard.js => canopy/e2e/framework/paths.ts (71%)
 create mode 100644 canopy/e2e/framework/seed/factory.ts
 delete mode 100644 canopy/e2e/handoff-server.cjs
 delete mode 100644 canopy/e2e/m0-boot.spec.ts
 delete mode 100644 canopy/e2e/m1-bff.spec.ts
 delete mode 100644 canopy/e2e/m2-login.spec.ts
 delete mode 100644 canopy/e2e/m2-shell.spec.ts
 delete mode 100644 canopy/e2e/m3-crud.spec.ts
 delete mode 100644 canopy/e2e/m3-handoff.spec.ts
 delete mode 100644 canopy/e2e/m3-indexrule-ui.spec.ts
 delete mode 100644 canopy/e2e/m3-indexrule.spec.ts
 delete mode 100644 canopy/e2e/m3-lifecycle.spec.ts
 delete mode 100644 canopy/e2e/m3-metadata.spec.ts
 delete mode 100644 canopy/e2e/playwright.handoff.config.ts
 delete mode 100644 canopy/e2e/playwright.reuse.config.ts
 delete mode 100644 canopy/e2e/screenshots/m2-home-groups.png
 delete mode 100644 canopy/e2e/screenshots/m2-login-error.png
 delete mode 100644 canopy/e2e/screenshots/m2-login.png
 delete mode 100644 canopy/e2e/screenshots/m2-shell.png
 delete mode 100644 canopy/e2e/screenshots/m3-crud-group-created.png
 delete mode 100644 canopy/e2e/screenshots/m3-crud-group-error.png
 delete mode 100644 canopy/e2e/screenshots/m3-crud-measure-detail.png
 delete mode 100644 canopy/e2e/screenshots/m3-crud-stream-detail.png
 delete mode 100644 canopy/e2e/screenshots/m3-crud-trace-detail.png
 delete mode 100644 canopy/e2e/screenshots/m3-indexrule-ui-binding-created.png
 delete mode 100644 canopy/e2e/screenshots/m3-indexrule-ui-created.png
 delete mode 100644 canopy/e2e/screenshots/m3-lifecycle-created.png
 delete mode 100644 canopy/e2e/screenshots/m3-measures-overview.png
 create mode 100644 canopy/e2e/tests/auth.spec.ts
 create mode 100644 canopy/e2e/tests/boot.spec.ts
 create mode 100644 canopy/e2e/tests/index-rule.spec.ts
 create mode 100644 canopy/e2e/tests/lifecycle.spec.ts
 create mode 100644 canopy/e2e/tests/properties.spec.ts
 create mode 100644 canopy/e2e/tests/query.spec.ts
 create mode 100644 
canopy/e2e/tests/query.spec.ts-snapshots/m4-chrome-empty-result-chromium-linux.png
 create mode 100644 
canopy/e2e/tests/query.spec.ts-snapshots/m4-chrome-page-header-chromium-linux.png
 create mode 100644 
canopy/e2e/tests/query.spec.ts-snapshots/m4-chrome-sidebar-chromium-linux.png
 create mode 100644 canopy/e2e/tests/schema.spec.ts
 create mode 100644 canopy/e2e/tests/shell.spec.ts
 create mode 100644 canopy/web/src/data/fixtures/query/fixtures.test.ts
 create mode 100644 canopy/web/src/data/fixtures/query/manifest.json
 create mode 100644 
canopy/web/src/data/fixtures/query/measure-query-response.json
 create mode 100644 
canopy/web/src/data/fixtures/query/stream-query-response.json
 create mode 100644 canopy/web/src/data/fixtures/query/topn-data-response.json
 create mode 100644 canopy/web/src/data/fixtures/query/trace-query-response.json
 create mode 100644 canopy/web/src/data/hooks.ts
 create mode 100644 canopy/web/src/pages/PropertyDetailPage.tsx
 create mode 100644 canopy/web/src/query/CodeArea.tsx
 create mode 100644 canopy/web/src/query/CodeEditor.tsx
 create mode 100644 canopy/web/src/query/CopyableId.test.tsx
 create mode 100644 canopy/web/src/query/CopyableId.tsx
 create mode 100644 canopy/web/src/query/PropertyForms.test.tsx
 create mode 100644 canopy/web/src/query/PropertyForms.tsx
 create mode 100644 canopy/web/src/query/PropertyQuery.tsx
 create mode 100644 canopy/web/src/query/QueryBuilder.test.tsx
 create mode 100644 canopy/web/src/query/QueryBuilder.tsx
 create mode 100644 canopy/web/src/query/QueryConsole.tsx
 create mode 100644 canopy/web/src/query/TraceDecoderModal.tsx
 create mode 100644 canopy/web/src/query/bydbql.test.ts
 create mode 100644 canopy/web/src/query/bydbql.ts
 create mode 100644 canopy/web/src/query/property-bydbql.test.ts
 create mode 100644 canopy/web/src/query/property-bydbql.ts
 create mode 100644 canopy/web/src/query/property-util.ts
 create mode 100644 canopy/web/src/query/proto-decoder.test.ts
 create mode 100644 canopy/web/src/query/proto-decoder.tsx
 create mode 100644 canopy/web/src/query/qb-parts.tsx
 create mode 100644 canopy/web/src/query/results/DocList.test.tsx
 create mode 100644 canopy/web/src/query/results/DocList.tsx
 create mode 100644 canopy/web/src/query/results/MeasureResultView.tsx
 copy canopy/web/src/{components/Shell.tsx => query/results/ResultEmpty.tsx} 
(64%)
 create mode 100644 canopy/web/src/query/results/ResultError.test.tsx
 create mode 100644 canopy/web/src/query/results/ResultError.tsx
 create mode 100644 canopy/web/src/query/results/ResultPanel.tsx
 create mode 100644 canopy/web/src/query/results/StreamResultView.tsx
 create mode 100644 canopy/web/src/query/results/TopNResultView.tsx
 copy ui/src/assets/main.css => canopy/web/src/query/results/TopNTracePanel.tsx 
(55%)
 create mode 100644 canopy/web/src/query/results/TraceResultView.tsx
 create mode 100644 canopy/web/src/query/results/TraceView.tsx
 create mode 100644 canopy/web/src/query/results/result-views.test.tsx
 create mode 100644 canopy/web/src/query/role-infer.test.ts
 create mode 100644 canopy/web/src/query/role-infer.ts
 create mode 100644 canopy/web/src/query/time.test.ts
 create mode 100644 canopy/web/src/query/time.tsx
 create mode 100644 canopy/web/src/query/where.test.ts
 create mode 100644 cmd/m4-seed/main.go
 create mode 100644 implement-m4-note.md
 create mode 100644 test/cases/stream/cmd/capture/capture_test.go
 create mode 100644 test/cases/stream/cmd/generate/entry.go
 create mode 100644 test/cases/stream/cmd/generate/eval.go
 create mode 100644 test/cases/stream/cmd/generate/eval_test.go
 copy test/cases/{trace => stream}/cmd/generate/gap.go (71%)
 create mode 100644 test/cases/stream/cmd/generate/layer1_leaf.go
 create mode 100644 test/cases/stream/cmd/generate/layer2_tree.go
 create mode 100644 test/cases/stream/cmd/generate/layer3_features.go
 create mode 100644 test/cases/stream/cmd/generate/main.go
 copy test/cases/{trace => stream}/cmd/generate/pairwise.go (94%)
 copy test/cases/{trace => stream}/cmd/generate/ql_renderer.go (76%)
 create mode 100644 test/cases/stream/cmd/generate/seed.go
 copy test/cases/{trace => stream}/cmd/generate/types.go (69%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_err_ge_state.ql} (89%)
 copy test/cases/{trace/data/input/gen_leaf_ge_state.yml => 
stream/data/input/gen_err_ge_state.yaml} (84%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_err_gt_state.ql} (89%)
 copy test/cases/{trace/data/input/gen_leaf_gt_state.yml => 
stream/data/input/gen_err_gt_state.yaml} (84%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_err_le_state.ql} (89%)
 copy test/cases/{measure/data/input/gen_leaf_le_int.yaml => 
stream/data/input/gen_err_le_state.yaml} (86%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_err_lt_state.ql} (89%)
 copy test/cases/{trace/data/input/gen_leaf_lt_state.yml => 
stream/data/input/gen_err_lt_state.yaml} (84%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_err_match_trace_id.ql} (88%)
 copy test/cases/{measure/data/input/gen_err_match_int.yaml => 
stream/data/input/gen_err_match_trace_id.yaml} (84%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_err_ne_service_id.ql} (87%)
 copy test/cases/{measure/data/input/gen_leaf_ne_int.yaml => 
stream/data/input/gen_err_ne_service_id.yaml} (82%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_err_ne_state.ql} (89%)
 copy test/cases/{trace/data/input/gen_leaf_ne_state.yml => 
stream/data/input/gen_err_ne_state.yaml} (84%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_err_not_in_service_id.ql} (87%)
 copy test/cases/{trace/data/input/gen_leaf_not_in_service_id.yml => 
stream/data/input/gen_err_not_in_service_id.yaml} (83%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_err_not_in_state.ql} (88%)
 copy test/cases/{measure/data/input/gen_leaf_not_in_int_array.yaml => 
stream/data/input/gen_err_not_in_state.yaml} (85%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_asc_limit5_proj_explicit_6.ql
 => 
stream/data/input/gen_feat_duration_asc_filter_duration_range_limit5_offset3_proj_all_group_single_12.ql}
 (73%)
 copy 
test/cases/{trace/data/input/gen_feat_order_timestamp_desc_filter_duration_range_limit2_9.yml
 => 
stream/data/input/gen_feat_duration_asc_filter_duration_range_limit5_offset3_proj_all_group_single_12.yaml}
 (66%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_asc_limit2_offset1_proj_explicit_1.ql
 => 
stream/data/input/gen_feat_duration_asc_filter_none_limit2_offset1_proj_explicit_group_single_3.ql}
 (91%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_asc_limit2_offset1_proj_explicit_1.yml
 => 
stream/data/input/gen_feat_duration_asc_filter_none_limit2_offset1_proj_explicit_group_single_3.yaml}
 (84%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_asc_limit2_offset1_proj_explicit_1.ql
 => 
stream/data/input/gen_feat_duration_asc_filter_none_limit2_proj_all_group_single_7.ql}
 (77%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_asc_limit2_offset1_proj_explicit_1.yml
 => 
stream/data/input/gen_feat_duration_asc_filter_none_limit2_proj_all_group_single_7.yaml}
 (68%)
 copy test/cases/{trace/data/input/eq_endpoint_order_duration_asc.ql => 
stream/data/input/gen_feat_duration_asc_filter_service_eq_proj_explicit_group_single_14.ql}
 (87%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_desc_filter_service_eq_limit2_7.yml
 => 
stream/data/input/gen_feat_duration_asc_filter_service_eq_proj_explicit_group_single_14.yaml}
 (81%)
 copy test/cases/stream/data/input/{duplicated_order_by_index.ql => 
gen_feat_duration_desc_filter_duration_range_proj_all_group_multi_15.ql} (73%)
 copy 
test/cases/{trace/data/input/gen_feat_order_timestamp_desc_filter_duration_range_limit2_9.yml
 => 
stream/data/input/gen_feat_duration_desc_filter_duration_range_proj_all_group_multi_15.yaml}
 (67%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_desc_filter_service_eq_limit2_7.ql
 => 
stream/data/input/gen_feat_duration_desc_filter_none_limit2_proj_all_group_single_4.ql}
 (77%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_desc_filter_service_eq_limit2_7.yml
 => 
stream/data/input/gen_feat_duration_desc_filter_none_limit2_proj_all_group_single_4.yaml}
 (68%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_desc_filter_service_eq_limit2_7.ql
 => 
stream/data/input/gen_feat_duration_desc_filter_none_limit2_proj_explicit_group_single_13.ql}
 (91%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_desc_filter_service_eq_limit2_7.yml
 => 
stream/data/input/gen_feat_duration_desc_filter_none_limit2_proj_explicit_group_single_13.yaml}
 (83%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_asc_limit2_offset1_proj_explicit_1.ql
 => 
stream/data/input/gen_feat_none_filter_none_limit2_proj_all_group_single_8.ql} 
(76%)
 copy test/cases/stream/data/{want/offset.yaml => 
input/gen_feat_none_filter_none_limit2_proj_all_group_single_8.yaml} (71%)
 copy test/cases/{trace/data/input/gen_feat_traceid_limit2_5.ql => 
stream/data/input/gen_feat_none_filter_none_limit2_proj_explicit_group_single_0.ql}
 (90%)
 copy test/cases/stream/data/input/{all.yaml => 
gen_feat_none_filter_none_limit2_proj_explicit_group_single_0.yaml} (83%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_feat_none_filter_none_proj_explicit_group_single_9.ql} 
(90%)
 copy test/cases/stream/data/input/{all.yaml => 
gen_feat_none_filter_none_proj_explicit_group_single_9.yaml} (83%)
 copy test/cases/{measure/data/input/order_asc.ql => 
stream/data/input/gen_feat_ts_asc_filter_none_limit2_proj_explicit_group_single_5.ql}
 (90%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_asc_limit2_offset1_proj_explicit_1.yml
 => 
stream/data/input/gen_feat_ts_asc_filter_none_limit2_proj_explicit_group_single_5.yaml}
 (83%)
 copy test/cases/{measure/data/input/order_asc.ql => 
stream/data/input/gen_feat_ts_asc_filter_none_limit5_offset1_proj_all_group_single_1.ql}
 (75%)
 copy test/cases/stream/data/{want/offset.yaml => 
input/gen_feat_ts_asc_filter_none_limit5_offset1_proj_all_group_single_1.yaml} 
(69%)
 copy test/cases/{measure/data/input/order_asc.ql => 
stream/data/input/gen_feat_ts_asc_filter_service_eq_limit2_proj_all_group_single_10.ql}
 (74%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_desc_filter_service_eq_limit2_7.yml
 => 
stream/data/input/gen_feat_ts_asc_filter_service_eq_limit2_proj_all_group_single_10.yaml}
 (67%)
 copy test/cases/{measure/data/input/order_asc.ql => 
stream/data/input/gen_feat_ts_asc_filter_state_eq_proj_all_group_single_16.ql} 
(75%)
 copy 
test/cases/{trace/data/input/gen_feat_order_timestamp_asc_filter_state_eq_limit5_offset1_proj_explicit_8.yml
 => 
stream/data/input/gen_feat_ts_asc_filter_state_eq_proj_all_group_single_16.yaml}
 (70%)
 copy test/cases/stream/data/input/{order_desc.ql => 
gen_feat_ts_desc_filter_none_limit2_offset3_proj_all_group_single_2.ql} (75%)
 copy test/cases/stream/data/{want/offset.yaml => 
input/gen_feat_ts_desc_filter_none_limit2_offset3_proj_all_group_single_2.yaml} 
(69%)
 copy test/cases/stream/data/input/{order_desc.ql => 
gen_feat_ts_desc_filter_none_limit2_proj_explicit_group_single_6.ql} (90%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_desc_filter_service_eq_limit2_7.yml
 => 
stream/data/input/gen_feat_ts_desc_filter_none_limit2_proj_explicit_group_single_6.yaml}
 (83%)
 copy 
test/cases/{trace/data/input/gen_feat_order_timestamp_asc_filter_state_eq_limit5_offset1_proj_explicit_8.ql
 => 
stream/data/input/gen_feat_ts_desc_filter_state_eq_limit5_offset1_proj_explicit_group_single_11.ql}
 (89%)
 copy 
test/cases/{trace/data/input/gen_feat_order_timestamp_asc_filter_state_eq_limit5_offset1_proj_explicit_8.yml
 => 
stream/data/input/gen_feat_ts_desc_filter_state_eq_limit5_offset1_proj_explicit_group_single_11.yaml}
 (83%)
 copy test/cases/{trace => stream}/data/input/gen_leaf_eq_duration.ql (88%)
 copy test/cases/{trace/data/input/gen_leaf_eq_duration.yml => 
stream/data/input/gen_leaf_eq_duration.yaml} (84%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_leaf_eq_service_id.ql} (87%)
 copy test/cases/{measure/data/input/gen_leaf_eq_int.yaml => 
stream/data/input/gen_leaf_eq_service_id.yaml} (82%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_leaf_eq_state.ql} (89%)
 copy test/cases/{measure/data/input/gen_leaf_eq_int.yaml => 
stream/data/input/gen_leaf_eq_state.yaml} (86%)
 copy test/cases/{trace => stream}/data/input/gen_leaf_ge_duration.ql (88%)
 copy test/cases/{trace/data/input/gen_leaf_ge_duration.yml => 
stream/data/input/gen_leaf_ge_duration.yaml} (84%)
 copy test/cases/{trace => stream}/data/input/gen_leaf_gt_duration.ql (88%)
 copy test/cases/{trace/data/input/gen_leaf_gt_duration.yml => 
stream/data/input/gen_leaf_gt_duration.yaml} (84%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_leaf_having_extended_tags.ql} (87%)
 copy test/cases/{measure/data/input/gen_leaf_not_in_int_array.yaml => 
stream/data/input/gen_leaf_having_extended_tags.yaml} (80%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_leaf_in_service_id.ql} (86%)
 copy test/cases/{trace/data/input/gen_leaf_in_service_id.yml => 
stream/data/input/gen_leaf_in_service_id.yaml} (81%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_leaf_in_state.ql} (88%)
 copy test/cases/{measure/data/input/gen_leaf_in_int_array.yaml => 
stream/data/input/gen_leaf_in_state.yaml} (85%)
 copy test/cases/{trace => stream}/data/input/gen_leaf_le_duration.ql (88%)
 copy test/cases/{trace/data/input/gen_leaf_le_duration.yml => 
stream/data/input/gen_leaf_le_duration.yaml} (84%)
 copy test/cases/{trace => stream}/data/input/gen_leaf_lt_duration.ql (88%)
 copy test/cases/{trace/data/input/gen_leaf_lt_duration.yml => 
stream/data/input/gen_leaf_lt_duration.yaml} (84%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_leaf_match_db.instance.ql} (87%)
 copy test/cases/{measure/data/input/gen_leaf_match_str.yaml => 
stream/data/input/gen_leaf_match_db.instance.yaml} (83%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_leaf_ne_duration.ql} (88%)
 copy test/cases/{measure/data/input/gen_leaf_ne_int.yaml => 
stream/data/input/gen_leaf_ne_duration.yaml} (83%)
 copy test/cases/{measure/data/input/all.ql => 
stream/data/input/gen_leaf_not_having_extended_tags.ql} (87%)
 copy test/cases/{measure/data/input/gen_leaf_in_int_array.yaml => 
stream/data/input/gen_leaf_not_having_extended_tags.yaml} (80%)
 copy test/cases/stream/data/input/{duplicated_order_by_index.ql => 
gen_tree_depth1_leaf.ql} (87%)
 copy 
test/cases/{trace/data/input/gen_feat_order_duration_desc_filter_service_eq_limit2_7.yml
 => stream/data/input/gen_tree_depth1_leaf.yaml} (83%)
 copy test/cases/stream/data/input/{duplicated_order_by_index.ql => 
gen_tree_depth2_and.ql} (86%)
 copy test/cases/{trace/data/input/gen_tree_depth2_and.yml => 
stream/data/input/gen_tree_depth2_and.yaml} (80%)
 copy test/cases/stream/data/input/{duplicated_order_by_index.ql => 
gen_tree_depth2_contradict_and.ql} (86%)
 copy 
test/cases/{trace/data/input/gen_feat_order_timestamp_desc_filter_duration_range_limit2_9.yml
 => stream/data/input/gen_tree_depth2_contradict_and.yaml} (78%)
 copy test/cases/stream/data/input/{duplicated_order_by_index.ql => 
gen_tree_depth2_or.ql} (86%)
 copy test/cases/{trace/data/input/gen_tree_depth2_or.yml => 
stream/data/input/gen_tree_depth2_or.yaml} (80%)
 copy test/cases/stream/data/input/{duplicated_order_by_index.ql => 
gen_tree_depth3_and_or.ql} (82%)
 copy test/cases/{trace/data/input/gen_tree_depth3_and_or.yml => 
stream/data/input/gen_tree_depth3_and_or.yaml} (75%)
 copy test/cases/stream/data/input/{duplicated_order_by_index.ql => 
gen_tree_depth3_or_and.ql} (82%)
 copy test/cases/{trace/data/input/gen_tree_depth3_or_and.yml => 
stream/data/input/gen_tree_depth3_or_and.yaml} (75%)
 copy test/cases/stream/data/input/{duplicated_order_by_index.ql => 
gen_tree_depth5_deep_and.ql} (65%)
 copy test/cases/{trace/data/input/gen_tree_depth5_deep_and.yml => 
stream/data/input/gen_tree_depth5_deep_and.yaml} (71%)
 copy test/cases/stream/data/input/{duplicated_order_by_index.ql => 
gen_tree_depth5_deep_or.ql} (65%)
 copy test/cases/{trace/data/input/gen_tree_depth5_deep_or.yml => 
stream/data/input/gen_tree_depth5_deep_or.yaml} (71%)
 copy test/cases/stream/data/want/{duplicated_entity_filter.yaml => 
gen_feat_duration_asc_filter_none_limit2_offset1_proj_explicit_group_single_3.yaml}
 (83%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_feat_duration_asc_filter_none_limit2_proj_all_group_single_7.yaml} (53%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_feat_duration_asc_filter_service_eq_proj_explicit_group_single_14.yaml} 
(76%)
 create mode 100644 
test/cases/stream/data/want/gen_feat_duration_desc_filter_duration_range_proj_all_group_multi_15.yaml
 copy test/cases/stream/data/want/{duplicated_order_by_index.yaml => 
gen_feat_duration_desc_filter_none_limit2_proj_all_group_single_4.yaml} (57%)
 copy test/cases/stream/data/want/{duplicated_index_filter.yaml => 
gen_feat_duration_desc_filter_none_limit2_proj_explicit_group_single_13.yaml} 
(85%)
 copy test/cases/stream/data/want/{duplicated_order_by_index.yaml => 
gen_feat_none_filter_none_limit2_proj_all_group_single_8.yaml} (57%)
 copy test/cases/stream/data/want/{duplicated_index_filter.yaml => 
gen_feat_none_filter_none_limit2_proj_explicit_group_single_0.yaml} (85%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_feat_none_filter_none_proj_explicit_group_single_9.yaml} (76%)
 copy test/cases/stream/data/want/{duplicated_index_filter.yaml => 
gen_feat_ts_asc_filter_none_limit2_proj_explicit_group_single_5.yaml} (85%)
 create mode 100644 
test/cases/stream/data/want/gen_feat_ts_asc_filter_none_limit5_offset1_proj_all_group_single_1.yaml
 copy test/cases/stream/data/want/{duplicated_order_by_index.yaml => 
gen_feat_ts_asc_filter_service_eq_limit2_proj_all_group_single_10.yaml} (57%)
 copy test/cases/stream/data/want/{duplicated_order_by_index.yaml => 
gen_feat_ts_asc_filter_state_eq_proj_all_group_single_16.yaml} (57%)
 copy test/cases/stream/data/want/{duplicated_order_by_index.yaml => 
gen_feat_ts_desc_filter_none_limit2_offset3_proj_all_group_single_2.yaml} (57%)
 copy test/cases/stream/data/want/{duplicated_entity_filter.yaml => 
gen_feat_ts_desc_filter_none_limit2_proj_explicit_group_single_6.yaml} (83%)
 copy test/cases/stream/data/want/{offset.yaml => 
gen_feat_ts_desc_filter_state_eq_limit5_offset1_proj_explicit_group_single_11.yaml}
 (77%)
 copy test/cases/stream/data/want/{offset.yaml => gen_leaf_eq_duration.yaml} 
(77%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_leaf_eq_service_id.yaml} (76%)
 copy test/cases/stream/data/want/{duplicated_index_filter.yaml => 
gen_leaf_eq_state.yaml} (85%)
 copy test/cases/stream/data/want/{duplicated_order_by_filter.yaml => 
gen_leaf_ge_duration.yaml} (68%)
 copy test/cases/stream/data/want/{duplicated_order_by_filter.yaml => 
gen_leaf_gt_duration.yaml} (68%)
 copy test/cases/stream/data/want/{duplicated_entity_filter.yaml => 
gen_leaf_having_extended_tags.yaml} (68%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_leaf_in_service_id.yaml} (76%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_leaf_in_state.yaml} (76%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_leaf_le_duration.yaml} (76%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_leaf_lt_duration.yaml} (65%)
 copy test/cases/stream/data/want/{duplicated_entity_filter.yaml => 
gen_leaf_match_db.instance.yaml} (85%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_leaf_ne_duration.yaml} (66%)
 copy test/cases/stream/data/want/{duplicated_index_filter.yaml => 
gen_leaf_not_having_extended_tags.yaml} (85%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_tree_depth1_leaf.yaml} (76%)
 copy test/cases/stream/data/want/{duplicated_entity_filter.yaml => 
gen_tree_depth2_and.yaml} (68%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_tree_depth2_or.yaml} (76%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_tree_depth3_and_or.yaml} (76%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_tree_depth3_or_and.yaml} (76%)
 copy test/cases/stream/data/want/{duplicated_entity_filter.yaml => 
gen_tree_depth5_deep_and.yaml} (68%)
 copy test/cases/stream/data/want/{duplicated_all.yaml => 
gen_tree_depth5_deep_or.yaml} (76%)

Reply via email to