rocketraman
08/13/2026, 1:00 PMdave08
08/17/2026, 11:53 AMrocketraman
08/17/2026, 1:34 PMrocketraman
08/17/2026, 1:37 PMand Instruments' Time Profiler attach to the shipped binary with no build flags, and a spindump during a freeze will show the blocked UI thread directly.sample <pid>
dave08
08/17/2026, 2:06 PMrocketraman
08/17/2026, 2:08 PM.config/gitvantage/registry.json. Then you can bisect via that by deleting half the repos from the config file, seeing if the problems still reproduces, if yes, delete the other half, etc.rocketraman
08/18/2026, 4:30 AM./gradlew run? If so, can you try it with the latest code in the repo and see if your issue reproduces? If yes, please run it with env var GITVANTAGE_PERF=1 which should report some performance counters to standard output.dave08
08/18/2026, 9:34 AM> Task :run
Aug 18, 2026 12:30:56 PM dev.nucleusframework.notification.NotificationCenter isAvailable_delegate$lambda$0
WARNING: Notifications require a packaged .app bundle with a bundle identifier. Use ./gradlew runDistributable or ./gradlew runGraalvmNative instead of ./gradlew run.
Error was captured in composition.
java.lang.NullPointerException
at androidx.compose.ui.res.ClassLoaderResourceLoader.load(Resources.desktop.kt:59)
at androidx.compose.ui.res.Resources_desktopKt.openResource(Resources.desktop.kt:50)
at androidx.compose.ui.res.PainterResources_desktopKt.rememberBitmapResource(PainterResources.desktop.kt:115)
at androidx.compose.ui.res.PainterResources_desktopKt.painterResource(PainterResources.desktop.kt:61)
at com.gitvantage.ui.ComposableSingletons$MainKt.lambda__1831394558$lambda$0$5(Main.kt:113)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at dev.nucleusframework.window.NucleusDecoratedWindowThemeKt.NucleusDecoratedWindowTheme$lambda$0(NucleusDecoratedWindowTheme.kt:45)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:408)
at dev.nucleusframework.window.NucleusDecoratedWindowThemeKt.NucleusDecoratedWindowTheme(NucleusDecoratedWindowTheme.kt:40)
at com.gitvantage.ui.ComposableSingletons$MainKt.lambda__1831394558$lambda$0(Main.kt:104)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:131)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at dev.nucleusframework.application.internal.TaoLauncher.run$lambda$0$0$0(TaoLauncher.kt:51)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:408)
at dev.nucleusframework.application.internal.TaoLauncher.run$lambda$0$0(TaoLauncher.kt:39)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:428)
at dev.nucleusframework.application.ProvideNucleusSystemThemeKt.ProvideNucleusSystemTheme(ProvideNucleusSystemTheme.kt:27)
at dev.nucleusframework.application.internal.TaoLauncher.run$lambda$0(TaoLauncher.kt:38)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:131)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at dev.nucleusframework.window.tao.TaoApplicationComposeKt$taoApplication$2$2.invokeSuspend$lambda$0$0(TaoApplicationCompose.kt:83)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:408)
at dev.nucleusframework.window.tao.TaoApplicationComposeKt$taoApplication$2$2.invokeSuspend$lambda$0(TaoApplicationCompose.kt:79)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at androidx.compose.runtime.internal.Expect_jvmKt.invokeComposable(Expect.jvmAndAndroid.kt:26)
at androidx.compose.runtime.GapComposer.doCompose-aFTiNEg(GapComposer.kt:2643)
at androidx.compose.runtime.GapComposer.composeContent--ZbOJvo$runtime(GapComposer.kt:2545)
at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:895)
at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:1178)
at androidx.compose.runtime.CompositionImpl.composeInitial(Composition.kt:732)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:699)
at dev.nucleusframework.window.tao.TaoApplicationComposeKt$taoApplication$2$2.invokeSuspend(TaoApplicationCompose.kt:72)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at dev.nucleusframework.window.tao.dispatch.TaoMainDispatcher.pump(TaoMainDispatcher.kt:285)
at dev.nucleusframework.window.tao.TaoApplication$EventDispatcher.onEvent(TaoApplication.kt:139)
Exception in thread "Thread-2" java.lang.NullPointerException
at androidx.compose.ui.res.ClassLoaderResourceLoader.load(Resources.desktop.kt:59)
at androidx.compose.ui.res.Resources_desktopKt.openResource(Resources.desktop.kt:50)
at androidx.compose.ui.res.PainterResources_desktopKt.rememberBitmapResource(PainterResources.desktop.kt:115)
at androidx.compose.ui.res.PainterResources_desktopKt.painterResource(PainterResources.desktop.kt:61)
at com.gitvantage.ui.ComposableSingletons$MainKt.lambda__1831394558$lambda$0$5(Main.kt:113)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at dev.nucleusframework.window.NucleusDecoratedWindowThemeKt.NucleusDecoratedWindowTheme$lambda$0(NucleusDecoratedWindowTheme.kt:45)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:408)
at dev.nucleusframework.window.NucleusDecoratedWindowThemeKt.NucleusDecoratedWindowTheme(NucleusDecoratedWindowTheme.kt:40)
at com.gitvantage.ui.ComposableSingletons$MainKt.lambda__1831394558$lambda$0(Main.kt:104)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:131)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at dev.nucleusframework.application.internal.TaoLauncher.run$lambda$0$0$0(TaoLauncher.kt:51)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:408)
at dev.nucleusframework.application.internal.TaoLauncher.run$lambda$0$0(TaoLauncher.kt:39)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:428)
at dev.nucleusframework.application.ProvideNucleusSystemThemeKt.ProvideNucleusSystemTheme(ProvideNucleusSystemTheme.kt:27)
at dev.nucleusframework.application.internal.TaoLauncher.run$lambda$0(TaoLauncher.kt:38)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:131)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at dev.nucleusframework.window.tao.TaoApplicationComposeKt$taoApplication$2$2.invokeSuspend$lambda$0$0(TaoApplicationCompose.kt:83)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:408)
at dev.nucleusframework.window.tao.TaoApplicationComposeKt$taoApplication$2$2.invokeSuspend$lambda$0(TaoApplicationCompose.kt:79)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)
at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:52)
at androidx.compose.runtime.internal.Expect_jvmKt.invokeComposable(Expect.jvmAndAndroid.kt:26)
at androidx.compose.runtime.GapComposer.doCompose-aFTiNEg(GapComposer.kt:2643)
at androidx.compose.runtime.GapComposer.composeContent--ZbOJvo$runtime(GapComposer.kt:2545)
at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:895)
at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:1178)
at androidx.compose.runtime.CompositionImpl.composeInitial(Composition.kt:732)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:699)
at dev.nucleusframework.window.tao.TaoApplicationComposeKt$taoApplication$2$2.invokeSuspend(TaoApplicationCompose.kt:72)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at dev.nucleusframework.window.tao.dispatch.TaoMainDispatcher.pump(TaoMainDispatcher.kt:285)
at dev.nucleusframework.window.tao.TaoApplication$EventDispatcher.onEvent(TaoApplication.kt:139)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [dev.nucleusframework.window.tao.TaoFrameClock@65086dfc, StandaloneCoroutine{Cancelling}@4f0d426a, TaoMainDispatcher@129b391b]
BUILD SUCCESSFUL in 3srocketraman
08/18/2026, 12:25 PM6c0eb11dave08
08/18/2026, 1:03 PMdave08
08/30/2026, 3:10 PMrocketraman
08/31/2026, 5:33 AMAlso, it would be nice to have code highlighting (especially for kotlin) in the diff view and possibly a separate window for those diffs (when one wants to pull up multiple diffs)Good suggestions, thanks.
Also, grouping repos might be nice... I'm not sure if that was the intention of tagging, but the namespace part is a bit funny since it doesn't seem to be selectable.Yes, tags are the way to group repos. The namespace part allows you to tag in different dimensions, and thus group by these. For example: say you had tags
lang:kotlin and lang:python (namespace lang) and you had tags client:foo, client:bar. Now, the "Group by" selector at the top (right next to the filter box) will allow you to group repos by "lang" or "client". You can as usual filter repos by tags as well (negative filters with shift click).dave08
08/31/2026, 2:45 PMrocketraman
10/09/2026, 9:41 PMSebastian Schuberth
10/10/2026, 8:37 AMdave08
10/11/2026, 1:55 AMrocketraman
10/13/2026, 12:42 PMGITVANTAGE_PERF=1 /Applications/GitVantage.app/Contents/MacOS/GitVantage 2> ~/gitvantage-perf.logrocketraman
10/13/2026, 12:46 PMrocketraman
10/19/2026, 12:59 PMdave08
10/19/2026, 2:41 PMrocketraman
10/19/2026, 3:01 PM