Commit Graph

3 Commits

  • Fix raw hooks: plugin-side hookRawMethod with Advice instrumentation
    Remove the planted isContactsTabVisible() hook target and app-side visibility
    conditionals (that was cheating). Plugins now declare raw JVM targets directly
    via hookRawMethod on existing methods like MainScreenKt.selectMainPage,
    ContactsTabKt.ContactsTab, NavigationBarKt.NavigationBarItem, and Logger.d.
    
    Replace ByteBuddy MethodDelegation (schema-changing) with Advice-based
    ClassReloadingStrategy so hooks actually install at runtime. Fix Logger hook
    signature for Kotlin object instance methods. Add chat banner z-index fix and
    PluginEngine.hostRevision to recompose MainScreen after plugin load.
    
    Co-authored-by: denis0001-dev <denis0001.dev@ya.ru>
  • Redesign plugins UI and demo raw + high-level hooks
    - Match exteraGram-style card layout with master toggle and plugin actions
    - Add usage manifest field, pin/delete/removePlugin engine APIs
    - Hello World plugin hooks Logger.d (raw) and send pipeline (high-level)
    - Bundle updated hello_world.fcplugin; stop debug auto-enable
    
    Co-authored-by: denis0001-dev <denis0001.dev@ya.ru>
  • Add Kotlin plugin system (SDK, host, hooks, settings UI)
    Implement exteraGram-style plugin architecture for Android and desktop:
    - plugins/sdk: BasePlugin API, hook types, settings DSL
    - plugins/host: PluginEngine, typed send hooks, FeatureGate, HookRegistry
    - JVM ByteBuddy and Android Pine hook backends
    - DevServer on port 42690 (JVM)
    - Plugins settings screens and PluginUiHost bulletin overlay
    - hello_world sample plugin packaged as .fcplugin
    - ProGuard keepnames for ru.fromchat.** with shrinking enabled
    
    Co-authored-by: denis0001-dev <denis0001.dev@ya.ru>