Logo

GitLab

Sign in

朱子纯 / vibe-erp

  • Back to Dashboard
  • Project
  • Activity
  • Files
  • Commits
  • Network
  • Graphs
  • Milestones
  • Issues 0
  • Merge Requests 0
  • Labels
  • Wiki
  • Snippets
  • Commits 125
  • Compare
  • Branches 1
  • Tags 0
  • vibe-erp
07 Apr, 2026
11 commits
  • fix: address v0.1 acceptance review (1 BLOCKER + 6 IMPORTANT/NIT findings) ...
    28e1aa38
    BLOCKER: wire Hibernate multi-tenancy
    - application.yaml: set hibernate.tenant_identifier_resolver and
      hibernate.multiTenancy=DISCRIMINATOR so HibernateTenantResolver is
      actually installed into the SessionFactory
    - AuditedJpaEntity.tenantId: add @org.hibernate.annotations.TenantId so
      every PBC entity inherits the discriminator
    - AuditedJpaEntityListener.onCreate: throw if a caller pre-set tenantId
      to a different value than the current TenantContext, instead of
      silently overwriting (defense against cross-tenant write bugs)
    
    IMPORTANT: dependency hygiene
    - pbc-identity no longer depends on platform-bootstrap (wrong direction;
      bootstrap assembles PBCs at the top of the stack)
    - root build.gradle.kts: tighten the architectural-rule enforcement to
      also reject :pbc:* -> platform-bootstrap; switch plug-in detection
      from a fragile pathname heuristic to an explicit
      extra["vibeerp.module-kind"] = "plugin" marker; reference plug-in
      declares the marker
    
    IMPORTANT: api.v1 surface additions (all non-breaking)
    - Repository: documented closed exception set; new
      PersistenceExceptions.kt declares OptimisticLockConflictException,
      UniqueConstraintViolationException, EntityValidationException, and
      EntityNotFoundException so plug-ins never see Hibernate types
    - TaskContext: now exposes tenantId(), principal(), locale(),
      correlationId() so workflow handlers (which run outside an HTTP
      request) can pass tenant-aware calls back into api.v1
    - EventBus: subscribe() now returns a Subscription with close() so
      long-lived subscribers can deregister explicitly; added a
      subscribe(topic: String, ...) overload for cross-classloader event
      routing where Class<E> equality is unreliable
    - IdentityApi.findUserById: tightened from Id<*> to PrincipalId so the
      type system rejects "wrong-id-kind" mistakes at the cross-PBC boundary
    
    NITs:
    - HealthController.kt -> MetaController.kt (file name now matches the
      class name); added TODO(v0.2) for reading implementationVersion from
      the Spring Boot BuildProperties bean
    vibe_erp authored
    2026-04-07 15:55:55 +0800  
    Browse Code »
  • chore: gitignore .claude/ workspace
    d8aa39eb
    vibe_erp authored
    2026-04-07 15:32:27 +0800  
    Browse Code »
  • docs: README, CONTRIBUTING, LICENSE, full docs site, architecture spec, implemen… ...
    32942f6e
    …tation plan, updated CLAUDE.md
    vibe_erp authored
    2026-04-07 15:29:48 +0800  
    Browse Code »
  • chore: Dockerfile, docker-compose, GitHub Actions, Makefile, dev volume scaffolding
    6789d26b
    vibe_erp authored
    2026-04-07 15:29:48 +0800  
    Browse Code »
  • feat(distribution): Spring Boot fat-jar assembly + Liquibase changelogs (platform + identity)
    f9ea66fc
    vibe_erp authored
    2026-04-07 15:29:15 +0800  
    Browse Code »
  • feat(reference): hello-world printing-shop plug-in (PF4J, depends only on api.v1)
    24cae0bd
    vibe_erp authored
    2026-04-07 15:29:15 +0800  
    Browse Code »
  • feat(pbc-identity): User entity end-to-end (entity, repo, service, REST controll… ...
    40f01805
    …er, IdentityApi adapter, unit tests)
    vibe_erp authored
    2026-04-07 15:29:00 +0800  
    Browse Code »
  • feat(platform): bootstrap, persistence (multi-tenant JPA), and PF4J plug-in host
    85dcf0d6
    vibe_erp authored
    2026-04-07 15:29:00 +0800  
    Browse Code »
  • feat(api-v1): public plug-in contract — entities, persistence, events, security,… ...
    f5164414
    … i18n, http, plugin lifecycle
    vibe_erp authored
    2026-04-07 15:28:38 +0800  
    Browse Code »
  • chore: bootstrap Gradle multi-project skeleton
    728e3793
    vibe_erp authored
    2026-04-07 15:27:48 +0800  
    Browse Code »
  • chore: initial commit (CLAUDE.md, reference docs, architecture spec)
    af178bb8
    vibe_erp authored
    2026-04-07 14:55:25 +0800  
    Browse Code »