Skip to content

Make graph draw feature async#782

Merged
kyasbal merged 2 commits into
GoogleCloudPlatform:epic/file-schema-v6from
kyasbal:push-zutxvsvzqxlm
Jun 18, 2026
Merged

Make graph draw feature async#782
kyasbal merged 2 commits into
GoogleCloudPlatform:epic/file-schema-v6from
kyasbal:push-zutxvsvzqxlm

Conversation

@kyasbal

@kyasbal kyasbal commented Jun 18, 2026

Copy link
Copy Markdown
Member

Added TaskYielder generic class to process large data in main thread without freezing.
The graph view was easy to become irresponsible. This change fix this behavior.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces cooperative yielding in heavy synchronous loops to prevent UI freezing during architecture graph generation. It implements a TaskYielder utility supporting AbortSignal cancellation, refactors GraphDataConverterService to be asynchronous, and updates the UI components to handle and display a loading state using Angular's resource API. The review feedback suggests defining a custom CancellationError class instead of using DOMException for aborted operations, updating the corresponding tests, and using absolute import paths instead of relative paths in the test file.

Comment thread web/src/app/utils/task-yielder.ts
Comment thread web/src/app/utils/task-yielder.ts
Comment thread web/src/app/utils/task-yielder.spec.ts Outdated
Comment thread web/src/app/utils/task-yielder.spec.ts Outdated
@kyasbal kyasbal force-pushed the push-zutxvsvzqxlm branch from 2772a3c to 18a2183 Compare June 18, 2026 14:28
@kyasbal kyasbal marked this pull request as ready for review June 18, 2026 14:45
@kyasbal kyasbal merged commit 2d4d194 into GoogleCloudPlatform:epic/file-schema-v6 Jun 18, 2026
10 checks passed
@kyasbal kyasbal deleted the push-zutxvsvzqxlm branch June 18, 2026 14:45
pull Bot pushed a commit to TheTechOddBug/khi that referenced this pull request Jun 19, 2026
* feat(proto): add proto definitions and build setup for file schema v6 migration (GoogleCloudPlatform#618)

* feat(proto): add proto definitions and build setup for file schema v7 migration

- Add Protobuf definitions for KHI file schema v7 (split into shared.proto, style.proto, timeline.proto, etc.) to migrate from the previous JSON-based file format.

- Set up Buf configuration (buf.yaml, buf.gen.yaml) to generate Go and TypeScript code.

- Add `proto-gen` target to `scripts/make/codegen.mk` using `npx @bufbuild/buf` to support the new build process.

- Generate Go code in `pkg/generated/khifile/` and TypeScript code in `web/src/app/generated/`.

* fixed typos on proto fields

* Specified proto rule and build target

* Rebuild the generated files from the updated proto

* Added linguist-generated for ignoreing generated files by proto

* fix reviewed points and lint error

* fix version number

* Skip proto breaking change check until it's merged

* Fixed shared type names

* fix typos on comments

* feat: update InternedValue proto to have int64 value (GoogleCloudPlatform#623)

* Adding KHI file schema v6 namespaced ID generator (GoogleCloudPlatform#621)

* feat: update InternedValue proto to have int64 value

* Adding KHI file schema v6 namespaced ID generator

* Adding generated files I forgot to push (GoogleCloudPlatform#626)

* feat: update InternedValue proto to have int64 value

* Adding KHI file schema v6 namespaced ID generator

* Adding generated files I forgot to push

* Rolling back GoogleCloudPlatform#626 (GoogleCloudPlatform#627)

* feat: update InternedValue proto to have int64 value

* Adding KHI file schema v6 namespaced ID generator

* Adding generated files I forgot to push

* Fix the lint thing on the generated codes

* feat(web): add v6 parser foundation (errors and interfaces) (GoogleCloudPlatform#628)

* Adding interning utility for file schema version v6 (GoogleCloudPlatform#622)

* feat: update InternedValue proto to have int64 value

* Adding KHI file schema v6 namespaced ID generator

* Adding generated files I forgot to push

* Fix the lint thing on the generated codes

* Adding interning utility used in khi file format v6

* feat(khifile): implement v6 chunk container writer and reader (GoogleCloudPlatform#624)

* Adding serializer/deserializer for InternedStruct (GoogleCloudPlatform#631)

* Add LogAccumulator storing all logs before serializing them into the (GoogleCloudPlatform#633)

khifile

* Add TimelinePath utilities and IDNamespace used for timeline types (GoogleCloudPlatform#632)

* feat(web): add v6 parser binary reader and parser (GoogleCloudPlatform#630)

* feat(web): add v6 parser binary reader and streamer

* address review comments

* Added serializer for timeline registry to flush contents as proto (GoogleCloudPlatform#634)

* Added interned pool types and struct decoder (GoogleCloudPlatform#640)

* Merge main into epic/file-schema-v6 (GoogleCloudPlatform#648)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* feat: Adding TimelineStyleRegistry (GoogleCloudPlatform#639)

* Added style related domain stores (GoogleCloudPlatform#658)

* Adding metadata accumulator (GoogleCloudPlatform#646)

* Change input of style registration not to depend on proto (GoogleCloudPlatform#656)

* Adding KHI file format spec and serializer/deserializer spec (GoogleCloudPlatform#650)

* Merge main into epic/file-schema-v6 (GoogleCloudPlatform#666)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix bugs to register the CSM TD parser tasks (GoogleCloudPlatform#647)

* Fix the same issue of GoogleCloudPlatform#638 (GoogleCloudPlatform#659)

* Adding make clean command (GoogleCloudPlatform#651)

* Addming make clean command

* fixed commented points

* Removing unused old headers on frontend (GoogleCloudPlatform#660)

* removed prefix 'v2' in shader files (GoogleCloudPlatform#661)

* rename commonlogk8sauditv2 to commonlogk8saudit (GoogleCloudPlatform#662)

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* improve ts coding rule (GoogleCloudPlatform#667)

* Merge main branch into epic/file-schema-v6 (GoogleCloudPlatform#670)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix bugs to register the CSM TD parser tasks (GoogleCloudPlatform#647)

* Fix the same issue of GoogleCloudPlatform#638 (GoogleCloudPlatform#659)

* Adding make clean command (GoogleCloudPlatform#651)

* Addming make clean command

* fixed commented points

* Removing unused old headers on frontend (GoogleCloudPlatform#660)

* removed prefix 'v2' in shader files (GoogleCloudPlatform#661)

* rename commonlogk8sauditv2 to commonlogk8saudit (GoogleCloudPlatform#662)

* fixed the flaky backend test due to race condition (GoogleCloudPlatform#665)

* improved sticky header to show resource layer (GoogleCloudPlatform#663)

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Removed InternedStuctDTO (GoogleCloudPlatform#664)

This type is duplication of the pb.InternedStruct.
It's internal type of the domain store but its a shared proto type which
is expected not to change by file version update.

* add v6 khi file builder (GoogleCloudPlatform#652)

* Add listing methods in style-store (GoogleCloudPlatform#668)

* Added log related domain stores (GoogleCloudPlatform#641)

* Updated the frontend-codegen to generate icon list from registered styles (GoogleCloudPlatform#672)

* Adding color helper functions and better validation on style (GoogleCloudPlatform#673)

registration

* Merge main into epic/file-schema-v6 (GoogleCloudPlatform#683)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix bugs to register the CSM TD parser tasks (GoogleCloudPlatform#647)

* Fix the same issue of GoogleCloudPlatform#638 (GoogleCloudPlatform#659)

* Adding make clean command (GoogleCloudPlatform#651)

* Addming make clean command

* fixed commented points

* Removing unused old headers on frontend (GoogleCloudPlatform#660)

* removed prefix 'v2' in shader files (GoogleCloudPlatform#661)

* rename commonlogk8sauditv2 to commonlogk8saudit (GoogleCloudPlatform#662)

* fixed the flaky backend test due to race condition (GoogleCloudPlatform#665)

* improved sticky header to show resource layer (GoogleCloudPlatform#663)

* Removed redundant v from the version string (GoogleCloudPlatform#671)

* bugfix: automatic log scroll is not matching to the actual element (GoogleCloudPlatform#675)

* bugfix: ignore changing selected timeline when user clicked a log from log list (GoogleCloudPlatform#674)

* bugfix: automatic scroll to the beginning time of log query when user selected a timeline without point to a log (GoogleCloudPlatform#676)

* bugfix: scaling around right edge of query duration may be clipped to jump to other timing (GoogleCloudPlatform#677)

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Define log type and severity timeline style variables (GoogleCloudPlatform#685)

* Add some style fields in TimelineType (GoogleCloudPlatform#684)

* Add core timeline domain models and timeline store (GoogleCloudPlatform#682)

* Adding the InspectionDataBuilder to build the domain layer (GoogleCloudPlatform#643)

* updated tests for the updated style.proto

* Adding the InspectionDataBuilder to build the domain layer

* fix failed CI due to wrong Makefile dependency (GoogleCloudPlatform#694)

* updated tests for the updated style.proto

* fix failed CI due to wrong Makefile dependency

* Merge main into epic/file-schema-v6 (GoogleCloudPlatform#696)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix bugs to register the CSM TD parser tasks (GoogleCloudPlatform#647)

* Fix the same issue of GoogleCloudPlatform#638 (GoogleCloudPlatform#659)

* Adding make clean command (GoogleCloudPlatform#651)

* Addming make clean command

* fixed commented points

* Removing unused old headers on frontend (GoogleCloudPlatform#660)

* removed prefix 'v2' in shader files (GoogleCloudPlatform#661)

* rename commonlogk8sauditv2 to commonlogk8saudit (GoogleCloudPlatform#662)

* fixed the flaky backend test due to race condition (GoogleCloudPlatform#665)

* improved sticky header to show resource layer (GoogleCloudPlatform#663)

* Removed redundant v from the version string (GoogleCloudPlatform#671)

* bugfix: automatic log scroll is not matching to the actual element (GoogleCloudPlatform#675)

* bugfix: ignore changing selected timeline when user clicked a log from log list (GoogleCloudPlatform#674)

* bugfix: automatic scroll to the beginning time of log query when user selected a timeline without point to a log (GoogleCloudPlatform#676)

* bugfix: scaling around right edge of query duration may be clipped to jump to other timing (GoogleCloudPlatform#677)

* Updated CODEOWNER file (GoogleCloudPlatform#678)

* Updated the release.yml for GitHub (GoogleCloudPlatform#679)

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* enforce @typescript-eslint/array-type ESlint rule (GoogleCloudPlatform#695)

* enforce @typescript-eslint/array-type ESlint rule

* Enable prettier with configuration files having suffix .mjs

* Add lookup methods to Timeline and their unit tests (GoogleCloudPlatform#686)

* Add lookup methods to Timeline and their unit tests

* fixed the reviewed points

* Defined TimelineTypes from the previously defined enum.ParentRelationshipTypes (GoogleCloudPlatform#688)

* Replace the serializer task to use the new file format serializer (GoogleCloudPlatform#693)

* Replace Serializer task with the new file builder and implemented progress reporting feature

* Added issue tracker ID in the TODO comment

* Add the new ChangeSet utility (GoogleCloudPlatform#689)

* Add SetAlias method on TimelineAccumulator

* Add the new ChangeSet utility

* Added issue number on the TODO comment

* Add timeline hierarchy and parent-child relationship getters/iterators (GoogleCloudPlatform#687)

* Make storybook works with BigInt (GoogleCloudPlatform#702)

* Updated Typescript coding rule (GoogleCloudPlatform#713)

* Added handling for non UTF-8 valid string (GoogleCloudPlatform#712)

* Added handling for non UTF-8 valid string

* fixed the commented part in the review and added test for the corner case

* Implemented the missing part of file parser (GoogleCloudPlatform#700)

* Added timeline mapper base task type (GoogleCloudPlatform#703)

* Added util used in log ingestor or timeline mappers

* Added timeline mapper base task type

* Added log ingester base task types (GoogleCloudPlatform#704)

* Added util used in log ingestor or timeline mappers

* Added log ingester base task types

* Added severity utils to parse GCP severity (GoogleCloudPlatform#710)

* Added severity utils to parse GCP severity

* fixed problems pointed by the review

* Add FeatureTaskLabelV2 (GoogleCloudPlatform#711)

* Pure UI components for advanced timeline toolbar (GoogleCloudPlatform#706)

* added timeline-view and its timeline filters (GoogleCloudPlatform#707)

* Adding metadata domain layer (GoogleCloudPlatform#701)

* Adding metadata domain layer

* resolving conflict

* Added SKILL for building tasks on log ingesters or timeline mapper (GoogleCloudPlatform#714)

* Added SKILL for building tasks on log ingesters or timeline mapper

* fixed reviewed points

* Defined TimelineTypes, RevisionStates and related utilities (GoogleCloudPlatform#715)

* Defined TimelineTypes, RevisionStates and related utilities

* fixed reviewed points

* Adding blueprint type for v6 (GoogleCloudPlatform#717)

* Adding blueprint type for v6

* fixed GCA reviewed points

* Adding timeline sorting logic (GoogleCloudPlatform#718)

* Adding timeline sorting logic

* fixed GCA's reviewed points

* Fixed Makefile to generate proto artifacts automatically before building other codes (GoogleCloudPlatform#719)

* Advanced timeline toolbar integrating CEL filtering and timeline-view (GoogleCloudPlatform#716)

* Advanced timeline toolbar integrating CEL filtering and timeline-view

* fixed GCA reviewed point

* Optimized structured data storing in domain store (GoogleCloudPlatform#721)

* Make domain type to hold structured data with protobuf binary

* Cache body object with WeakRef in Log and Revision

* Centralized interned struct body cache

* Adding khi_parser skill to define a new parser (GoogleCloudPlatform#720)

* Migrate CSM access log and TD resource audit log parsers to file format v6 (GoogleCloudPlatform#722)

* Migrate CSM access log and TD resource audit log parsers to file format v6

* Use resource.labels.project_id instead of the resource name

* fixed GCA's review commented part

* Migrate GCE network audit log  parsers to file format v6 (GoogleCloudPlatform#723)

* Migrate GCE network audit log  parsers to file format v6

* fixed GCA's review commented part

* Migrate K8s event log parsers to file format v6 (GoogleCloudPlatform#724)

* Migrate GKE cluster autoscaler log parsers to file format v6 (GoogleCloudPlatform#725)

* Migrate GKE cluster autoscaler log parsers to file format v6

* fix autoscale related tests

* Migrate Composer log parsers to file format v6 (GoogleCloudPlatform#726)

* Migrate Composer log parsers to file format v6

* fixed review commented part by GCA

* Migrate K8s node log parsers to file format v6 (GoogleCloudPlatform#728)

* Migrate K8s node log parsers to file format v6

* fixed GCA's review commented part

* Migrate GKE multicloud audit log parsers to file format v6 (GoogleCloudPlatform#727)

* Migrate K8s controlplane log parsers to file format v6 (GoogleCloudPlatform#729)

* Migrate K8s controlplane log parsers to file format v6

* fix control plane related tests

* fixed GCA's commented part

* Migrate GCE serial port log parsers to file format v6 (GoogleCloudPlatform#730)

* Migrate GCE serial port log parsers to file format v6

* fix serialport related parser tests

* fixed GCA's commented part

* Migrate K8s audit log parsers to file format v6 (GoogleCloudPlatform#731)

* Implemented base task utilities for k8s audit log parser

* Migrate K8s audit log parsers to file format v6

* Migrate GKE audit log parsers to file format v6 (GoogleCloudPlatform#732)

* Migrate Compute API audit log parsers to file format v6 (GoogleCloudPlatform#733)

* Migrate Compute API audit log parsers to file format v6

* fix GCA's commented parts

* Migrate K8s container log parsers to file format v6 (GoogleCloudPlatform#734)

* Migrate K8s container log parsers to file format v6

* fix GCA's commented parts

* Migrate GDC audit log parsers to file format v6 (GoogleCloudPlatform#735)

* Migrate GDC audit log parsers to file format v6

* fixed GCA's commented part

* Migrate OSS event parser to KHI file format v6 (GoogleCloudPlatform#738)

* adding mock inspection data (GoogleCloudPlatform#737)

* adding mock inspection data

* fixed GCA's suggested part

* Adding services needed to migrate timeline components to the new domain type (GoogleCloudPlatform#742)

* Add InspectionDataStore

* Adding selection manager v2

* fix issues pointed by gca and tests

* Replace referenced domain types to the new type in the log related components (GoogleCloudPlatform#743)

* Replace referenced domain types to the new type in the log related components

* fixed review points

* Replace domain types used from the timeline related components (GoogleCloudPlatform#744)

* Replace domain types used from the timeline related components

* [broken]timeline hover overlay

* [broken]timeline-legend component

* [broken]timline-ruler component

* [broken] Migrated timeline-index component

* [Broken]Migrating renderer resources

* Migrating other timeline resources

* fixed storybook build failure

* fixed reviewed points

* extend memory limit for ng lint (GoogleCloudPlatform#745)

* Integrate the new timeline view classes and current toolbar component (GoogleCloudPlatform#746)

* Integrate the timeline filter component

* Updated toolbar

* fix GCA's commented part

* Fixed the separate diff page works with the new domain store (GoogleCloudPlatform#747)

* fix graph data converter

* fixed diff separated page

* fixed compilation error

* fixed GCA's reviewed points

* Remove @type field contained in `request` and `respone` of the protoPayload in audit logs (GoogleCloudPlatform#748)

* Add field filter node

* Remove @type field of request or response in the manifest generator

* fixed GCA's comented part

* Cleaning up unused codes on backend (GoogleCloudPlatform#749)

* Removing old code on backend side

* Remove MainMessage fieldset

* Added sorting configuration on timeline type (GoogleCloudPlatform#750)

* Added sorting configuration on timeline type

* fixed failed unit tests

* Improved CEL based filtering (GoogleCloudPlatform#751)

* Improved CEL based filtering

* fixed failing unit tests

* fixed GCA's reviewed part

* Added standard log filtering components (GoogleCloudPlatform#753)

* Added standard log filtering components

* fixed GCA's commented part

* Unified timeline-advanced-toolbar and timeline-toolbar (GoogleCloudPlatform#754)

* Unified timeline-advanced-toolbar and timeline-toolbar

* defined dedicated error for cancellation

* fixed GCA's reviewed part

* Index severity field with timeline filter (GoogleCloudPlatform#755)

* Index severity field with timeline filter

* fixed GCA's reviewed part

* Added CEL guide and its popup components (GoogleCloudPlatform#756)

* Added CEL guide and its popup components

* fixed GCA's commented part

* Added typeChip foreground property on the TimelineStyle protos (GoogleCloudPlatform#758)

* Implemented functions to copy a domain store data to the other worker with SharedArrayBuffer (GoogleCloudPlatform#757)

* SharedArrayBuffer experiment

* Migrated store data to SharedArrayBuffer for utilizing WebWorkers

* Allowed empty value in the filter builder (GoogleCloudPlatform#761)

* allowed empty value in the filter builder

* fixed GCA's commented part

* Added style override dialog to preview timeline styles easier (GoogleCloudPlatform#762)

* Added style override dialog to preview timeline styles easier

* fixed GCA's commented part

* Migrate log/timeline searching to WebWorker (GoogleCloudPlatform#763)

* Migrate log searching to WebWorker

* fixed GCA's commented part

* Implement search cancellation for log and timeline async queries (GoogleCloudPlatform#764)

* Implemented cancellation

* fixed GCA's commented part

* Restructure timeline paths hierarchically under Projects and Category folders (GoogleCloudPlatform#765)

* adjusting colors and styles

* refactor: reuse common contract methods directly in autoscaler parser

* Optimized memory usage for searching (GoogleCloudPlatform#769)

* Optimized memory usage for searching

* fixed GCA's reviewed part

* bug: fix log scrolling by arrow keys (GoogleCloudPlatform#770)

* bug: fix log scrolling by arrow keys

* fixed GCA's reviewed part

* update descriptions on feature tasks (GoogleCloudPlatform#771)

* update descriptions on feature tasks

* fixed GCA's reviewed part

* Improved search feature on diffs/logs (GoogleCloudPlatform#773)

* Improved search feature on diffs/logs

* Address review comments for PR 773

* bug: fix unintentionally jump to another timeline when 2 or more logs are associated with the same log (GoogleCloudPlatform#772)

* bug: fix unintentionally jump to another timeline when 2 or more logs are associated with the same log

* Addressed review comments for PR 772

* update descriptive messages used on KHI (GoogleCloudPlatform#774)

* Merge main into epic/file-schema-v6 (GoogleCloudPlatform#775)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix bugs to register the CSM TD parser tasks (GoogleCloudPlatform#647)

* Fix the same issue of GoogleCloudPlatform#638 (GoogleCloudPlatform#659)

* Adding make clean command (GoogleCloudPlatform#651)

* Addming make clean command

* fixed commented points

* Removing unused old headers on frontend (GoogleCloudPlatform#660)

* removed prefix 'v2' in shader files (GoogleCloudPlatform#661)

* rename commonlogk8sauditv2 to commonlogk8saudit (GoogleCloudPlatform#662)

* fixed the flaky backend test due to race condition (GoogleCloudPlatform#665)

* improved sticky header to show resource layer (GoogleCloudPlatform#663)

* Removed redundant v from the version string (GoogleCloudPlatform#671)

* bugfix: automatic log scroll is not matching to the actual element (GoogleCloudPlatform#675)

* bugfix: ignore changing selected timeline when user clicked a log from log list (GoogleCloudPlatform#674)

* bugfix: automatic scroll to the beginning time of log query when user selected a timeline without point to a log (GoogleCloudPlatform#676)

* bugfix: scaling around right edge of query duration may be clipped to jump to other timing (GoogleCloudPlatform#677)

* Updated CODEOWNER file (GoogleCloudPlatform#678)

* Updated the release.yml for GitHub (GoogleCloudPlatform#679)

* fix: confirm refresh when backend disconnects (GoogleCloudPlatform#692)

* fix: confirm refresh when backend disconnects

Signed-off-by: Haihan Jiang <haihanj99@gmail.com>

* chore: use absolute imports in root tests

Signed-off-by: Haihan Jiang <haihanj99@gmail.com>

* Align unload confirmation with disconnect review

---------

Signed-off-by: Haihan Jiang <haihanj99@gmail.com>

* Handle slog attributes in KHI log formatter (GoogleCloudPlatform#708)

* Handle slog attributes in KHI log formatter

* Optimize KHI log attribute formatting

* Handle KHI log formatter review feedback

* Change default listen host to 127.0.0.1 from localhost (GoogleCloudPlatform#759)

* Improve retry logic to consider temporal failure due to ECP issue (GoogleCloudPlatform#760)

* Improve retry logic to consider temporal failure due to ECP issue

* fixed GCA's reviewed points

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Signed-off-by: Haihan Jiang <haihanj99@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Haihan Jiang <haihanj99@gmail.com>

* Update the usability of timeline hover component (GoogleCloudPlatform#777)

* Optimize log lookup and resolve sticky header overlay placement

- Resolve target timeline fallback order (selectedTimeline -> descendants -> all timelines)
- Compensate hover placement offset when hovering directly over the sticky header
- Optimize preceding and succeeding log extraction using bisectLeft
- Standardize timestamps to bigint (nanoseconds) across hover resolution

* Visualize current cursor time with a dedicated separator line

- Propagate cursor time as bigint (nanoseconds) to the hover overlay
- Update lastClickedTime dynamically on mouse movement across empty timeline periods
- Conditionally insert a dedicated cursor separator row (isCursor: true) only when hovering over empty timeline periods
- Render cursor row with flex container and CSS dashed lines flanking centered text
- Enforce dashed lines expansion with flex: 1 1 20px and height: 1px
- Update Storybook stories to include mock cursorTime property

* addressed comments on PR777

* feat: show RevisionState description popup on hover in timeline legend (GoogleCloudPlatform#776)

* feat: show RevisionState description popup on hover in timeline legend

* addressed comments on PR776

* Added diagram view to the golden layout tab (GoogleCloudPlatform#780)

* feat: embed graph view as a GoldenLayout tab

* Remove diagram button from the toolbar

* addressed PR comments on GoogleCloudPlatform#780

* make storybook not freezed by serialization (GoogleCloudPlatform#781)

* make storybook not freezed by serialization

* addressed PR781 review comments

* Make graph draw feature async (GoogleCloudPlatform#782)

* Make graph draw feature async

* addressed PR782 review comments

* removed unused frontend codes (GoogleCloudPlatform#783)

* Improved layout menu buttons (GoogleCloudPlatform#784)

* Merge main into epic/file-schema-v6 (GoogleCloudPlatform#786)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <kyasbal1994@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix bugs to register the CSM TD parser tasks (GoogleCloudPlatform#647)

* Fix the same issue of GoogleCloudPlatform#638 (GoogleCloudPlatform#659)

* Adding make clean command (GoogleCloudPlatform#651)

* Addming make clean command

* fixed commented points

* Removing unused old headers on frontend (GoogleCloudPlatform#660)

* removed prefix 'v2' in shader files (GoogleCloudPlatform#661)

* rename commonlogk8sauditv2 to commonlogk8saudit (GoogleCloudPlatform#662)

* fixed the flaky backend test due to race condition (GoogleCloudPlatform#665)

* improved sticky header to show resource layer (GoogleCloudPlatform#663)

* Removed redundant v from the version string (GoogleCloudPlatform#671)

* bugfix: automatic log scroll is not matching to the actual element (GoogleCloudPlatform#675)

* bugfix: ignore changing selected timeline when user clicked a log from log list (GoogleCloudPlatform#674)

* bugfix: automatic scroll to the beginning time of log query when user selected a timeline without point to a log (GoogleCloudPlatform#676)

* bugfix: scaling around right edge of query duration may be clipped to jump to other timing (GoogleCloudPlatform#677)

* Updated CODEOWNER file (GoogleCloudPlatform#678)

* Updated the release.yml for GitHub (GoogleCloudPlatform#679)

* fix: confirm refresh when backend disconnects (GoogleCloudPlatform#692)

* fix: confirm refresh when backend disconnects

Signed-off-by: Haihan Jiang <haihanj99@gmail.com>

* chore: use absolute imports in root tests

Signed-off-by: Haihan Jiang <haihanj99@gmail.com>

* Align unload confirmation with disconnect review

---------

Signed-off-by: Haihan Jiang <haihanj99@gmail.com>

* Handle slog attributes in KHI log formatter (GoogleCloudPlatform#708)

* Handle slog attributes in KHI log formatter

* Optimize KHI log attribute formatting

* Handle KHI log formatter review feedback

* Change default listen host to 127.0.0.1 from localhost (GoogleCloudPlatform#759)

* Improve retry logic to consider temporal failure due to ECP issue (GoogleCloudPlatform#760)

* Improve retry logic to consider temporal failure due to ECP issue

* fixed GCA's reviewed points

* bug: fix CSM's access log query was wrong for GDC clusters (GoogleCloudPlatform#779)

* bug: fix CSM's access log query was wrong for GDC clusters

* addressed comment in GoogleCloudPlatform#779

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Signed-off-by: Haihan Jiang <haihanj99@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Haihan Jiang <haihanj99@gmail.com>

---------

Signed-off-by: kyasbal <kyasbal1994@gmail.com>
Signed-off-by: Haihan Jiang <haihanj99@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Haihan Jiang <haihanj99@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant