SYMBOL INDEX (1135 symbols across 144 files) FILE: docs/assets/rough-notation.iife.js class s (line 1) | class s{constructor(t){this.seed=t}next(){return this.seed?(2**31-1&(thi... method constructor (line 1) | constructor(t){this.seed=t} method next (line 1) | next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)... function i (line 1) | function i(t,e,s,i,n){return{type:"path",ops:u(t,e,s,i,n)}} function n (line 1) | function n(t,e,s){const n=(t||[]).length;if(n>2){const i=[];for(let e=0;... function o (line 1) | function o(t,e,s,i,o){return function(t,e){return n(t,!0,e)}([[t,e],[t+s... function r (line 1) | function r(t,e,s,i,n){return function(t,e,s,i){const[n,o]=g(i.increment,... function h (line 1) | function h(t){return t.randomizer||(t.randomizer=new s(t.seed||0)),t.ran... function a (line 1) | function a(t,e,s,i=1){return s.roughness*i*(h(s)*(e-t)+t)} function c (line 1) | function c(t,e,s=1){return a(-t,t,e,s)} function u (line 1) | function u(t,e,s,i,n,o=!1){const r=o?n.disableMultiStrokeFill:n.disableM... function f (line 1) | function f(t,e,s,i,n,o,r){const a=Math.pow(t-s,2)+Math.pow(e-i,2),u=Math... function l (line 1) | function l(t,e,s){const i=t.length,n=[];if(i>3){const o=[],r=1-s.curveTi... function g (line 1) | function g(t,e,s,i,n,o,r,h){const a=[],u=[],f=c(.5,h)-Math.PI/2;u.push([... function d (line 1) | function d(t,e){return{maxRandomnessOffset:2,roughness:"highlight"===t?3... function p (line 1) | function p(t,s,h,a,c,u){const f=[];let l=h.strokeWidth||2;const g=functi... class _ (line 1) | class _{constructor(t,e){this._state="unattached",this._resizing=!1,this... method constructor (line 1) | constructor(t,e){this._state="unattached",this._resizing=!1,this._seed... method animate (line 1) | get animate(){return this._config.animate} method animate (line 1) | set animate(t){this._config.animate=t} method animationDuration (line 1) | get animationDuration(){return this._config.animationDuration} method animationDuration (line 1) | set animationDuration(t){this._config.animationDuration=t} method iterations (line 1) | get iterations(){return this._config.iterations} method iterations (line 1) | set iterations(t){this._config.iterations=t} method color (line 1) | get color(){return this._config.color} method color (line 1) | set color(t){this._config.color!==t&&(this._config.color=t,this.refres... method strokeWidth (line 1) | get strokeWidth(){return this._config.strokeWidth} method strokeWidth (line 1) | set strokeWidth(t){this._config.strokeWidth!==t&&(this._config.strokeW... method padding (line 1) | get padding(){return this._config.padding} method padding (line 1) | set padding(t){this._config.padding!==t&&(this._config.padding=t,this.... method attach (line 1) | attach(){if("unattached"===this._state&&this._e.parentElement){!functi... method detachListeners (line 1) | detachListeners(){window.removeEventListener("resize",this._resizeList... method attachListeners (line 1) | attachListeners(){this.detachListeners(),window.addEventListener("resi... method haveRectsChanged (line 1) | haveRectsChanged(){if(this._lastSizes.length){const t=this.rects();if(... method isSameRect (line 1) | isSameRect(t,e){const s=(t,e)=>Math.round(t)===Math.round(e);return s(... method isShowing (line 1) | isShowing(){return"not-showing"!==this._state} method refresh (line 1) | refresh(){this.isShowing()&&!this.pendingRefresh&&(this.pendingRefresh... method show (line 1) | show(){switch(this._state){case"unattached":break;case"showing":this.h... method hide (line 1) | hide(){if(this._svg)for(;this._svg.lastChild;)this._svg.removeChild(th... method remove (line 1) | remove(){this._svg&&this._svg.parentElement&&this._svg.parentElement.r... method render (line 1) | render(t,e){let s=this._config;e&&(s=JSON.parse(JSON.stringify(this._c... method rects (line 1) | rects(){const t=[];if(this._svg)if(this._config.multiline){const e=thi... method svgRect (line 1) | svgRect(t,e){const s=t.getBoundingClientRect(),i=e;return{x:(i.x||i.le... method show (line 1) | show(){for(const t of s)t.show()} method hide (line 1) | hide(){for(const t of s)t.hide()} FILE: docs/js/rough-notation-mkdocs.js function parseOpts (line 41) | function parseOpts(el) { function observe (line 55) | function observe(target, threshold, callback) { function init (line 67) | function init() { FILE: examples/quarkus-example/src/main/resources/db/migration/V1__create_products.sql type products (line 1) | CREATE TABLE IF NOT EXISTS products ( FILE: go/stove-kafka/bridge.go type PublishedMessage (line 46) | type PublishedMessage struct type ConsumedMessage (line 54) | type ConsumedMessage struct constant envBridgePort (line 63) | envBridgePort = "STOVE_KAFKA_BRIDGE_PORT" constant envBridgeHost (line 64) | envBridgeHost = "STOVE_KAFKA_BRIDGE_HOST" type Bridge (line 68) | type Bridge struct method Close (line 105) | func (b *Bridge) Close() error { method ReportPublished (line 114) | func (b *Bridge) ReportPublished(ctx context.Context, msg *PublishedMe... method ReportConsumed (line 134) | func (b *Bridge) ReportConsumed(ctx context.Context, msg *ConsumedMess... method ReportCommitted (line 156) | func (b *Bridge) ReportCommitted(ctx context.Context, topic string, pa... function NewBridge (line 75) | func NewBridge(port string) (*Bridge, error) { function NewBridgeFromEnv (line 100) | func NewBridgeFromEnv() (*Bridge, error) { FILE: go/stove-kafka/bridge_test.go function TestNilBridge_ReportPublished (line 8) | func TestNilBridge_ReportPublished(t *testing.T) { function TestNilBridge_ReportConsumed (line 20) | func TestNilBridge_ReportConsumed(t *testing.T) { function TestNilBridge_ReportCommitted (line 31) | func TestNilBridge_ReportCommitted(t *testing.T) { function TestNilBridge_Close (line 39) | func TestNilBridge_Close(t *testing.T) { function TestNewBridge_EmptyPort (line 47) | func TestNewBridge_EmptyPort(t *testing.T) { function TestNewBridgeFromEnv_Unset (line 57) | func TestNewBridgeFromEnv_Unset(t *testing.T) { FILE: go/stove-kafka/franz/hooks.go type Hook (line 23) | type Hook struct method OnProduceRecordBuffered (line 29) | func (h *Hook) OnProduceRecordBuffered(r *kgo.Record) { method OnFetchRecordBuffered (line 44) | func (h *Hook) OnFetchRecordBuffered(r *kgo.Record) { function recordHeaders (line 59) | func recordHeaders(headers []kgo.RecordHeader) map[string]string { FILE: go/stove-kafka/franz/hooks_test.go function TestHook_NilBridge_OnProduceRecordBuffered (line 9) | func TestHook_NilBridge_OnProduceRecordBuffered(t *testing.T) { function TestHook_NilBridge_OnFetchRecordBuffered (line 18) | func TestHook_NilBridge_OnFetchRecordBuffered(t *testing.T) { function TestRecordHeaders (line 29) | func TestRecordHeaders(t *testing.T) { function TestRecordHeaders_Empty (line 43) | func TestRecordHeaders_Empty(t *testing.T) { FILE: go/stove-kafka/sarama/interceptors.go type ProducerInterceptor (line 26) | type ProducerInterceptor struct method OnSend (line 33) | func (i *ProducerInterceptor) OnSend(msg *sarama.ProducerMessage) { type ConsumerInterceptor (line 57) | type ConsumerInterceptor struct method OnConsume (line 65) | func (i *ConsumerInterceptor) OnConsume(msg *sarama.ConsumerMessage) { function encodeSaramaKey (line 81) | func encodeSaramaKey(key sarama.Encoder) (string, error) { function producerHeaders (line 92) | func producerHeaders(headers []sarama.RecordHeader) map[string]string { function consumerHeaders (line 100) | func consumerHeaders(headers []*sarama.RecordHeader) map[string]string { FILE: go/stove-kafka/sarama/interceptors_test.go function TestProducerInterceptor_NilBridge (line 9) | func TestProducerInterceptor_NilBridge(t *testing.T) { function TestConsumerInterceptor_NilBridge (line 19) | func TestConsumerInterceptor_NilBridge(t *testing.T) { function TestEncodeSaramaKey_Nil (line 30) | func TestEncodeSaramaKey_Nil(t *testing.T) { function TestEncodeSaramaKey_String (line 40) | func TestEncodeSaramaKey_String(t *testing.T) { function TestProducerHeaders (line 50) | func TestProducerHeaders(t *testing.T) { function TestProducerHeaders_Empty (line 64) | func TestProducerHeaders_Empty(t *testing.T) { function TestConsumerHeaders (line 71) | func TestConsumerHeaders(t *testing.T) { function TestConsumerHeaders_Empty (line 85) | func TestConsumerHeaders_Empty(t *testing.T) { FILE: go/stove-kafka/segmentio/bridge.go function ReportWritten (line 27) | func ReportWritten(ctx context.Context, bridge *stovekafka.Bridge, msgs ... function ReportRead (line 39) | func ReportRead(ctx context.Context, bridge *stovekafka.Bridge, msg kafk... function toPublished (line 47) | func toPublished(msg kafka.Message) *stovekafka.PublishedMessage { function toConsumed (line 56) | func toConsumed(msg kafka.Message) *stovekafka.ConsumedMessage { function messageHeaders (line 67) | func messageHeaders(headers []kafka.Header) map[string]string { FILE: go/stove-kafka/segmentio/bridge_test.go function TestReportWritten_NilBridge (line 10) | func TestReportWritten_NilBridge(t *testing.T) { function TestReportRead_NilBridge (line 18) | func TestReportRead_NilBridge(t *testing.T) { function TestMessageHeaders (line 28) | func TestMessageHeaders(t *testing.T) { function TestMessageHeaders_Empty (line 42) | func TestMessageHeaders_Empty(t *testing.T) { function TestToPublished (line 49) | func TestToPublished(t *testing.T) { function TestToConsumed (line 65) | func TestToConsumed(t *testing.T) { FILE: go/stove-kafka/stoveobserver/messages.pb.go constant _ (line 21) | _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) constant _ (line 23) | _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) type HealthCheckResponse_ServingStatus (line 26) | type HealthCheckResponse_ServingStatus method Enum (line 51) | func (x HealthCheckResponse_ServingStatus) Enum() *HealthCheckResponse... method String (line 57) | func (x HealthCheckResponse_ServingStatus) String() string { method Descriptor (line 61) | func (HealthCheckResponse_ServingStatus) Descriptor() protoreflect.Enu... method Type (line 65) | func (HealthCheckResponse_ServingStatus) Type() protoreflect.EnumType { method Number (line 69) | func (x HealthCheckResponse_ServingStatus) Number() protoreflect.EnumN... method EnumDescriptor (line 74) | func (HealthCheckResponse_ServingStatus) EnumDescriptor() ([]byte, []i... constant HealthCheckResponse_UNKNOWN (line 29) | HealthCheckResponse_UNKNOWN HealthCheckResponse_ServingStatus = 0 constant HealthCheckResponse_SERVING (line 30) | HealthCheckResponse_SERVING HealthCheckResponse_ServingStatus = 1 constant HealthCheckResponse_NOT_SERVING (line 31) | HealthCheckResponse_NOT_SERVING HealthCheckResponse_ServingStatus = 2 constant HealthCheckResponse_SERVICE_UNKNOWN (line 32) | HealthCheckResponse_SERVICE_UNKNOWN HealthCheckResponse_ServingStatus = 3 type ConsumedMessage (line 78) | type ConsumedMessage struct method Reset (line 91) | func (x *ConsumedMessage) Reset() { method String (line 98) | func (x *ConsumedMessage) String() string { method ProtoMessage (line 102) | func (*ConsumedMessage) ProtoMessage() {} method ProtoReflect (line 104) | func (x *ConsumedMessage) ProtoReflect() protoreflect.Message { method Descriptor (line 117) | func (*ConsumedMessage) Descriptor() ([]byte, []int) { method GetId (line 121) | func (x *ConsumedMessage) GetId() string { method GetMessage (line 128) | func (x *ConsumedMessage) GetMessage() []byte { method GetTopic (line 135) | func (x *ConsumedMessage) GetTopic() string { method GetPartition (line 142) | func (x *ConsumedMessage) GetPartition() int32 { method GetOffset (line 149) | func (x *ConsumedMessage) GetOffset() int64 { method GetKey (line 156) | func (x *ConsumedMessage) GetKey() string { method GetHeaders (line 163) | func (x *ConsumedMessage) GetHeaders() map[string]string { type PublishedMessage (line 170) | type PublishedMessage struct method Reset (line 181) | func (x *PublishedMessage) Reset() { method String (line 188) | func (x *PublishedMessage) String() string { method ProtoMessage (line 192) | func (*PublishedMessage) ProtoMessage() {} method ProtoReflect (line 194) | func (x *PublishedMessage) ProtoReflect() protoreflect.Message { method Descriptor (line 207) | func (*PublishedMessage) Descriptor() ([]byte, []int) { method GetId (line 211) | func (x *PublishedMessage) GetId() string { method GetMessage (line 218) | func (x *PublishedMessage) GetMessage() []byte { method GetTopic (line 225) | func (x *PublishedMessage) GetTopic() string { method GetKey (line 232) | func (x *PublishedMessage) GetKey() string { method GetHeaders (line 239) | func (x *PublishedMessage) GetHeaders() map[string]string { type CommittedMessage (line 246) | type CommittedMessage struct method Reset (line 257) | func (x *CommittedMessage) Reset() { method String (line 264) | func (x *CommittedMessage) String() string { method ProtoMessage (line 268) | func (*CommittedMessage) ProtoMessage() {} method ProtoReflect (line 270) | func (x *CommittedMessage) ProtoReflect() protoreflect.Message { method Descriptor (line 283) | func (*CommittedMessage) Descriptor() ([]byte, []int) { method GetId (line 287) | func (x *CommittedMessage) GetId() string { method GetTopic (line 294) | func (x *CommittedMessage) GetTopic() string { method GetPartition (line 301) | func (x *CommittedMessage) GetPartition() int32 { method GetOffset (line 308) | func (x *CommittedMessage) GetOffset() int64 { method GetMetadata (line 315) | func (x *CommittedMessage) GetMetadata() string { type AcknowledgedMessage (line 322) | type AcknowledgedMessage struct method Reset (line 333) | func (x *AcknowledgedMessage) Reset() { method String (line 340) | func (x *AcknowledgedMessage) String() string { method ProtoMessage (line 344) | func (*AcknowledgedMessage) ProtoMessage() {} method ProtoReflect (line 346) | func (x *AcknowledgedMessage) ProtoReflect() protoreflect.Message { method Descriptor (line 359) | func (*AcknowledgedMessage) Descriptor() ([]byte, []int) { method GetId (line 363) | func (x *AcknowledgedMessage) GetId() string { method GetTopic (line 370) | func (x *AcknowledgedMessage) GetTopic() string { method GetPartition (line 377) | func (x *AcknowledgedMessage) GetPartition() int32 { method GetOffset (line 384) | func (x *AcknowledgedMessage) GetOffset() int64 { method GetException (line 391) | func (x *AcknowledgedMessage) GetException() string { type Reply (line 398) | type Reply struct method Reset (line 405) | func (x *Reply) Reset() { method String (line 412) | func (x *Reply) String() string { method ProtoMessage (line 416) | func (*Reply) ProtoMessage() {} method ProtoReflect (line 418) | func (x *Reply) ProtoReflect() protoreflect.Message { method Descriptor (line 431) | func (*Reply) Descriptor() ([]byte, []int) { method GetStatus (line 435) | func (x *Reply) GetStatus() int32 { type HealthCheckRequest (line 442) | type HealthCheckRequest struct method Reset (line 449) | func (x *HealthCheckRequest) Reset() { method String (line 456) | func (x *HealthCheckRequest) String() string { method ProtoMessage (line 460) | func (*HealthCheckRequest) ProtoMessage() {} method ProtoReflect (line 462) | func (x *HealthCheckRequest) ProtoReflect() protoreflect.Message { method Descriptor (line 475) | func (*HealthCheckRequest) Descriptor() ([]byte, []int) { method GetService (line 479) | func (x *HealthCheckRequest) GetService() string { type HealthCheckResponse (line 486) | type HealthCheckResponse struct method Reset (line 493) | func (x *HealthCheckResponse) Reset() { method String (line 500) | func (x *HealthCheckResponse) String() string { method ProtoMessage (line 504) | func (*HealthCheckResponse) ProtoMessage() {} method ProtoReflect (line 506) | func (x *HealthCheckResponse) ProtoReflect() protoreflect.Message { method Descriptor (line 519) | func (*HealthCheckResponse) Descriptor() ([]byte, []int) { method GetStatus (line 523) | func (x *HealthCheckResponse) GetStatus() HealthCheckResponse_ServingS... constant file_messages_proto_rawDesc (line 532) | file_messages_proto_rawDesc = "" + function file_messages_proto_rawDescGZIP (line 590) | func file_messages_proto_rawDescGZIP() []byte { function init (line 632) | func init() { file_messages_proto_init() } function file_messages_proto_init (line 633) | func file_messages_proto_init() { FILE: go/stove-kafka/stoveobserver/messages_grpc.pb.go constant _ (line 21) | _ = grpc.SupportPackageIsVersion9 constant StoveKafkaObserverService_HealthCheck_FullMethodName (line 24) | StoveKafkaObserverService_HealthCheck_FullMethodName = "/com.t... constant StoveKafkaObserverService_OnConsumedMessage_FullMethodName (line 25) | StoveKafkaObserverService_OnConsumedMessage_FullMethodName = "/com.t... constant StoveKafkaObserverService_OnPublishedMessage_FullMethodName (line 26) | StoveKafkaObserverService_OnPublishedMessage_FullMethodName = "/com.t... constant StoveKafkaObserverService_OnCommittedMessage_FullMethodName (line 27) | StoveKafkaObserverService_OnCommittedMessage_FullMethodName = "/com.t... constant StoveKafkaObserverService_OnAcknowledgedMessage_FullMethodName (line 28) | StoveKafkaObserverService_OnAcknowledgedMessage_FullMethodName = "/com.t... type StoveKafkaObserverServiceClient (line 34) | type StoveKafkaObserverServiceClient interface type stoveKafkaObserverServiceClient (line 46) | type stoveKafkaObserverServiceClient struct method HealthCheck (line 54) | func (c *stoveKafkaObserverServiceClient) HealthCheck(ctx context.Cont... method OnConsumedMessage (line 64) | func (c *stoveKafkaObserverServiceClient) OnConsumedMessage(ctx contex... method OnPublishedMessage (line 74) | func (c *stoveKafkaObserverServiceClient) OnPublishedMessage(ctx conte... method OnCommittedMessage (line 84) | func (c *stoveKafkaObserverServiceClient) OnCommittedMessage(ctx conte... method OnAcknowledgedMessage (line 94) | func (c *stoveKafkaObserverServiceClient) OnAcknowledgedMessage(ctx co... function NewStoveKafkaObserverServiceClient (line 50) | func NewStoveKafkaObserverServiceClient(cc grpc.ClientConnInterface) Sto... type StoveKafkaObserverServiceServer (line 107) | type StoveKafkaObserverServiceServer interface type UnimplementedStoveKafkaObserverServiceServer (line 125) | type UnimplementedStoveKafkaObserverServiceServer struct method HealthCheck (line 127) | func (UnimplementedStoveKafkaObserverServiceServer) HealthCheck(contex... method OnConsumedMessage (line 130) | func (UnimplementedStoveKafkaObserverServiceServer) OnConsumedMessage(... method OnPublishedMessage (line 133) | func (UnimplementedStoveKafkaObserverServiceServer) OnPublishedMessage... method OnCommittedMessage (line 136) | func (UnimplementedStoveKafkaObserverServiceServer) OnCommittedMessage... method OnAcknowledgedMessage (line 139) | func (UnimplementedStoveKafkaObserverServiceServer) OnAcknowledgedMess... method mustEmbedUnimplementedStoveKafkaObserverServiceServer (line 142) | func (UnimplementedStoveKafkaObserverServiceServer) mustEmbedUnimpleme... method testEmbeddedByValue (line 144) | func (UnimplementedStoveKafkaObserverServiceServer) testEmbeddedByValu... type UnsafeStoveKafkaObserverServiceServer (line 149) | type UnsafeStoveKafkaObserverServiceServer interface function RegisterStoveKafkaObserverServiceServer (line 153) | func RegisterStoveKafkaObserverServiceServer(s grpc.ServiceRegistrar, sr... function _StoveKafkaObserverService_HealthCheck_Handler (line 164) | func _StoveKafkaObserverService_HealthCheck_Handler(srv interface{}, ctx... function _StoveKafkaObserverService_OnConsumedMessage_Handler (line 182) | func _StoveKafkaObserverService_OnConsumedMessage_Handler(srv interface{... function _StoveKafkaObserverService_OnPublishedMessage_Handler (line 200) | func _StoveKafkaObserverService_OnPublishedMessage_Handler(srv interface... function _StoveKafkaObserverService_OnCommittedMessage_Handler (line 218) | func _StoveKafkaObserverService_OnCommittedMessage_Handler(srv interface... function _StoveKafkaObserverService_OnAcknowledgedMessage_Handler (line 236) | func _StoveKafkaObserverService_OnAcknowledgedMessage_Handler(srv interf... FILE: recipes/jvm/java-recipes/quarkus-basic-recipe/src/main/java/com/trendyol/stove/recipes/quarkus/EnglishGreetingService.java class EnglishGreetingService (line 5) | @ApplicationScoped method greet (line 7) | @Override method getLanguage (line 12) | @Override FILE: recipes/jvm/java-recipes/quarkus-basic-recipe/src/main/java/com/trendyol/stove/recipes/quarkus/GreetingResource.java class GreetingResource (line 10) | @Path("/hello") method hello (line 24) | @GET method greetings (line 30) | @GET FILE: recipes/jvm/java-recipes/quarkus-basic-recipe/src/main/java/com/trendyol/stove/recipes/quarkus/GreetingService.java type GreetingService (line 4) | public interface GreetingService { method greet (line 5) | String greet(String name); method getLanguage (line 7) | String getLanguage(); FILE: recipes/jvm/java-recipes/quarkus-basic-recipe/src/main/java/com/trendyol/stove/recipes/quarkus/HelloService.java type HelloService (line 7) | public interface HelloService { method hello (line 8) | String hello(); FILE: recipes/jvm/java-recipes/quarkus-basic-recipe/src/main/java/com/trendyol/stove/recipes/quarkus/HelloServiceImpl.java class HelloServiceImpl (line 5) | @Singleton method hello (line 7) | @Override FILE: recipes/jvm/java-recipes/quarkus-basic-recipe/src/main/java/com/trendyol/stove/recipes/quarkus/InMemoryItemRepository.java class InMemoryItemRepository (line 9) | @ApplicationScoped method add (line 14) | @Override method addItem (line 19) | @Override method getById (line 24) | @Override method getItemById (line 29) | @Override method getAllIds (line 35) | @Override method clear (line 40) | @Override method count (line 45) | @Override FILE: recipes/jvm/java-recipes/quarkus-basic-recipe/src/main/java/com/trendyol/stove/recipes/quarkus/Item.java class Item (line 4) | public class Item { method Item (line 8) | public Item(String id, String name) { method getId (line 13) | public String getId() { method getName (line 17) | public String getName() { method toString (line 21) | @Override FILE: recipes/jvm/java-recipes/quarkus-basic-recipe/src/main/java/com/trendyol/stove/recipes/quarkus/ItemRepository.java type ItemRepository (line 6) | public interface ItemRepository { method add (line 7) | void add(String id, String name); method addItem (line 9) | void addItem(Item item); method getById (line 11) | String getById(String id); method getItemById (line 13) | Item getItemById(String id); method getAllIds (line 15) | List getAllIds(); method clear (line 17) | void clear(); method count (line 19) | int count(); FILE: recipes/jvm/java-recipes/quarkus-basic-recipe/src/main/java/com/trendyol/stove/recipes/quarkus/QuarkusMainApp.java class QuarkusMainApp (line 6) | @QuarkusMain method main (line 9) | public static void main(String[] args) { FILE: recipes/jvm/java-recipes/quarkus-basic-recipe/src/main/java/com/trendyol/stove/recipes/quarkus/SpanishGreetingService.java class SpanishGreetingService (line 5) | @ApplicationScoped method greet (line 7) | @Override method getLanguage (line 12) | @Override FILE: recipes/jvm/java-recipes/quarkus-basic-recipe/src/main/java/com/trendyol/stove/recipes/quarkus/StoveStartupSignal.java class StoveStartupSignal (line 8) | @ApplicationScoped method onStart (line 13) | void onStart(@Observes StartupEvent event) { method onStop (line 17) | void onStop(@Observes ShutdownEvent event) { FILE: recipes/jvm/java-recipes/quarkus-basic-recipe/src/main/java/com/trendyol/stove/recipes/quarkus/TurkishGreetingService.java class TurkishGreetingService (line 5) | @ApplicationScoped method greet (line 7) | @Override method getLanguage (line 12) | @Override FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/ExampleSpringBootApp.java class ExampleSpringBootApp (line 9) | @SpringBootApplication method main (line 12) | public static void main(String[] args) { method run (line 16) | public static ConfigurableApplicationContext run( FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/application/external/category/CategoryApiSpringConfiguration.java class CategoryApiSpringConfiguration (line 6) | @ConfigurationProperties(prefix = "external-apis.category") FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/application/external/category/CategoryHttpApi.java type CategoryHttpApi (line 7) | public interface CategoryHttpApi { method getCategoryById (line 8) | Mono getCategoryById(int id) throws BusinessExcep... FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/application/external/category/CategoryHttpApiConfiguration.java class CategoryHttpApiConfiguration (line 17) | @Configuration method categoryHttpApi (line 21) | @Bean method webClient (line 27) | private WebClient webClient( FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/application/external/category/CategoryHttpApiImpl.java class CategoryHttpApiImpl (line 7) | public class CategoryHttpApiImpl implements CategoryHttpApi { method CategoryHttpApiImpl (line 10) | public CategoryHttpApiImpl(WebClient categoryWebClient) { method getCategoryById (line 14) | @Override FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/application/product/command/ProductApplicationService.java class ProductApplicationService (line 11) | @Component method ProductApplicationService (line 16) | public ProductApplicationService( method create (line 22) | public Mono create(String name, double price, int categoryId) th... FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/application/product/messaging/ProductEventHandlerListener.java class ProductEventHandlerListener (line 7) | @Component method listen (line 10) | @KafkaListener(topics = {"${kafka.topics.product.name}"}) FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/domain/ProductReactiveRepository.java type ProductReactiveRepository (line 6) | public interface ProductReactiveRepository { method findById (line 7) | Mono findById(String id); method save (line 9) | Mono save(Product product); FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/infra/boilerplate/http/ControllerAdvice.java class ControllerAdvice (line 12) | @RestControllerAdvice method handleException (line 17) | @ExceptionHandler(BusinessException.class) method handleException (line 24) | @ExceptionHandler(Exception.class) FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/infra/boilerplate/kafka/KafkaBeanConfiguration.java class KafkaBeanConfiguration (line 23) | @Configuration method kafkaConfiguration (line 27) | @Bean method topicResolver (line 33) | @Bean method consumerProperties (line 38) | @Bean method producerProperties (line 70) | @Bean method kafkaTemplate (line 82) | @Bean method kafkaListenerContainerFactory (line 88) | @Bean method toMap (line 101) | private Map toMap(Properties properties) { FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/infra/boilerplate/kafka/KafkaConfiguration.java class KafkaConfiguration (line 6) | public @Data class KafkaConfiguration { method flattenInterceptorClasses (line 17) | public String flattenInterceptorClasses() { FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/infra/boilerplate/kafka/KafkaDomainEventPublisher.java class KafkaDomainEventPublisher (line 11) | @Component method KafkaDomainEventPublisher (line 17) | public KafkaDomainEventPublisher( method publishFor (line 23) | @Override method mapEventsToProducerRecords (line 28) | private Stream> mapEventsToProduc... FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/infra/boilerplate/kafka/Topic.java class Topic (line 5) | public @Data class Topic { FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/infra/boilerplate/kafka/TopicResolver.java class TopicResolver (line 3) | public class TopicResolver { method TopicResolver (line 6) | public TopicResolver(KafkaConfiguration kafkaConfiguration) { method resolve (line 10) | public Topic resolve(String aggregateName) { FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/infra/boilerplate/postgres/PostgresConfiguration.java class PostgresConfiguration (line 8) | @Configuration method databaseClient (line 11) | @Bean FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/infra/boilerplate/serialization/JacksonConfiguration.java class JacksonConfiguration (line 11) | @Configuration method defaultObjectMapper (line 14) | public static ObjectMapper defaultObjectMapper() { method objectMapper (line 26) | @Bean method jackson2ObjectMapperBuilderCustomizer (line 32) | @Bean FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/infra/components/index/IndexController.java class IndexController (line 6) | @RestController method index (line 10) | @RequestMapping FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/infra/components/product/api/ProductController.java class ProductController (line 12) | @RestController method ProductController (line 17) | public ProductController(ProductApplicationService productService) { method createProduct (line 21) | @PostMapping FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/infra/components/product/api/ProductCreateRequest.java class ProductCreateRequest (line 5) | @Data method ProductCreateRequest (line 11) | public ProductCreateRequest(String name, double price, int categoryId) { FILE: recipes/jvm/java-recipes/spring-boot-postgres-recipe/src/main/java/com/trendyol/stove/examples/java/spring/infra/components/product/persistency/JdbcProductRepository.java class JdbcProductRepository (line 11) | @Component method JdbcProductRepository (line 16) | public JdbcProductRepository(DatabaseClient databaseClient, EventPubli... method findById (line 21) | @Override method save (line 39) | public Mono save(Product product) { FILE: recipes/jvm/kotlin-recipes/ktor-postgres-recipe/src/main/resources/db/migration/V1__init.sql type products (line 1) | create table products FILE: recipes/jvm/shared/application/src/main/java/com/trendyol/stove/recipes/shared/application/BusinessException.java class BusinessException (line 3) | public class BusinessException extends Exception { method BusinessException (line 4) | public BusinessException(String message) { method BusinessException (line 8) | public BusinessException(String message, Throwable cause) { FILE: recipes/jvm/shared/application/src/main/java/com/trendyol/stove/recipes/shared/application/ExternalApiConfiguration.java class ExternalApiConfiguration (line 5) | @Data method ExternalApiConfiguration (line 10) | public ExternalApiConfiguration() { method ExternalApiConfiguration (line 14) | public ExternalApiConfiguration(String url, int timeout) { FILE: recipes/jvm/shared/application/src/main/java/com/trendyol/stove/recipes/shared/application/category/CategoryApiConfiguration.java class CategoryApiConfiguration (line 5) | public class CategoryApiConfiguration extends ExternalApiConfiguration {} FILE: recipes/jvm/shared/domain/src/main/java/com/trendyol/stove/examples/domain/ddd/AggregateRoot.java class AggregateRoot (line 9) | @SuppressWarnings("unchecked") method AggregateRoot (line 20) | protected AggregateRoot(TId id) { method register (line 27) | protected void register( method applyEvent (line 32) | protected void applyEvent(TEvent event) { method play (line 39) | protected void play(TEvent event) { method getIdAsString (line 43) | @JsonIgnore method clearDomainEvents (line 48) | @JsonIgnore method domainEvents (line 53) | @JsonIgnore method hasChanges (line 58) | @JsonIgnore method isNew (line 63) | @JsonIgnore method getAggregateName (line 68) | @JsonIgnore method equals (line 73) | @Override method hashCode (line 81) | @Override FILE: recipes/jvm/shared/domain/src/main/java/com/trendyol/stove/examples/domain/ddd/DomainEvent.java class DomainEvent (line 6) | public abstract class DomainEvent { method DomainEvent (line 12) | public DomainEvent() { FILE: recipes/jvm/shared/domain/src/main/java/com/trendyol/stove/examples/domain/ddd/Entity.java class Entity (line 5) | public class Entity> { method Entity (line 9) | public Entity(TId id) { method register (line 14) | protected void register( method route (line 19) | public void route(TEvent event) { FILE: recipes/jvm/shared/domain/src/main/java/com/trendyol/stove/examples/domain/ddd/EventPublisher.java type EventPublisher (line 3) | public interface EventPublisher { method publishFor (line 4) | void publishFor(AggregateRoot aggregateRoot); FILE: recipes/jvm/shared/domain/src/main/java/com/trendyol/stove/examples/domain/ddd/EventRecorder.java class EventRecorder (line 6) | public class EventRecorder { method EventRecorder (line 9) | public EventRecorder() { method record (line 13) | public void record(DomainEvent event) { method getRecords (line 17) | public List getRecords() { method removeAll (line 21) | public void removeAll() { FILE: recipes/jvm/shared/domain/src/main/java/com/trendyol/stove/examples/domain/ddd/EventRouter.java class EventRouter (line 8) | public class EventRouter { method register (line 11) | public void register( method route (line 16) | public void route(TEvent event) { FILE: recipes/jvm/shared/domain/src/main/java/com/trendyol/stove/examples/domain/product/Product.java class Product (line 11) | @Getter method Product (line 14) | @SuppressWarnings("unused") method Product (line 19) | private Product(String id, String name, double price, int categoryId) { method changePrice (line 33) | public void changePrice(double newPrice) { method changeName (line 37) | public void changeName(String newName) { method handle (line 41) | private void handle(ProductCreatedEvent event) { method handle (line 46) | private void handle(ProductPriceChangedEvent event) { method handle (line 50) | private void handle(ProductNameChangedEvent event) { method create (line 54) | public static Product create(String name, double price, int categoryId) { method fromPersistency (line 64) | public static Product fromPersistency( FILE: recipes/jvm/shared/domain/src/main/java/com/trendyol/stove/examples/domain/product/events/ProductCreatedEvent.java class ProductCreatedEvent (line 6) | @NoArgsConstructor(force = true) method ProductCreatedEvent (line 12) | public ProductCreatedEvent(String name, double price, int categoryId) { FILE: recipes/jvm/shared/domain/src/main/java/com/trendyol/stove/examples/domain/product/events/ProductNameChangedEvent.java class ProductNameChangedEvent (line 6) | @NoArgsConstructor(force = true) method ProductNameChangedEvent (line 10) | public ProductNameChangedEvent(String newName) { FILE: recipes/jvm/shared/domain/src/main/java/com/trendyol/stove/examples/domain/product/events/ProductPriceChangedEvent.java class ProductPriceChangedEvent (line 6) | @NoArgsConstructor(force = true) method ProductPriceChangedEvent (line 10) | public ProductPriceChangedEvent(double newPrice) { FILE: recipes/process/golang/go-showcase/db.go function initDB (line 13) | func initDB(connStr string) (*sql.DB, error) { function insertProduct (line 27) | func insertProduct(ctx context.Context, db *sql.DB, p Product) error { function getProduct (line 35) | func getProduct(ctx context.Context, db *sql.DB, id string) (*Product, e... function updateProduct (line 47) | func updateProduct(ctx context.Context, db *sql.DB, id string, name stri... function listProducts (line 55) | func listProducts(ctx context.Context, db *sql.DB) ([]Product, error) { FILE: recipes/process/golang/go-showcase/handlers.go type Product (line 13) | type Product struct type createProductRequest (line 19) | type createProductRequest struct function registerRoutes (line 24) | func registerRoutes(mux *http.ServeMux, db *sql.DB, producer KafkaProduc... function handleHealth (line 31) | func handleHealth(w http.ResponseWriter, _ *http.Request) { function handleCreateProduct (line 35) | func handleCreateProduct(db *sql.DB, producer KafkaProducer) http.Handle... function handleGetProduct (line 69) | func handleGetProduct(db *sql.DB) http.HandlerFunc { function handleListProducts (line 87) | func handleListProducts(db *sql.DB) http.HandlerFunc { function writeJSON (line 102) | func writeJSON(w http.ResponseWriter, status int, v any) { FILE: recipes/process/golang/go-showcase/kafka.go constant topicProductCreated (line 13) | topicProductCreated = "product.created" constant topicProductUpdate (line 14) | topicProductUpdate = "product.update" type ProductCreatedEvent (line 18) | type ProductCreatedEvent struct type ProductUpdateEvent (line 25) | type ProductUpdateEvent struct type KafkaProducer (line 32) | type KafkaProducer interface function initKafka (line 39) | func initKafka(library, brokers string, db *sql.DB, bridge *stovekafka.B... function handleProductUpdate (line 59) | func handleProductUpdate(db *sql.DB, value []byte) { FILE: recipes/process/golang/go-showcase/kafka_franz.go type franzProducer (line 15) | type franzProducer struct method SendMessage (line 19) | func (p *franzProducer) SendMessage(topic, key string, value []byte) e... method Close (line 28) | func (p *franzProducer) Close() error { function initFranzKafka (line 33) | func initFranzKafka(brokers, groupID string, db *sql.DB, bridge *stoveka... FILE: recipes/process/golang/go-showcase/kafka_sarama.go type saramaProducer (line 15) | type saramaProducer struct method SendMessage (line 19) | func (p *saramaProducer) SendMessage(topic, key string, value []byte) ... method Close (line 28) | func (p *saramaProducer) Close() error { function initSaramaKafka (line 32) | func initSaramaKafka(brokers, groupID string, db *sql.DB, bridge *stovek... type saramaUpdateHandler (line 82) | type saramaUpdateHandler struct method Setup (line 86) | func (h *saramaUpdateHandler) Setup(_ sarama.ConsumerGroupSession) err... method Cleanup (line 87) | func (h *saramaUpdateHandler) Cleanup(_ sarama.ConsumerGroupSession) e... method ConsumeClaim (line 89) | func (h *saramaUpdateHandler) ConsumeClaim(session sarama.ConsumerGrou... FILE: recipes/process/golang/go-showcase/kafka_segmentio.go type segmentioProducer (line 16) | type segmentioProducer struct method SendMessage (line 21) | func (p *segmentioProducer) SendMessage(topic, key string, value []byt... method Close (line 35) | func (p *segmentioProducer) Close() error { function initSegmentioKafka (line 39) | func initSegmentioKafka(brokers, groupID string, db *sql.DB, bridge *sto... FILE: recipes/process/golang/go-showcase/main.go function getEnv (line 17) | func getEnv(key, fallback string) string { function main (line 24) | func main() { FILE: recipes/process/golang/go-showcase/tracing.go function initTracing (line 18) | func initTracing(ctx context.Context, serviceName string) (func(context.... FILE: tools/stove-cli/Formula/stove.rb class Stove (line 6) | class Stove < Formula method install (line 30) | def install FILE: tools/stove-cli/build.rs function main (line 4) | fn main() -> Result<(), Box> { function build_spa (line 35) | fn build_spa() { function run_npm (line 62) | fn run_npm(dir: &Path, args: &[&str]) { FILE: tools/stove-cli/spa/src/App.tsx function App (line 7) | function App() { FILE: tools/stove-cli/spa/src/api/client.ts constant BASE (line 3) | const BASE = "/api/v1"; function get (line 6) | async function get(url: string): Promise { function del (line 12) | async function del(url: string): Promise { FILE: tools/stove-cli/spa/src/api/live-cache.ts constant RUNNING (line 6) | const RUNNING: Status = "RUNNING"; function applyLiveDashboardEvent (line 8) | function applyLiveDashboardEvent(queryClient: QueryClient, event: LiveDa... function invalidateDashboardQueries (line 185) | function invalidateDashboardQueries(queryClient: QueryClient, runId?: st... function upsertAppSummary (line 198) | function upsertAppSummary(apps: AppSummary[] | undefined, incoming: AppS... function nextRunCount (line 204) | function nextRunCount(apps: AppSummary[] | undefined, appName: string, r... function upsertRun (line 212) | function upsertRun(runs: Run[] | undefined, incoming: Run): Run[] { function upsertTest (line 216) | function upsertTest(tests: Test[] | undefined, incoming: Test): Test[] { function updateCachedRuns (line 220) | function updateCachedRuns(queryClient: QueryClient, runId: string, updat... function updateCachedTests (line 232) | function updateCachedTests( function appendEntries (line 245) | function appendEntries(entries: Entry[] | undefined, incoming: Entry): E... function appendSpan (line 254) | function appendSpan(spans: Span[] | undefined, incoming: Span): Span[] { function mergeSpans (line 263) | function mergeSpans(existing: Span[] | undefined, incoming: Span[]): Spa... function appendSnapshots (line 267) | function appendSnapshots(snapshots: Snapshot[] | undefined, incoming: Sn... function compareRuns (line 281) | function compareRuns(left: Run, right: Run): number { function compareTests (line 285) | function compareTests(left: Test, right: Test): number { function isSameSpan (line 289) | function isSameSpan(left: Span, right: Span): boolean { function findTestIdForTrace (line 293) | function findTestIdForTrace( FILE: tools/stove-cli/spa/src/api/sse.ts type UseSSEOptions (line 4) | interface UseSSEOptions { function useSSE (line 11) | function useSSE({ onEvent, onGap, onReconnect, onDisconnect }: UseSSEOpt... FILE: tools/stove-cli/spa/src/api/types.ts constant EVENT_TYPE (line 5) | const EVENT_TYPE = { type EventType (line 15) | type EventType = (typeof EVENT_TYPE)[keyof typeof EVENT_TYPE]; type AppSummary (line 17) | interface AppSummary { type MetaResponse (line 25) | interface MetaResponse { type LiveRecordId (line 29) | type LiveRecordId = number | string; type Run (line 31) | interface Run { type Test (line 45) | interface Test { type Entry (line 58) | interface Entry { type Span (line 75) | interface Span { type Snapshot (line 92) | interface Snapshot { type LiveRunStartedPayload (line 101) | interface LiveRunStartedPayload { type LiveRunEndedPayload (line 108) | interface LiveRunEndedPayload { type LiveTestStartedPayload (line 117) | interface LiveTestStartedPayload { type LiveTestEndedPayload (line 126) | interface LiveTestEndedPayload { type LiveEntryRecordedPayload (line 134) | interface LiveEntryRecordedPayload { type LiveSpanRecordedPayload (line 150) | interface LiveSpanRecordedPayload { type LiveSnapshotPayload (line 167) | interface LiveSnapshotPayload { type LiveEventBase (line 175) | interface LiveEventBase { type LiveDashboardEvent (line 180) | type LiveDashboardEvent = FILE: tools/stove-cli/spa/src/components/Badge.tsx type BadgeProps (line 5) | interface BadgeProps { function Badge (line 9) | function Badge({ status }: BadgeProps) { type BadgeStyle (line 34) | interface BadgeStyle { constant DARK (line 40) | const DARK: Record = { constant LIGHT (line 48) | const LIGHT: Record = { FILE: tools/stove-cli/spa/src/components/CapturedStateLane.tsx type CapturedStateLaneProps (line 5) | interface CapturedStateLaneProps { function CapturedStateLane (line 10) | function CapturedStateLane({ snapshots, onSelect }: CapturedStateLanePro... function SnapshotLaneCard (line 34) | function SnapshotLaneCard({ FILE: tools/stove-cli/spa/src/components/Detail.tsx type DetailProps (line 3) | interface DetailProps { function Detail (line 9) | function Detail({ label, value, color }: DetailProps) { FILE: tools/stove-cli/spa/src/components/DurationEdge.tsx function DurationEdge (line 6) | function DurationEdge(props: EdgeProps) { FILE: tools/stove-cli/spa/src/components/EntryDetails.tsx function EntryDetails (line 4) | function EntryDetails({ entry }: { entry: Entry }) { FILE: tools/stove-cli/spa/src/components/EntryRow.tsx type EntryRowProps (line 8) | interface EntryRowProps { function EntryRow (line 12) | function EntryRow({ entry }: EntryRowProps) { FILE: tools/stove-cli/spa/src/components/FlowDag.tsx type FlowDagProps (line 24) | interface FlowDagProps { function FlowDag (line 31) | function FlowDag({ nodes, edges, onNodeClick, compact }: FlowDagProps) { FILE: tools/stove-cli/spa/src/components/FlowTab.tsx type FlowTabProps (line 11) | interface FlowTabProps { type FlowMode (line 18) | type FlowMode = "timeline" | "trace"; function modeButtonClass (line 20) | function modeButtonClass(active: boolean): string { function FlowTab (line 28) | function FlowTab({ entries, spans, snapshots, onOpenTraceTab }: FlowTabP... FILE: tools/stove-cli/spa/src/components/GapNode.tsx function GapNode (line 6) | function GapNode({ data }: NodeProps) { FILE: tools/stove-cli/spa/src/components/JsonTree.tsx type JsonTreeProps (line 3) | interface JsonTreeProps { function JsonTree (line 9) | function JsonTree({ value, defaultExpandedDepth = 1, searchQuery = "" }:... type JsonTreeNodeProps (line 23) | interface JsonTreeNodeProps { function JsonTreeNode (line 31) | function JsonTreeNode({ function JsonPrimitive (line 119) | function JsonPrimitive({ value, searchQuery }: { value: unknown; searchQ... function isExpandable (line 159) | function isExpandable(value: unknown): value is Record ... function getChildren (line 163) | function getChildren(value: Record | unknown[]): Array<... function renderCollapsedPreview (line 171) | function renderCollapsedPreview(children: Array<[string, unknown]>, isAr... function HighlightedText (line 184) | function HighlightedText({ text, query }: { text: string; query: string ... function splitByQuery (line 205) | function splitByQuery( function escapeRegExp (line 227) | function escapeRegExp(value: string): string { FILE: tools/stove-cli/spa/src/components/NodePopup.tsx type NodePopupProps (line 6) | interface NodePopupProps { function NodePopup (line 13) | function NodePopup({ entries, traceId, onClose, onOpenTrace }: NodePopup... FILE: tools/stove-cli/spa/src/components/ResultIcon.tsx function ResultIcon (line 3) | function ResultIcon({ result }: { result: string }) { FILE: tools/stove-cli/spa/src/components/SnapshotCards.tsx type SnapshotCardsProps (line 9) | interface SnapshotCardsProps { function SnapshotCards (line 14) | function SnapshotCards({ snapshots, hiddenCount = 0 }: SnapshotCardsProp... function DetailedSnapshotCard (line 55) | function DetailedSnapshotCard({ snapshot, onOpen }: { snapshot: Snapshot... function HiddenSnapshotNotice (line 115) | function HiddenSnapshotNotice({ FILE: tools/stove-cli/spa/src/components/SnapshotMetricTiles.tsx type SnapshotMetricTilesProps (line 3) | interface SnapshotMetricTilesProps { function SnapshotMetricTiles (line 8) | function SnapshotMetricTiles({ metrics, compact = false }: SnapshotMetri... function SnapshotMetricTile (line 22) | function SnapshotMetricTile({ metric, compact }: { metric: SnapshotMetri... function toneStyle (line 54) | function toneStyle(tone: SnapshotMetric["tone"]): { FILE: tools/stove-cli/spa/src/components/SnapshotStateDialog.tsx type SnapshotStateDialogProps (line 14) | interface SnapshotStateDialogProps { function SnapshotStateDialog (line 19) | function SnapshotStateDialog({ snapshot, onClose }: SnapshotStateDialogP... FILE: tools/stove-cli/spa/src/components/SpanTree.tsx type SpanTreeProps (line 7) | interface SpanTreeProps { type SpanNode (line 11) | interface SpanNode { function SpanTree (line 16) | function SpanTree({ spans }: SpanTreeProps) { function SpanNodeView (line 40) | function SpanNodeView({ node, depth }: { node: SpanNode; depth: number }) { function buildTree (line 120) | function buildTree(spans: Span[]): SpanNode[] { FILE: tools/stove-cli/spa/src/components/SysBadge.tsx type SysBadgeProps (line 3) | interface SysBadgeProps { function SysBadge (line 7) | function SysBadge({ system }: SysBadgeProps) { FILE: tools/stove-cli/spa/src/components/SystemNode.tsx function SystemNode (line 10) | function SystemNode({ data }: NodeProps) { FILE: tools/stove-cli/spa/src/components/VersionMismatchBanner.tsx type VersionMismatchBannerProps (line 6) | interface VersionMismatchBannerProps { function VersionMismatchBanner (line 10) | function VersionMismatchBanner({ summary }: VersionMismatchBannerProps) { FILE: tools/stove-cli/spa/src/hooks/useAppData.ts function useAppData (line 10) | function useAppData() { FILE: tools/stove-cli/spa/src/hooks/useTheme.tsx type Theme (line 3) | type Theme = "light" | "dark"; type ThemeContext (line 5) | interface ThemeContext { function ThemeProvider (line 12) | function ThemeProvider({ children }: { children: ReactNode }) { function useTheme (line 29) | function useTheme() { FILE: tools/stove-cli/spa/src/layout/Header.tsx function Header (line 3) | function Header() { FILE: tools/stove-cli/spa/src/layout/Sidebar.tsx constant SIDEBAR_MIN_WIDTH (line 12) | const SIDEBAR_MIN_WIDTH = 240; constant SIDEBAR_MAX_WIDTH (line 13) | const SIDEBAR_MAX_WIDTH = 600; constant SIDEBAR_DEFAULT_WIDTH (line 14) | const SIDEBAR_DEFAULT_WIDTH = 320; constant SIDEBAR_STORAGE_KEY (line 15) | const SIDEBAR_STORAGE_KEY = "stove-sidebar-width"; function loadSidebarWidth (line 17) | function loadSidebarWidth(): number { type SidebarProps (line 26) | interface SidebarProps { function Sidebar (line 37) | function Sidebar({ FILE: tools/stove-cli/spa/src/layout/TestDetail.tsx type TestDetailProps (line 15) | interface TestDetailProps { function TestDetail (line 21) | function TestDetail({ runId, test, liveConnected }: TestDetailProps) { function QueryErrorMessage (line 129) | function QueryErrorMessage({ error, fallback }: { error: unknown; fallba... FILE: tools/stove-cli/spa/src/layout/detail/TabBar.tsx type Tab (line 1) | type Tab = "timeline" | "trace" | "snapshots" | "flow"; type TabDef (line 3) | interface TabDef { type TabBarProps (line 9) | interface TabBarProps { function TabBar (line 15) | function TabBar({ tabs, active, onSelect }: TabBarProps) { FILE: tools/stove-cli/spa/src/layout/detail/TestHeader.tsx type TestHeaderProps (line 5) | interface TestHeaderProps { function TestHeader (line 9) | function TestHeader({ test }: TestHeaderProps) { FILE: tools/stove-cli/spa/src/layout/sidebar/AppPicker.tsx type AppPickerProps (line 3) | interface AppPickerProps { function AppPicker (line 10) | function AppPicker({ apps, mismatchedApps, selectedApp, onSelectApp }: A... FILE: tools/stove-cli/spa/src/layout/sidebar/RunSummary.tsx type RunSummaryProps (line 6) | interface RunSummaryProps { function RunSummary (line 11) | function RunSummary({ run, tests }: RunSummaryProps) { function Stat (line 36) | function Stat({ label, value, color }: { label: string; value: number; c... FILE: tools/stove-cli/spa/src/layout/sidebar/TestFilters.tsx type FilterValue (line 1) | type FilterValue = "all" | "pass" | "fail"; type TestFiltersProps (line 3) | interface TestFiltersProps { function TestFilters (line 10) | function TestFilters({ filter, onFilterChange, search, onSearchChange }:... FILE: tools/stove-cli/spa/src/layout/sidebar/TestListItem.tsx type TestListItemProps (line 5) | interface TestListItemProps { function TestListItem (line 12) | function TestListItem({ test, selected, onSelect, hideSpec }: TestListIt... FILE: tools/stove-cli/spa/src/layout/sidebar/TestTree.tsx type TestTreeProps (line 6) | interface TestTreeProps { type TreeNode (line 12) | interface TreeNode { function TestTree (line 18) | function TestTree({ tests, selectedTestId, onSelectTest }: TestTreeProps) { function buildTree (line 32) | function buildTree(tests: Test[]): Map { function renderNodes (line 63) | function renderNodes( function getNodeAggregateStatus (line 137) | function getNodeAggregateStatus(node: TreeNode): Status { function collectNodeStatuses (line 143) | function collectNodeStatuses(node: TreeNode, out: Status[]): void { function StatusDot (line 152) | function StatusDot({ status }: { status: Status }) { FILE: tools/stove-cli/spa/src/utils/filters.ts function matchesFilter (line 5) | function matchesFilter(test: Test, filter: FilterValue): boolean { function matchesSearch (line 11) | function matchesSearch(test: Test, query: string): boolean { function filterTests (line 21) | function filterTests(tests: Test[], filter: FilterValue, search: string)... FILE: tools/stove-cli/spa/src/utils/flow.ts constant EXECUTION_GAP_THRESHOLD_MS (line 8) | const EXECUTION_GAP_THRESHOLD_MS = 1000; constant ADJACENT_MERGE_WINDOW_MS (line 9) | const ADJACENT_MERGE_WINDOW_MS = 250; constant STEP_NODE_SIZE (line 10) | const STEP_NODE_SIZE = { width: 240, height: 128 }; constant TRACE_NODE_SIZE (line 11) | const TRACE_NODE_SIZE = { width: 240, height: 120 }; constant ARRANGE_NODE_SIZE (line 12) | const ARRANGE_NODE_SIZE = { width: 240, height: 128 }; constant GAP_NODE_SIZE (line 13) | const GAP_NODE_SIZE = { width: 208, height: 96 }; type SystemNodeData (line 15) | interface SystemNodeData extends Record { type GapNodeData (line 30) | interface GapNodeData extends Record { type FlowNodeData (line 39) | type FlowNodeData = SystemNodeData | GapNodeData; type DurationEdgeData (line 41) | interface DurationEdgeData extends Record { type TimelineStepGroup (line 46) | interface TimelineStepGroup { type TimelineStepSpec (line 55) | interface TimelineStepSpec { type TimelineGapSpec (line 60) | interface TimelineGapSpec { type TimelineSpec (line 69) | type TimelineSpec = TimelineStepSpec | TimelineGapSpec; function entriesToDag (line 71) | function entriesToDag(entries: Entry[]): { nodes: Node[]; ... function spansToTraceDag (line 185) | function spansToTraceDag(spans: Span[]): { nodes: Node[]; ... function applyDagreLayout (line 229) | function applyDagreLayout( function getNodeLayoutSize (line 267) | function getNodeLayoutSize(node: Node): { width: number; h... constant DB_SYSTEM_MAP (line 278) | const DB_SYSTEM_MAP: Record = { function detectSystemFromSpan (line 289) | function detectSystemFromSpan(span: Span): string { function createSystemNode (line 305) | function createSystemNode(id: string, data: SystemNodeData): Node { FILE: tools/stove-cli/spa/src/utils/result.ts function isFailed (line 1) | function isFailed(result: string): boolean { function isSuccessful (line 6) | function isSuccessful(result: string): boolean { function getResultTone (line 11) | function getResultTone(result: string): "failed" | "success" | "neutral" { FILE: tools/stove-cli/spa/src/utils/snapshot-state.ts type SnapshotMetric (line 4) | interface SnapshotMetric { type SnapshotPartition (line 11) | interface SnapshotPartition { function hasDetailedSnapshotState (line 16) | function hasDetailedSnapshotState( function getKafkaSnapshotMetrics (line 28) | function getKafkaSnapshotMetrics( function partitionSnapshotsByDetail (line 66) | function partitionSnapshotsByDetail): Status { function collectStatuses (line 17) | function collectStatuses(items: T[], getStatus: (item: T) => Status):... FILE: tools/stove-cli/spa/src/utils/systems.ts type SystemInfo (line 1) | interface SystemInfo { constant SYSTEM_MAP (line 6) | const SYSTEM_MAP: Record = { constant DEFAULT_SYSTEM (line 24) | const DEFAULT_SYSTEM: SystemInfo = { color: "#94a3b8", icon: "\u2022" }; function getSystemInfo (line 26) | function getSystemInfo(name: string): SystemInfo { FILE: tools/stove-cli/spa/src/utils/version-mismatch.ts constant RELEASE_VERSION_PATTERN (line 3) | const RELEASE_VERSION_PATTERN = /^(\d+)\.(\d+)\.(\d+)$/; constant SWITCH_HINT (line 4) | const SWITCH_HINT = "Switch to a mismatched app to see exact remediation."; constant CLI_UPGRADE_COMMAND (line 5) | const CLI_UPGRADE_COMMAND = "brew upgrade Trendyol/trendyol-tap/stove"; type VersionMismatchKind (line 7) | type VersionMismatchKind = "runtime_older" | "cli_older" | "unknown"; type VersionMismatch (line 9) | interface VersionMismatch { type VersionMismatchSummary (line 16) | interface VersionMismatchSummary { type VersionMismatchRemediationStep (line 23) | interface VersionMismatchRemediationStep { type VersionMismatchBannerModel (line 28) | interface VersionMismatchBannerModel { function compareVersions (line 38) | function compareVersions( function summarizeVersionMismatches (line 69) | function summarizeVersionMismatches( function buildVersionMismatchBannerModel (line 96) | function buildVersionMismatchBannerModel( function createVersionMismatch (line 113) | function createVersionMismatch(app: AppSummary, cliVersion: string): Ver... function bannerTitle (line 127) | function bannerTitle(mismatchCount: number): string { function normalizeVersion (line 133) | function normalizeVersion(version: string | null | undefined): string | ... function parseReleaseVersion (line 138) | function parseReleaseVersion(version: string): number[] | null { function remediationStepsForMismatch (line 147) | function remediationStepsForMismatch(mismatch: VersionMismatch): Version... function dependencyAlignmentMessage (line 167) | function dependencyAlignmentMessage(cliVersion: string): string { function installScriptCommand (line 171) | function installScriptCommand(runtimeVersion: string): string { function textStep (line 175) | function textStep(value: string): VersionMismatchRemediationStep { function commandStep (line 179) | function commandStep(value: string): VersionMismatchRemediationStep { FILE: tools/stove-cli/src/config.rs type Config (line 13) | pub struct Config { type StoveCommand (line 50) | pub enum StoveCommand { type SkillsCommand (line 60) | pub enum SkillsCommand { function handle_fresh_start (line 73) | pub fn handle_fresh_start(db_path: &str) -> std::io::Result String { function dirs_fallback (line 99) | fn dirs_fallback() -> std::path::PathBuf { function fresh_start_backs_up_and_deletes_existing_db (line 115) | fn fresh_start_backs_up_and_deletes_existing_db() { function fresh_start_returns_none_when_file_does_not_exist (line 130) | fn fresh_start_returns_none_when_file_does_not_exist() { function fresh_start_skips_in_memory_database (line 140) | fn fresh_start_skips_in_memory_database() { function cli_parses_default_values (line 147) | fn cli_parses_default_values() { function cli_parses_custom_ports (line 157) | fn cli_parses_custom_ports() { function cli_parses_clear_flag (line 166) | fn cli_parses_clear_flag() { function cli_parses_fresh_start_flag (line 173) | fn cli_parses_fresh_start_flag() { function cli_parses_custom_db_path (line 180) | fn cli_parses_custom_db_path() { function cli_defaults_skills_flags_off (line 187) | fn cli_defaults_skills_flags_off() { function cli_parses_update_skills_flag (line 195) | fn cli_parses_update_skills_flag() { function cli_parses_no_skills_check_flag (line 201) | fn cli_parses_no_skills_check_flag() { function cli_parses_skills_install_subcommand (line 207) | fn cli_parses_skills_install_subcommand() { function cli_parses_skills_install_force (line 217) | fn cli_parses_skills_install_force() { FILE: tools/stove-cli/src/error.rs type AppError (line 8) | pub enum AppError { method into_response (line 30) | fn into_response(self) -> axum::response::Response { type Result (line 26) | pub type Result = std::result::Result; FILE: tools/stove-cli/src/grpc/service.rs constant RUN_STARTED (line 23) | pub const RUN_STARTED: &str = "run_started"; constant RUN_ENDED (line 24) | pub const RUN_ENDED: &str = "run_ended"; constant TEST_STARTED (line 25) | pub const TEST_STARTED: &str = "test_started"; constant TEST_ENDED (line 26) | pub const TEST_ENDED: &str = "test_ended"; constant ENTRY_RECORDED (line 27) | pub const ENTRY_RECORDED: &str = "entry_recorded"; constant SPAN_RECORDED (line 28) | pub const SPAN_RECORDED: &str = "span_recorded"; constant SNAPSHOT (line 29) | pub const SNAPSHOT: &str = "snapshot"; type DashboardEventServiceImpl (line 33) | pub struct DashboardEventServiceImpl { method new (line 44) | pub fn new(repository: Arc, sse_manager: Arc) ... method new_with_ingest_config (line 54) | pub fn new_with_ingest_config( method new_with_ingestor (line 65) | pub fn new_with_ingestor( method flush_pending (line 79) | pub async fn flush_pending(&self) -> AppResult<()> { method process_event (line 84) | fn process_event(&self, event: &proto::DashboardEvent) -> std::result:... method prepare_event (line 104) | fn prepare_event( method prepare_run_started (line 144) | fn prepare_run_started( method prepare_run_ended (line 173) | fn prepare_run_ended( method prepare_test_started (line 207) | fn prepare_test_started( method prepare_test_ended (line 242) | fn prepare_test_ended( method prepare_entry_recorded (line 273) | fn prepare_entry_recorded( method prepare_span_recorded (line 329) | fn prepare_span_recorded( method prepare_snapshot (line 397) | fn prepare_snapshot( method live_event (line 426) | fn live_event( method stream_events (line 442) | async fn stream_events( method send_event (line 453) | async fn send_event( type PreparedDashboardEvent (line 462) | struct PreparedDashboardEvent { type LiveState (line 469) | struct LiveState { method clear_run (line 476) | fn clear_run(&mut self, run_id: &str) { function ensure_run_known (line 487) | fn ensure_run_known(state: &LiveState, run_id: &str) -> AppResult<()> { function ensure_test_known (line 497) | fn ensure_test_known(state: &LiveState, run_id: &str, test_id: &str) -> ... function extract_test_id (line 511) | fn extract_test_id(attributes: &HashMap) -> Option RunStatus { function format_timestamp (line 531) | fn format_timestamp(ts: Option<&prost_types::Timestamp>) -> String { function non_empty (line 541) | fn non_empty(value: &str) -> Option { function to_status (line 550) | fn to_status(error: AppError) -> Status { function test_service (line 562) | fn test_service() -> DashboardEventServiceImpl { function ts (line 569) | fn ts(seconds: i64) -> Option { function no_broadcast_on_invalid_event_order (line 574) | async fn no_broadcast_on_invalid_event_order() { function broadcast_fires_before_batch_flush (line 602) | async fn broadcast_fires_before_batch_flush() { function process_run_started_event (line 634) | async fn process_run_started_event() { function process_full_lifecycle (line 661) | async fn process_full_lifecycle() { FILE: tools/stove-cli/src/http/routes/meta.rs type MetaResponse (line 9) | pub struct MetaResponse { type McpMeta (line 15) | pub struct McpMeta { function get_meta (line 22) | pub async fn get_meta(headers: HeaderMap) -> Json { function mcp_endpoint (line 34) | fn mcp_endpoint(headers: &HeaderMap) -> String { FILE: tools/stove-cli/src/http/routes/runs.rs type RunsQuery (line 9) | pub struct RunsQuery { function get_apps (line 13) | pub async fn get_apps( function get_runs (line 20) | pub async fn get_runs( function get_run (line 28) | pub async fn get_run( function clear_all (line 36) | pub async fn clear_all( FILE: tools/stove-cli/src/http/routes/sse.rs function sse_handler (line 15) | pub async fn sse_handler( FILE: tools/stove-cli/src/http/routes/static_files.rs type SpaAssets (line 11) | struct SpaAssets; function static_handler (line 14) | pub async fn static_handler(uri: Uri) -> Response { function is_asset_like_path (line 38) | fn is_asset_like_path(path: &str) -> bool { function detects_asset_like_paths_by_extension (line 47) | fn detects_asset_like_paths_by_extension() { FILE: tools/stove-cli/src/http/routes/tests.rs function get_tests (line 7) | pub async fn get_tests( function get_entries (line 15) | pub async fn get_entries( function get_snapshots (line 23) | pub async fn get_snapshots( function get_test_spans (line 31) | pub async fn get_test_spans( FILE: tools/stove-cli/src/http/routes/traces.rs function get_trace (line 7) | pub async fn get_trace( FILE: tools/stove-cli/src/http/server.rs type AppState (line 13) | pub struct AppState { function create_router (line 20) | pub fn create_router(repository: Arc, sse_manager: Arc Self { type LiveDashboardPayload (line 87) | pub enum LiveDashboardPayload { type LiveRunStartedPayload (line 98) | pub struct LiveRunStartedPayload { type LiveRunEndedPayload (line 106) | pub struct LiveRunEndedPayload { type LiveTestStartedPayload (line 116) | pub struct LiveTestStartedPayload { type LiveTestEndedPayload (line 126) | pub struct LiveTestEndedPayload { type LiveEntryRecordedPayload (line 135) | pub struct LiveEntryRecordedPayload { type LiveSpanRecordedPayload (line 152) | pub struct LiveSpanRecordedPayload { type LiveSnapshotPayload (line 170) | pub struct LiveSnapshotPayload { type EventIngestor (line 179) | pub struct EventIngestor { method new (line 185) | pub fn new(repository: Arc) -> Self { method with_config (line 190) | pub fn with_config( method enqueue (line 205) | pub fn enqueue(&self, event: PersistedDashboardEvent, flush_immediatel... method flush_pending (line 215) | pub async fn flush_pending(&self) -> Result<()> { type IngestCommand (line 227) | enum IngestCommand { function run_ingest_loop (line 237) | async fn run_ingest_loop( function handle_command (line 287) | fn handle_command( function persist_pending (line 311) | fn persist_pending( function live_record_id (line 348) | fn live_record_id(seq: u64) -> i64 { FILE: tools/stove-cli/src/lib.rs constant STOVE_CLI_VERSION (line 9) | pub const STOVE_CLI_VERSION: &str = env!("STOVE_VERSION"); FILE: tools/stove-cli/src/main.rs function main (line 17) | async fn main() -> anyhow::Result<()> { FILE: tools/stove-cli/src/mcp/analysis.rs constant FLUSH_TIMEOUT (line 21) | const FLUSH_TIMEOUT: Duration = Duration::from_millis(500); type ToolOutput (line 24) | pub struct ToolOutput { type Analyzer (line 30) | pub struct Analyzer { method new (line 37) | pub fn new(repository: Arc, ingestor: Option Result<... method flush_pending (line 59) | async fn flush_pending(&self) { method apps (line 67) | fn apps(&self, arguments: Value) -> Result { method runs (line 107) | fn runs(&self, arguments: Value) -> Result { method failures (line 153) | fn failures(&self, arguments: Value) -> Result { method failure_detail (line 210) | fn failure_detail(&self, arguments: Value) -> Result Result { method trace (line 315) | fn trace(&self, arguments: Value) -> Result { method snapshot (line 366) | fn snapshot(&self, arguments: Value) -> Result { method raw_evidence (line 398) | fn raw_evidence(&self, arguments: Value) -> Result { method resolve_test (line 478) | fn resolve_test(&self, run_id: &str, test_id: &str) -> Result<(Run, Te... function selected_runs (line 495) | fn selected_runs( function failure_item (line 512) | fn failure_item(run: &Run, test: &Test) -> Value { function test_json (line 529) | fn test_json(test: &Test) -> Value { function timeline_summary (line 542) | fn timeline_summary(entries: &[Entry], run_id: &str, test_id: &str, max_... function failure_window (line 552) | fn failure_window(entries: &[Entry], max_events: usize) -> Vec<&Entry> { function trace_summary (line 582) | fn trace_summary( function trace_ids_from_entries (line 627) | fn trace_ids_from_entries(entries: &[Entry]) -> Vec { function ranked_trace_ids (line 637) | fn ranked_trace_ids(spans: &[Span], entries: &[Entry]) -> Vec { function critical_path_for_trace (line 662) | fn critical_path_for_trace(spans: &[Span], trace_id: &str, max_spans: us... function compact_event (line 701) | fn compact_event(entry: &Entry) -> Value { function groups_have_running_runs (line 712) | fn groups_have_running_runs(groups: &[Value]) -> bool { function correlated_test_for_trace (line 718) | fn correlated_test_for_trace(repository: &Repository, run: &Run, trace_i... function is_failed_test (line 734) | fn is_failed_test(test: &Test) -> bool { function is_failed_status (line 738) | fn is_failed_status(status: &TestStatus) -> bool { function is_failed_span (line 742) | fn is_failed_span(span: &Span) -> bool { function tool_call (line 750) | pub(super) fn tool_call(tool: ToolName, arguments: Value) -> Value { function exact_test_tool_call (line 757) | fn exact_test_tool_call(tool: ToolName, run_id: &str, test_id: &str) -> ... function tool_args (line 767) | pub(super) fn tool_args(entries: impl IntoIterator Value { function fallback_message (line 785) | fn fallback_message() -> &'static str { function output (line 789) | fn output(structured: Value, heading: &str) -> ToolOutput { function compact_text (line 794) | fn compact_text(value: &Value) -> String { function display_error (line 799) | fn display_error(error: impl std::fmt::Display) -> String { FILE: tools/stove-cli/src/mcp/analysis/evidence.rs function entry_preview (line 6) | pub(super) fn entry_preview(entry: &Entry, max_chars: usize) -> Value { function span_preview (line 29) | pub(super) fn span_preview(span: &Span, max_chars: usize) -> Value { function snapshot_summary (line 46) | pub(super) fn snapshot_summary(snapshot: &Snapshot, max_chars: usize) ->... function snapshot_detail (line 61) | pub(super) fn snapshot_detail( function state_overview (line 94) | fn state_overview(parsed: &Value) -> Value { function parse_state (line 109) | fn parse_state(raw: &str, max_chars: usize) -> Value { function preview_field (line 120) | fn preview_field(raw: Option<&str>, max_chars: usize) -> Value { function redact_value (line 135) | fn redact_value(value: &Value, max_chars: usize) -> Value { function is_sensitive_key (line 161) | fn is_sensitive_key(key: &str) -> bool { function clip_opt (line 177) | pub(super) fn clip_opt(value: Option<&str>, max_chars: usize) -> Value { function clip_string (line 183) | fn clip_string(value: &str, max_chars: usize) -> String { function nanos_to_millis (line 197) | fn nanos_to_millis(nanos: i64) -> f64 { function value_type (line 201) | fn value_type(value: &Value) -> &'static str { function redacts_sensitive_keys_recursively (line 217) | fn redacts_sensitive_keys_recursively() { function clips_long_strings_deterministically (line 233) | fn clips_long_strings_deterministically() { function malformed_json_preview_keeps_parse_error (line 240) | fn malformed_json_preview_keeps_parse_error() { FILE: tools/stove-cli/src/mcp/args.rs constant DEFAULT_LIMIT (line 6) | const DEFAULT_LIMIT: usize = 20; constant MAX_LIMIT (line 7) | const MAX_LIMIT: usize = 100; type CommonArgs (line 10) | pub(crate) struct CommonArgs { method limit (line 17) | pub(crate) fn limit(&self) -> usize { type ListArgs (line 23) | pub(crate) struct ListArgs { method limit (line 29) | pub(crate) fn limit(&self) -> usize { type RunsArgs (line 35) | pub(crate) struct RunsArgs { type FailuresArgs (line 43) | pub(crate) struct FailuresArgs { type ExactTestArgs (line 51) | pub(crate) struct ExactTestArgs { type TimelineArgs (line 59) | pub(crate) struct TimelineArgs { type TraceArgs (line 66) | pub(crate) struct TraceArgs { type SnapshotArgs (line 76) | pub(crate) struct SnapshotArgs { type RawEvidenceArgs (line 84) | pub(crate) struct RawEvidenceArgs { type Budget (line 95) | pub(crate) struct Budget { method from_args (line 105) | pub(crate) fn from_args(name: Option<&str>, max_chars: Option) ... function parse (line 146) | pub(crate) fn parse(arguments: Value) -> Result FILE: tools/stove-cli/src/mcp/contract.rs type MethodName (line 2) | pub(crate) enum MethodName { method from_str (line 10) | pub(crate) fn from_str(value: &str) -> Option { type ToolName (line 22) | pub(crate) enum ToolName { constant ALL (line 34) | pub(crate) const ALL: [Self; 8] = [ method as_str (line 45) | pub(crate) const fn as_str(self) -> &'static str { method from_str (line 58) | pub(crate) fn from_str(value: &str) -> Option { type ArgName (line 64) | pub(crate) enum ArgName { method as_str (line 82) | pub(crate) const fn as_str(self) -> &'static str { type BudgetValue (line 103) | pub(crate) enum BudgetValue { constant ALL (line 110) | pub(crate) const ALL: [Self; 3] = [Self::Tiny, Self::Compact, Self::Fu... method as_str (line 112) | pub(crate) const fn as_str(self) -> &'static str { method from_str (line 120) | pub(crate) fn from_str(value: &str) -> Option { type TimelineFocus (line 128) | pub(crate) enum TimelineFocus { constant ALL (line 134) | pub(crate) const ALL: [Self; 2] = [Self::Failure, Self::All]; method as_str (line 136) | pub(crate) const fn as_str(self) -> &'static str { type TraceView (line 145) | pub(crate) enum TraceView { constant ALL (line 152) | pub(crate) const ALL: [Self; 3] = [Self::CriticalPath, Self::Exception... method as_str (line 154) | pub(crate) const fn as_str(self) -> &'static str { type RawEvidenceKind (line 164) | pub(crate) enum RawEvidenceKind { constant ALL (line 171) | pub(crate) const ALL: [Self; 3] = [Self::Entry, Self::Span, Self::Snap... method as_str (line 173) | pub(crate) const fn as_str(self) -> &'static str { method from_str (line 181) | pub(crate) fn from_str(value: &str) -> Option { type RunStatusValue (line 187) | pub(crate) enum RunStatusValue { constant ALL (line 194) | pub(crate) const ALL: [Self; 3] = [Self::Running, Self::Passed, Self::... method as_str (line 196) | pub(crate) const fn as_str(self) -> &'static str { constant STATUS_ERROR (line 205) | pub(crate) const STATUS_ERROR: &str = "ERROR"; FILE: tools/stove-cli/src/mcp/mod.rs function handle_get (line 22) | pub async fn handle_get( function handle_post (line 40) | pub async fn handle_post( function handle_request (line 78) | async fn handle_request(state: AppState, request: JsonRpcRequest) -> Res... FILE: tools/stove-cli/src/mcp/protocol.rs constant PROTOCOL_VERSION (line 9) | const PROTOCOL_VERSION: &str = "2025-06-18"; function initialize_result (line 11) | pub(crate) fn initialize_result() -> Value { function tool_result (line 28) | pub(crate) fn tool_result(output: ToolOutput) -> Value { function rpc_result (line 42) | pub(crate) fn rpc_result(id: Option, result: Value) -> Response { function rpc_error (line 50) | pub(crate) fn rpc_error( type JsonRpcRequest (line 77) | pub(crate) struct JsonRpcRequest { type ToolCallParams (line 84) | pub(crate) struct ToolCallParams { type RpcError (line 89) | pub(crate) struct RpcError { method invalid_params (line 96) | pub(crate) fn invalid_params(message: String) -> Self { method method_not_found (line 104) | pub(crate) fn method_not_found(message: String) -> Self { method tool_error (line 112) | pub(crate) fn tool_error(message: String) -> Self { FILE: tools/stove-cli/src/mcp/security.rs function validate_accept_header (line 9) | pub(crate) fn validate_accept_header(headers: &HeaderMap) -> Option Response { function host_without_port (line 64) | fn host_without_port(host: &str) -> Option { function origin_host (line 75) | fn origin_host(origin: &str) -> Option { function is_loopback_host (line 81) | fn is_loopback_host(host: &str) -> bool { function host_parser_handles_ipv6_loopback (line 93) | fn host_parser_handles_ipv6_loopback() { function origin_parser_rejects_remote_hosts (line 99) | fn origin_parser_rejects_remote_hosts() { FILE: tools/stove-cli/src/mcp/tools.rs function definitions (line 7) | pub(crate) fn definitions() -> Value { type ToolSpec (line 17) | struct ToolSpec { method for_tool (line 24) | fn for_tool(tool: ToolName) -> Self { method to_json (line 111) | fn to_json(&self) -> Value { type InputSchema (line 120) | struct InputSchema { method from_fields (line 125) | fn from_fields(fields: &[FieldSpec]) -> Self { method to_json (line 131) | fn to_json(&self) -> Value { type FieldSpec (line 150) | struct FieldSpec { method string (line 159) | fn string(name: ArgName) -> Self { method string_enum (line 163) | fn string_enum(name: ArgName, enum_kind: SchemaEnum) -> Self { method integer (line 167) | fn integer(name: ArgName) -> Self { method limit (line 171) | fn limit() -> Self { method budget (line 178) | fn budget() -> Self { method max_chars (line 183) | fn max_chars() -> Self { method new (line 190) | fn new(name: ArgName, kind: FieldKind) -> Self { method required (line 200) | fn required(mut self) -> Self { method description (line 205) | fn description(mut self, description: &'static str) -> Self { method string_default (line 210) | fn string_default(mut self, default: &'static str) -> Self { method integer_default (line 215) | fn integer_default(mut self, default: i64) -> Self { method minimum (line 220) | fn minimum(mut self, minimum: i64) -> Self { method maximum (line 232) | fn maximum(mut self, maximum: i64) -> Self { method property_entry (line 244) | fn property_entry(&self) -> (String, Value) { type FieldKind (line 275) | enum FieldKind { type SchemaEnum (line 286) | enum SchemaEnum { method values (line 295) | fn values(self) -> Vec<&'static str> { function list_fields (line 318) | fn list_fields() -> Vec { function exact_test_fields (line 326) | fn exact_test_fields() -> Vec { function with_extra (line 339) | fn with_extra(mut fields: Vec, field: FieldSpec) -> Vec anyhow::Result SyncAc... function apply_install (line 118) | fn apply_install(target: &Path, remote: &RemoteSkills) { function install_skills_command (line 130) | async fn install_skills_command(force: bool) -> anyhow::Result<()> { function current_git_root (line 157) | fn current_git_root() -> Option { function find_git_root (line 165) | pub fn find_git_root(start: &Path) -> Option { function resolve_local_target (line 177) | pub fn resolve_local_target(root: &Path) -> PathBuf { type RemoteSkills (line 187) | pub struct RemoteSkills { method is_empty (line 193) | pub fn is_empty(&self) -> bool { method len (line 198) | pub fn len(&self) -> usize { method iter (line 202) | pub fn iter(&self) -> impl Iterator)> { type ContentsEntry (line 208) | struct ContentsEntry { function fetch_remote_skills (line 219) | async fn fetch_remote_skills() -> anyhow::Result { function fetch_remote_skills_for_path (line 235) | async fn fetch_remote_skills_for_path( function skills_match (line 288) | pub fn skills_match(target: &Path, remote: &RemoteSkills) -> bool { function read_local_files (line 295) | fn read_local_files(target: &Path) -> Option>> { function install_skills (line 316) | pub fn install_skills(target: &Path, remote: &RemoteSkills) -> anyhow::R... function write_staging (line 334) | fn write_staging(staging: &Path, remote: &RemoteSkills) -> anyhow::Resul... function swap_into_place (line 344) | fn swap_into_place(staging: &Path, target: &Path, aside: &Path) -> anyho... function prompt_yes_no (line 367) | fn prompt_yes_no(message: &str) -> anyhow::Result { function remote_with (line 384) | fn remote_with(files: &[(&str, &[u8])]) -> RemoteSkills { function find_git_root_detects_directory (line 394) | fn find_git_root_detects_directory() { function find_git_root_detects_file_marker (line 405) | fn find_git_root_detects_file_marker() { function find_git_root_returns_none_when_absent (line 416) | fn find_git_root_returns_none_when_absent() { function resolve_local_target_prefers_existing_agents (line 424) | fn resolve_local_target_prefers_existing_agents() { function resolve_local_target_falls_back_to_claude (line 435) | fn resolve_local_target_falls_back_to_claude() { function resolve_local_target_defaults_to_agents_when_none_exist (line 445) | fn resolve_local_target_defaults_to_agents_when_none_exist() { function skills_match_detects_missing_target (line 452) | fn skills_match_detects_missing_target() { function skills_match_returns_true_for_identical_dirs (line 460) | fn skills_match_returns_true_for_identical_dirs() { function skills_match_detects_content_drift (line 472) | fn skills_match_detects_content_drift() { function skills_match_detects_extra_local_file (line 482) | fn skills_match_detects_extra_local_file() { function install_skills_creates_target_when_missing (line 493) | fn install_skills_creates_target_when_missing() { function install_skills_replaces_existing_target (line 505) | fn install_skills_replaces_existing_target() { function install_skills_cleans_up_staging_artifacts (line 521) | fn install_skills_cleans_up_staging_artifacts() { FILE: tools/stove-cli/src/sse/manager.rs type SseManager (line 7) | pub struct SseManager { method new (line 13) | pub fn new() -> Self { method broadcast (line 21) | pub fn broadcast(&self, json: &str) { method subscribe (line 29) | pub fn subscribe(&self) -> broadcast::Receiver { method default (line 35) | fn default() -> Self { FILE: tools/stove-cli/src/storage/database.rs constant MIGRATIONS (line 9) | const MIGRATIONS: &[(&str, &str)] = &[ type Database (line 25) | pub struct Database { method open (line 35) | pub fn open(path: &str) -> Result { method conn (line 50) | pub fn conn(&self) -> &Connection { method conn_mut (line 55) | pub fn conn_mut(&mut self) -> &mut Connection { method open_peer (line 63) | pub fn open_peer(&self) -> Result { function run_migrations (line 78) | fn run_migrations(conn: &Connection) -> Result<()> { function normalize_db_path (line 114) | fn normalize_db_path(path: &str) -> (String, bool) { function open_connection (line 126) | fn open_connection(path: &str, use_uri: bool) -> Result { function apply_pragmas (line 140) | fn apply_pragmas(conn: &Connection, path: &str) -> Result<()> { function open_in_memory_succeeds_and_creates_tables (line 157) | fn open_in_memory_succeeds_and_creates_tables() { function migrations_are_idempotent (line 177) | fn migrations_are_idempotent() { function open_upgrades_v1_database_with_run_stove_version_column (line 193) | fn open_upgrades_v1_database_with_run_stove_version_column() { FILE: tools/stove-cli/src/storage/migrations/V1__initial_schema.sql type runs (line 1) | CREATE TABLE IF NOT EXISTS runs ( type tests (line 14) | CREATE TABLE IF NOT EXISTS tests ( type entries (line 28) | CREATE TABLE IF NOT EXISTS entries ( type spans (line 46) | CREATE TABLE IF NOT EXISTS spans ( type snapshots (line 64) | CREATE TABLE IF NOT EXISTS snapshots ( type idx_tests_run_id (line 74) | CREATE INDEX IF NOT EXISTS idx_tests_run_id ON tests(run_id) type idx_entries_run_test (line 75) | CREATE INDEX IF NOT EXISTS idx_entries_run_test ON entries(run_id, test_id) type idx_spans_run_id (line 76) | CREATE INDEX IF NOT EXISTS idx_spans_run_id ON spans(run_id) type idx_spans_trace_id (line 77) | CREATE INDEX IF NOT EXISTS idx_spans_trace_id ON spans(trace_id) type idx_snapshots_run_test (line 78) | CREATE INDEX IF NOT EXISTS idx_snapshots_run_test ON snapshots(run_id, t... type idx_runs_app_name (line 79) | CREATE INDEX IF NOT EXISTS idx_runs_app_name ON runs(app_name) FILE: tools/stove-cli/src/storage/models.rs type RunStatus (line 8) | pub enum RunStatus { method fmt (line 31) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { type Err (line 18) | type Err = String; method from_str (line 20) | fn from_str(s: &str) -> Result { type TestStatus (line 42) | pub enum TestStatus { method fmt (line 68) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { type Err (line 54) | type Err = String; method from_str (line 56) | fn from_str(s: &str) -> Result { type AppSummary (line 80) | pub struct AppSummary { type Run (line 90) | pub struct Run { type Test (line 106) | pub struct Test { type Entry (line 121) | pub struct Entry { type Span (line 140) | pub struct Span { type Snapshot (line 159) | pub struct Snapshot { type NewEntry (line 172) | pub struct NewEntry { type NewSpan (line 190) | pub struct NewSpan { FILE: tools/stove-cli/src/storage/repository.rs type Repository (line 15) | pub struct Repository { method new (line 21) | pub fn new(db: Database) -> Self { method lock_write_db (line 31) | fn lock_write_db(&self) -> MutexGuard<'_, Database> { method lock_read_db (line 35) | fn lock_read_db(&self) -> MutexGuard<'_, Database> { method save_run_start (line 41) | pub fn save_run_start( method save_run_start_with_version (line 51) | pub fn save_run_start_with_version( method save_run_end (line 71) | pub fn save_run_end( method save_test_start (line 93) | pub fn save_test_start( method save_test_end (line 115) | pub fn save_test_end( method save_entry (line 137) | pub fn save_entry(&self, entry: &NewEntry) -> Result<()> { method save_span (line 143) | pub fn save_span(&self, span: &NewSpan) -> Result<()> { method save_snapshot (line 149) | pub fn save_snapshot( method clear_all (line 162) | pub fn clear_all(&self) -> Result<()> { method apply_persisted_events (line 170) | pub fn apply_persisted_events(&self, events: &[PersistedDashboardEvent... method get_apps (line 182) | pub fn get_apps(&self) -> Result> { method get_runs (line 211) | pub fn get_runs(&self, app_name: Option<&str>) -> Result> { method get_run (line 227) | pub fn get_run(&self, run_id: &str) -> Result> { method get_tests_for_run (line 235) | pub fn get_tests_for_run(&self, run_id: &str) -> Result> { method get_entries (line 247) | pub fn get_entries(&self, run_id: &str, test_id: &str) -> Result Resul... method get_trace (line 283) | pub fn get_trace(&self, trace_id: &str) -> Result> { method get_snapshots (line 295) | pub fn get_snapshots(&self, run_id: &str, test_id: &str) -> Result Resul... function save_span_on (line 473) | fn save_span_on(conn: &rusqlite::Connection, span: &NewSpan) -> Result<(... function save_snapshot_on (line 495) | fn save_snapshot_on( constant RUN_COLUMNS (line 512) | const RUN_COLUMNS: &str = "id, app_name, started_at, ended_at, status, t... constant SPAN_COLUMNS (line 513) | const SPAN_COLUMNS: &str = "id, run_id, trace_id, span_id, parent_span_i... function non_empty (line 518) | fn non_empty(s: &str) -> Option<&str> { function parse_run_status (line 523) | fn parse_run_status(s: &str) -> RunStatus { function parse_test_status (line 528) | fn parse_test_status(s: &str) -> TestStatus { function run_from_row (line 532) | fn run_from_row(row: &rusqlite::Row<'_>) -> rusqlite::Result { function test_from_row (line 550) | fn test_from_row(row: &rusqlite::Row<'_>) -> rusqlite::Result { function entry_from_row (line 567) | fn entry_from_row(row: &rusqlite::Row<'_>) -> rusqlite::Result { function snapshot_from_row (line 586) | fn snapshot_from_row(row: &rusqlite::Row<'_>) -> rusqlite::Result) -> rusqlite::Result { function test_repo (line 621) | fn test_repo() -> Repository { function full_event_lifecycle (line 626) | fn full_event_lifecycle() { function latest_app_version_comes_from_latest_run (line 745) | fn latest_app_version_comes_from_latest_run() { function get_runs_filters_by_app_name (line 774) | fn get_runs_filters_by_app_name() { function clear_all_removes_everything (line 792) | fn clear_all_removes_everything() { function get_apps_returns_single_latest_run_when_started_at_ties (line 808) | fn get_apps_returns_single_latest_run_when_started_at_ties() { function get_runs_orders_same_timestamp_runs_by_latest_inserted_first (line 826) | fn get_runs_orders_same_timestamp_runs_by_latest_inserted_first() { function get_spans_for_test_does_not_cross_match_similar_test_ids (line 843) | fn get_spans_for_test_does_not_cross_match_similar_test_ids() { FILE: tools/stove-cli/tests/api_e2e.rs function ts (line 21) | fn ts(seconds: i64, nanos: i32) -> Option { function run_started_event (line 25) | fn run_started_event( function run_started_event_with_version (line 34) | fn run_started_event_with_version( function run_ended_event (line 54) | fn run_ended_event( function test_started_event (line 77) | fn test_started_event( function test_ended_event (line 99) | fn test_ended_event( function entry_recorded_event (line 122) | fn entry_recorded_event( function span_recorded_event (line 152) | fn span_recorded_event( function snapshot_event (line 181) | fn snapshot_event( function send_event (line 201) | async fn send_event( function flush_events (line 210) | async fn flush_events(service: &DashboardEventServiceImpl) { function extract_sse_data_frame (line 217) | fn extract_sse_data_frame(frame: &str) -> Option { function next_sse_data (line 230) | async fn next_sse_data( function meta_returns_cli_version (line 254) | async fn meta_returns_cli_version() { function apps_returns_empty_when_no_data (line 270) | async fn apps_returns_empty_when_no_data() { function apps_returns_app_summaries (line 278) | async fn apps_returns_app_summaries() { function apps_returns_multiple_apps (line 293) | async fn apps_returns_multiple_apps() { function apps_return_latest_run_stove_version (line 311) | async fn apps_return_latest_run_stove_version() { function runs_returns_all_runs (line 340) | async fn runs_returns_all_runs() { function runs_return_stove_version (line 363) | async fn runs_return_stove_version() { function runs_filters_by_app_name (line 374) | async fn runs_filters_by_app_name() { function runs_returns_empty_for_unknown_app (line 386) | async fn runs_returns_empty_for_unknown_app() { function get_run_returns_single_run (line 399) | async fn get_run_returns_single_run() { function get_run_returns_null_for_unknown_id (line 411) | async fn get_run_returns_null_for_unknown_id() { function get_tests_returns_tests_for_run (line 423) | async fn get_tests_returns_tests_for_run() { function get_tests_returns_empty_for_unknown_run (line 443) | async fn get_tests_returns_empty_for_unknown_run() { function concurrent_running_tests_are_visible_via_api_while_run_is_in_progress (line 451) | async fn concurrent_running_tests_are_visible_via_api_while_run_is_in_pr... function concurrent_interleaved_test_lifecycle_remains_isolated_across_api_views (line 568) | async fn concurrent_interleaved_test_lifecycle_remains_isolated_across_a... function get_entries_returns_entries_for_test (line 819) | async fn get_entries_returns_entries_for_test() { function get_entries_isolates_by_test_id (line 835) | async fn get_entries_isolates_by_test_id() { function get_entries_returns_empty_for_unknown_test (line 848) | async fn get_entries_returns_empty_for_unknown_test() { function get_test_spans_returns_spans_linked_via_trace_id (line 863) | async fn get_test_spans_returns_spans_linked_via_trace_id() { function get_test_spans_returns_empty_when_no_trace_linked (line 877) | async fn get_test_spans_returns_empty_when_no_trace_linked() { function get_test_spans_returns_spans_linked_via_attribute (line 887) | async fn get_test_spans_returns_spans_linked_via_attribute() { function get_test_spans_does_not_cross_match_similar_test_ids_in_attributes (line 927) | async fn get_test_spans_does_not_cross_match_similar_test_ids_in_attribu... function get_test_spans_combines_entry_and_attribute_linked_traces (line 955) | async fn get_test_spans_combines_entry_and_attribute_linked_traces() { function get_test_spans_returns_full_trace_when_one_span_has_attribute (line 1011) | async fn get_test_spans_returns_full_trace_when_one_span_has_attribute() { function get_test_spans_ordered_by_start_time (line 1062) | async fn get_test_spans_ordered_by_start_time() { function get_test_spans_includes_exception_data (line 1124) | async fn get_test_spans_includes_exception_data() { function get_test_spans_isolates_between_tests (line 1173) | async fn get_test_spans_isolates_between_tests() { function get_snapshots_returns_snapshots_for_test (line 1204) | async fn get_snapshots_returns_snapshots_for_test() { function get_snapshots_returns_empty_for_test_without_snapshots (line 1220) | async fn get_snapshots_returns_empty_for_test_without_snapshots() { function get_snapshots_returns_multiple_systems (line 1229) | async fn get_snapshots_returns_multiple_systems() { function get_snapshots_isolates_between_tests (line 1271) | async fn get_snapshots_isolates_between_tests() { function snapshot_state_json_preserves_complex_json (line 1294) | async fn snapshot_state_json_preserves_complex_json() { function get_trace_returns_all_spans_for_trace (line 1314) | async fn get_trace_returns_all_spans_for_trace() { function get_trace_returns_empty_for_unknown_trace (line 1330) | async fn get_trace_returns_empty_for_unknown_trace() { function sse_endpoint_returns_200_with_event_stream_content_type (line 1342) | async fn sse_endpoint_returns_200_with_event_stream_content_type() { function sse_stream_pushes_full_events_before_database_flush (line 1360) | async fn sse_stream_pushes_full_events_before_database_flush() { function sse_broadcast_data_is_readable_after_notification (line 1427) | async fn sse_broadcast_data_is_readable_after_notification() { function sse_stream_sends_keep_alive (line 1461) | async fn sse_stream_sends_keep_alive() { function sse_stream_delivers_interleaved_notifications_for_concurrent_test_load (line 1485) | async fn sse_stream_delivers_interleaved_notifications_for_concurrent_te... function cors_headers_are_present (line 1675) | async fn cors_headers_are_present() { function in_progress_run_has_running_status (line 1690) | async fn in_progress_run_has_running_status() { function spa_fallback_serves_index_html_for_unknown_paths (line 1708) | async fn spa_fallback_serves_index_html_for_unknown_paths() { function missing_spa_assets_return_404_instead_of_index_html (line 1726) | async fn missing_spa_assets_return_404_instead_of_index_html() { function runs_are_ordered_by_started_at_desc (line 1739) | async fn runs_are_ordered_by_started_at_desc() { function runs_with_same_started_at_use_latest_inserted_as_tie_breaker (line 1752) | async fn runs_with_same_started_at_use_latest_inserted_as_tie_breaker() { function apps_returns_latest_run_id_for_multi_run_app (line 1766) | async fn apps_returns_latest_run_id_for_multi_run_app() { function apps_does_not_duplicate_app_when_latest_runs_share_same_timestamp (line 1779) | async fn apps_does_not_duplicate_app_when_latest_runs_share_same_timesta... FILE: tools/stove-cli/tests/common/mod.rs type TestServer (line 20) | pub struct TestServer { method start (line 29) | pub async fn start() -> Self { method start_with_ingestor (line 59) | pub async fn start_with_ingestor() -> (Self, EventIngestor) { method url (line 95) | pub fn url(&self, path: &str) -> String { method mcp_url (line 99) | pub fn mcp_url(&self) -> String { method get (line 103) | pub async fn get(&self, path: &str) -> reqwest::Response { method get_json (line 112) | pub async fn get_json(&self, path: &str) -> Value { method seed_run (line 127) | pub fn seed_run(&self, run_id: &str, app_name: &str) { method seed_run_with_version (line 131) | pub fn seed_run_with_version(&self, run_id: &str, app_name: &str, stov... method seed_run_at (line 142) | pub fn seed_run_at(&self, run_id: &str, app_name: &str, started_at: &s... method seed_run_at_with_version (line 146) | pub fn seed_run_at_with_version( method end_run (line 162) | pub fn end_run(&self, run_id: &str, passed: i32, failed: i32, duration... method seed_test (line 177) | pub fn seed_test(&self, run_id: &str, test_id: &str, name: &str, spec:... method end_test (line 185) | pub fn end_test(&self, run_id: &str, test_id: &str, duration_ms: i64) { method end_test_failed (line 200) | pub fn end_test_failed(&self, run_id: &str, test_id: &str, duration_ms... method seed_entry (line 215) | pub fn seed_entry(&self, run_id: &str, test_id: &str, system: &str, ac... method seed_entry_full (line 223) | pub fn seed_entry_full( method seed_span (line 258) | pub fn seed_span( method seed_span_timed (line 287) | pub fn seed_span_timed( method seed_span_with_exception (line 319) | pub fn seed_span_with_exception( method seed_snapshot (line 353) | pub fn seed_snapshot( method seed_full_run (line 371) | pub fn seed_full_run(&self) { FILE: tools/stove-cli/tests/mcp_e2e.rs function mcp_call (line 13) | async fn mcp_call(server: &TestServer, method: &str, params: Value) -> V... function mcp_tool (line 31) | async fn mcp_tool(server: &TestServer, name: &str, arguments: Value) -> ... function mcp_lists_tools_and_initializes (line 44) | async fn mcp_lists_tools_and_initializes() { function failures_are_grouped_by_app_and_run_with_exact_detail_calls (line 71) | async fn failures_are_grouped_by_app_and_run_with_exact_detail_calls() { function failure_detail_includes_timeline_trace_and_snapshot_summaries (line 92) | async fn failure_detail_includes_timeline_trace_and_snapshot_summaries() { function mcp_handles_no_failures_and_caps_oversized_detail (line 180) | async fn mcp_handles_no_failures_and_caps_oversized_detail() { function mcp_flushes_pending_ingest_before_reads (line 246) | async fn mcp_flushes_pending_ingest_before_reads() { function mcp_rejects_non_local_host_headers (line 271) | async fn mcp_rejects_non_local_host_headers() { function seed_multi_app_failures (line 290) | fn seed_multi_app_failures(server: &TestServer) { function send_event (line 347) | async fn send_event(service: &DashboardEventServiceImpl, event: proto::D... function timestamp (line 353) | fn timestamp() -> Option { function run_started (line 360) | fn run_started(run_id: &str, app_name: &str) -> proto::DashboardEvent { function test_started (line 374) | fn test_started(run_id: &str, test_id: &str) -> proto::DashboardEvent { function test_ended_failed (line 389) | fn test_ended_failed(run_id: &str, test_id: &str) -> proto::DashboardEve...